Mudanças entre as edições de "Minicluster:Compilando MPI"
De WikiLICC
m (Criou página com '== MPICH sem funcionalidade Torque == Parece que na distribuição padrão não está presente. Para instalação veja [http://www3.mat.ufrgs.br/mediawiki/index.php/Minicluster:…') |
m |
||
Linha 1: | Linha 1: | ||
− | + | * Configure o MPICH conforme [Minicluster:MPICH]. | |
− | + | == Digitando == | |
− | + | Conecte-se a máquina '''one''' | |
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[ hunter ]$ ssh usuario@one | [ hunter ]$ ssh usuario@one | ||
[usuario@one]$ mpd --daemon | [usuario@one]$ mpd --daemon | ||
− | |||
− | |||
[usuario@one]$ mpdtrace -l | [usuario@one]$ mpdtrace -l | ||
one.matrix_54419 (192.168.0.99) | one.matrix_54419 (192.168.0.99) | ||
− | + | == Compilando == | |
− | + | == Rodando == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Um programa hellompi em paralelo | Um programa hellompi em paralelo |
Edição das 15h41min de 6 de julho de 2010
- Configure o MPICH conforme [Minicluster:MPICH].
Índice
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
- 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
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)