mpiexec não executará o script mpi4py quando dois hosts forem utilizados em um cluster MPI estabelecido por meio da LAN

1

Então eu tenho este outro PC desktop, que serve como meu servidor, primesystem e um laptop como meu cliente, zerosystem que está conectado a ele. Ambos servem como ssh-server e ssh-client , respectivamente, e são conectados por meio de um cabo Ethernet (não cruzado).

Eu segui as instruções descritas nestes tutoriais: Executando um cluster MPI dentro de uma LAN e Configurando um cluster MPICH2 no Ubuntu , apenas que eu gostaria de usar a implementação MPI de python , então eu usei mpi4py para testar se ambos os computadores podem utilizar o MPI.

Eu configurei um diretório /cloud em primesystem que deve ser compartilhado na minha rede, e isso é montado no meu zerosystem , conforme instruído pelo primeiro tutorial (para que eu possa trabalhar em ambos os sistemas sem a necessidade de fazer o login através de ssh ).

No servidor ou primesystem , se eu executar o script helloworld, ele funciona bem:

one@primesystem:/cloud$ mpirun -np 5 -hosts primesystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on primesystem.
Hello, World! I am process 1 of 5 on primesystem.
Hello, World! I am process 2 of 5 on primesystem.
Hello, World! I am process 3 of 5 on primesystem.
Hello, World! I am process 4 of 5 on primesystem.

O mesmo acontece se eu executar o host zerosystem (mas deve-se notar que há um atraso considerável na execução devido à utilização de CPU externa de zerosystem ):

one@primesystem:/cloud$ mpirun -np 5 -hosts zerosystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on zerosystem.
Hello, World! I am process 1 of 5 on zerosystem.
Hello, World! I am process 2 of 5 on zerosystem.
Hello, World! I am process 3 of 5 on zerosystem.
Hello, World! I am process 4 of 5 on zerosystem.

Mas se eu utilizei os dois hosts, parece não responder:

one@primesystem:/cloud$ mpirun -np 5 -hosts primesystem,zerosystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on primesystem.

(Se eu troquei a ordem dos hosts, zerosystem sendo o primeiro, nenhuma resposta Hello World é mostrada)

Eu tentei inserir as listas de hosts em um arquivo .mpi-config e seus respectivos processos para gerar, usando o parâmetro -f em vez de -hosts

zerosystem:4
primesystem:2

mas ainda recebe a mesma resposta, e após alguns segundos ou minutos, esta é a saída de erro:

one@primesystem:/cloud$ mpirun -np 6 -f .mpi-config python -m mpi4py helloworld
===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 23329 RUNNING AT primesystem
=   EXIT CODE: 139
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
[proxy:0:1@zerosystem] HYD_pmcd_pmip_control_cmd_cb (pm/pmiserv/pmip_cb.c:886): assert (!closed) failed
[proxy:0:1@zerosystem] HYDT_dmxu_poll_wait_for_event (tools/demux/demux_poll.c:76): callback returned error status
[proxy:0:1@zerosystem] main (pm/pmiserv/pmip.c:206): demux engine error waiting for event
[mpiexec@primesystem] HYDT_bscu_wait_for_completion (tools/bootstrap/utils/bscu_wait.c:76): one of the processes terminated badly; aborting
[mpiexec@primesystem] HYDT_bsci_wait_for_completion (tools/bootstrap/src/bsci_wait.c:23): launcher returned error waiting for completion
[mpiexec@primesystem] HYD_pmci_wait_for_completion (pm/pmiserv/pmiserv_pmci.c:218): launcher returned error waiting for completion
[mpiexec@primesystem] main (ui/mpich/mpiexec.c:336): process manager error waiting for completion

Por que isso? Alguma idéia?

    
por anobilisgorse 22.02.2016 / 17:02

0 respostas