Execute o programa C ++ no computador na rede

1

Eu tenho um programa em c ++ que é multithreaded. Acredito que o throughput aumentaria se eu pudesse executá-lo nos outros computadores conectados por um switch. Todos estão usando o mesmo sistema operacional (Ubuntu). Existe uma maneira de fazer isso sem mudar o código? Se eu precisar alterar o código, o que devo procurar?

    
por Rafael Marinho 23.02.2018 / 16:42

1 resposta

5

Isso geralmente não é possível sem alterar o código.

Um programa multi-thread fará uso dos processadores em um único computador. Assim que você desejar executar o mesmo programa em uma rede de máquinas conectadas e fazer com que as várias instâncias do programa se comuniquem entre si, o código deverá passar uma mensagem explícita entre as várias cópias do programa em execução nas diferentes máquinas no computador. cluster.

Existem bibliotecas para fazer isso. Um padrão bastante conhecido é chamado Message Passing Interface , ou MPI, e implementações de MPI existem para a maioria dos Unices gratuitos.

Se o processamento que o programa está fazendo for embaraçosamente paralelo , significando que várias cópias do programa seriam capazes de processar partes dos dados de entrada sem se comunicarem entre si, isso pode ser mais fácil problema para resolver e poderia ser feito usando GNU parallel .

No final, tudo se resume ao que o programa está realmente fazendo.

    
por 23.02.2018 / 16:47