Mudanças entre as edições de "Minicluster:Compilando MPI"

De WikiLICC
Ir para: navegação, pesquisa
m
m (Testando o anel de máquinas)
Linha 38: Linha 38:
  
 
== Testando o anel de máquinas ==
 
== Testando o anel de máquinas ==
* ALELUIA. Funcionou!
 
No nó mestre
 
dago@um ~ $ mpd --daemon
 
dago@um ~ $ mpdtrace -l
 
um.phantom_44333 (192.168.0.99)
 
No nó escravo
 
[dago@cell100 ~]$ mpd -h um -p 44333 --daemon
 
[dago@cell100 ~]$ mpdtrace -l
 
cell100.matrix_58296 (192.168.0.100)
 
um.phantom_44333 (192.168.0.99)
 
[dago@cell100 ~]$
 
No nó mestre
 
dago@um ~ $ mpdtrace -l
 
um.phantom_44333 (192.168.0.99)
 
cell100.matrix_58296 (192.168.0.100)
 
dago@um ~ $ mpiexec -n 2 /bin/hostname
 
um.phantom
 
cell100.matrix
 
dago@um ~ $ mpiexec -n 4 /bin/hostname
 
cell100.matrix
 
um.phantom
 
cell100.matrix
 
um.phantom
 
dago@um ~ $ mpiexec -l -n 4 /bin/hostname
 
1: cell100.matrix
 
2: um.phantom
 
0: um.phantom
 
3: cell100.matrix
 
dago@um ~ $
 
 
Um programa hellompi em paralelo
 
Um programa hellompi em paralelo
 
  dago@um fortran $ mpiexec -l -n 4 ./hellompi
 
  dago@um fortran $ mpiexec -l -n 4 ./hellompi

Edição das 15h41min de 6 de julho de 2010

  • Configure o MPICH conforme [Minicluster:MPICH].

Digitando

Conecte-se a máquina one

[  hunter   ]$ ssh usuario@one
[usuario@one]$ mpd --daemon 
[usuario@one]$ mpdtrace -l
one.matrix_54419 (192.168.0.99)

Compilando

Rodando

Um programa hellompi em paralelo

[one]$ mpiexec -l -n 4 ./hellompi
0:  Sou o processo 0  de um total de            4  rodando em one.matrix
1:  Sou o processo 1  de um total de            4  rodando em cell100.matrix
2:  Sou o processo 2  de um total de            4  rodando em one.matrix
3:  Sou o processo 3  de um total de            4  rodando em cell100.matrix

Rodar um programa MPI

Abra o editor de texto e digite o programa "hello world" Creating and Compiling an MPI Program.

[usuario@one]$ vi hellompi.f90

...Compilando...

Para rodar o programa em um processo

[usuario@one]$ mpiexec ./hellompi

Rode novamente usando mais processos (e um processador - talvez 2 se for dual-core ?)

[usuario@cell100]$ mpiexec -np 4 ./hellompi
Sou o processo            0  de um total de            4  rodando em cell100.matrix
Sou o processo            2  de um total de            4  rodando em cell100.matrix
Sou o processo            1  de um total de            4  rodando em cell100.matrix
Sou o processo            3  de um total de            4  rodando em cell100.matrix

onde cell100.matrix é o nome da máquina (todas no mesmo nó ainda). Para rodar em mais máquinas, primeiro desligue o mpd

[usuario@one]$ mpdallexit


Testando o anel de máquinas

Um programa hellompi em paralelo

dago@um fortran $ mpiexec -l -n 4 ./hellompi
0:  Sou o processo 0  de um total de            4  rodando em um.phantom
1:  Sou o processo 1  de um total de            4  rodando em cell100.matrix
2:  Sou o processo 2  de um total de            4  rodando em um.phantom
3:  Sou o processo 3  de um total de            4  rodando em cell100.matrix

Teste final

No mestre

dago@um ~ $ mpdboot -n 2
dago@um ~ $ mpdtrace -l
um.phantom_40584 (192.168.0.99)
cell100.matrix_59410 (192.168.0.100)
dago@um ~ $ cd fortran/
dago@um fortran $ mpiexec -l -n 2 ./hellompi
1:  Sou o processo            1  de um total de            2  rodando em  cell100.matrix
0:  Sou o processo            0  de um total de            2  rodando em um.phantom

Em cell100

[dago@cell100 fortran]$ mpdtrace -l
cell100.matrix_59410 (192.168.0.100)
um.phantom_40584 (192.168.0.99)