Como executar um trabalho em várias máquinas que possuem o Ubuntu como sistema operacional

0

Eu preciso executar um trabalho em várias máquinas virtuais existe em uma nuvem específica e eu tenho o endereço IP para todos eles e eu configurei o nome do host para todos eles. Como executar um comando em uma rede de máquina virtual? note que o script deste trabalho divide o trabalho em 4 etapas para executar em paralelo, já que cada etapa precisa de 2 threads que são executados em paralelo em uma máquina, agora eu preciso usar mais de uma máquina para executar o mesmo script para permitir encadeamentos para executar o paralelismo usando todas essas máquinas usando este comando:

./script.py '100 digits number' slaves.hostnames=hostname1,hostname2,hostname3 --slaves 4 --client-threads 2

O número acima é o número que preciso considerar usando todas essas máquinas para diminuir o tempo total de execução.

    
por Hamm 27.04.2016 / 14:39

1 resposta

1

Existem várias ferramentas para se ter um tipo de "ssh paralelo". Ao usar o Python, pssh deve estar bem. Instale-o com pip :

$ sudo pip install pssh  

Crie um arquivo hosts pssh assim:

192.168.0.10:22
192.168.0.11:22

e, em seguida, invoque:

$ pssh -h pssh-hosts -l root -A echo "Hi!"

Você pedirá sua senha, mas poderá usar certificados para evitar a inserção manual de senhas.

Veja mais:

link

Uma nota importante: Se você quiser resolver um problema em paralelo, pode precisar de MPI (Message Passing Interface). Eu sugiro MPICH . A MPI fornece um meio padrão de comunicação para resolver um problema de forma colaborativa com várias máquinas em paralelo. Embora escrever aplicativos rápidos para encontrar números primos / fatores não é novidade.

Se você tiver uma máquina multicore, use multithreading. Mas se você for usar vários computadores, precisará de MPI.

    
por Ho1 27.04.2016 / 15:05