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.