É Erlang concebido apenas para correr em uma única máquina multicore, ou você pode distribuir os processos?
-
12-09-2019 - |
Pergunta
Meu aplicativo funciona bem em minha máquina quad-core. É 'embarrasingly paralelo', com cerca de 100K processos, e, portanto, bem adequado para ser executado em um conjunto de máquinas. No entanto, tenho a documentação constatação de problemas sobre como espalhar todos esses processos para fora em todos os nós disponíveis no cluster.
A documentação para distribuição Erlang parece se concentrar em aplicativos cliente-servidor, onde cada nó é um cliente executando um único aplicativo, e você especificar manualmente quais nó executa qual processo.
Solução
Você pode certamente distribuir um programa Erlang através de múltiplos núcleos e computadores em um cluster . Ele foi projetado para esse tipo de coisa.
Outras dicas
Eu gosto de usar a palavra "transparente" ao descrever processos Erlang. Não há nenhum código que você precisa mudar se você decidir executar o processo em outro host.
Existe em todo o suporte em Erlang para fazer uma única corrida aplicativo paralelo em núcleos de processadores distribuídos?
Com certeza! Mas isso depende de como você projetou sua aplicação. Um pedido Erlang distribuível "ideal" é realmente construído a partir de um número de processos independentes (Erlang) que se comunicam uns com os outros através do sistema de mensagens, a fim de realizar cálculos.