Mudanças entre as edições de "Minicluster:Compilando MPI"
De WikiLICC
m (→Compilando) |
m (→Compilando) |
||
Linha 11: | Linha 11: | ||
Abra um editor de textos e digite o programa abaixo: | Abra um editor de textos e digite o programa abaixo: | ||
[one]$ vi hellompi.f90 | [one]$ vi hellompi.f90 | ||
+ | program hellompi | ||
+ | implicit none | ||
+ | include "mpif.h" | ||
+ | integer :: np, myid, ier,length | ||
+ | character*80 :: nome | ||
+ | |||
+ | call MPI_Init( ier ) | ||
+ | call MPI_Comm_size( MPI_COMM_WORLD, np, ier) | ||
+ | call MPI_Comm_rank( MPI_COMM_WORLD, myid, ier) | ||
+ | call MPI_Get_processor_name(nome,length,ier) | ||
+ | |||
+ | print *,"Sou o processo ", myid," de um total de ", np," rodando em ",nome | ||
+ | |||
+ | call MPI_Finalize( ier ) | ||
+ | end program | ||
== Rodando == | == Rodando == |
Edição das 23h29min de 6 de julho de 2010
- Configure o MPICH conforme [Minicluster:MPICH].
Digitando
Conecte-se a máquina one. Verifique os testes da sessão [Minicluster:MPICH], principalmente o último usando mpiboot. Inicie o daemon
[hunter]$ ssh usuario@one [one]$ mpdboot -n 2 [one]$ mpdtrace -l one.matrix_54419 (192.168.0.99) cell100.matrix_41888 (192.168.0.100)
Compilando
Abra um editor de textos e digite o programa abaixo:
[one]$ vi hellompi.f90 program hellompi implicit none include "mpif.h" integer :: np, myid, ier,length character*80 :: nome call MPI_Init( ier ) call MPI_Comm_size( MPI_COMM_WORLD, np, ier) call MPI_Comm_rank( MPI_COMM_WORLD, myid, ier) call MPI_Get_processor_name(nome,length,ier) print *,"Sou o processo ", myid," de um total de ", np," rodando em ",nome call MPI_Finalize( ier ) end program
Rodando
- Para rodar o programa em um processador
[one]$ mpiexec ./hellompi
- Rode novamente usando mais processos (e um processador - talvez 2 se for dual-core ?)
[one]$ mpiexec -np 4 ./hellompi Sou o processo 0 de um total de 4 rodando em one.matrix Sou o processo 2 de um total de 4 rodando em one.matrix Sou o processo 1 de um total de 4 rodando em one.matrix Sou o processo 3 de um total de 4 rodando em one.matrix
onde one.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
[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
Teste final
No mestre
[one]$ mpdboot -n 2 [one]$ mpdtrace -l one.matrix_40584 (192.168.0.99) cell100.matrix_59410 (192.168.0.100) [one]$ cd fortran/ [one]$ 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 one.matrix
Em cell100
[cell100]$ mpdtrace -l cell100.matrix_59410 (192.168.0.100) one.matrix_40584 (192.168.0.99)