Mudanças entre as edições de "Minicluster:Fortran"
De WikiLICC
m (→Inicializando o cluster) |
m (→Compilando e rodando um programa em paralelo) |
||
Linha 61: | Linha 61: | ||
* Crie um programa inicial, digitando | * Crie um programa inicial, digitando | ||
− | [usuario@ | + | [usuario@um]$ vi hellompi.f90 |
com o seguinte código: | com o seguinte código: |
Edição das 13h19min de 18 de maio de 2010
Índice
Configurações
- Mude para o seu diretório home
[usuario@um] cd
- Crie um arquivo .mpd.conf
[usuario@um] vi .mpd.conf
informando uma palavra chave para o MPD
MPD_SECRETWORD=senhaparampi
- Mude o acesso para o arquivo
[usuario@um] chmod 600 .mpd.conf
- Crie um arquivo .mpd.hosts
[usuario@um] vi .mpd.hosts
informando o nome das máquinas que formam o cluster
um.phantom dois.phantom tres.phantom quatro.phantom
- Crie um arquivo .rhosts
[usuario@um] vi .rhosts
com o nome das máquinas que formam o cluster e o seu nome de usuario informando que esse usuário pode ter acesso a sua conta através de rsh
um.phantom usuario dois.phantom usuario tres.phantom usuario quatro.phantom usuario
Inicie o serviço mpd caso não esteja ativo.
[user] $ mpd & A file named .mpd.conf file must be present in the user's home directory (/etc/mpd.conf if root) with read and write access only for the user, and must contain at least a line with: MPD_SECRETWORD=<secretword> One way to safely create this file is to do the following: cd $HOME touch .mpd.conf chmod 600 .mpd.conf and then use an editor to insert a line like MPD_SECRETWORD=mr45-j9z into the file. (Of course use some other secret word than mr45-j9z.)
Inicializando o cluster
- Antes de rodar um programa em paralelo é necessário conectar as máquinas em paralelo. Com as máquinas ligadas (apenas uma vez a cada sessão), digite
[usuario@um]$ mpdboot -n 4 -f ~/.mpd.hosts --rsh=rsh
- Para verificar que tudo está funcionando corretamente, digite
[usuario@um]$ mpdtrace
A resposta desse comando deve ser algo como a lista das 4 máquinas
um dois tres quatro
Compilando e rodando um programa em paralelo
- Crie um programa inicial, digitando
[usuario@um]$ vi hellompi.f90
com o seguinte código:
program hellompi implicit none include "mpif.h" integer :: np, myid, ier call MPI_Init( ier ) call MPI_Comm_size( MPI_COMM_WORLD, np, ier) call MPI_Comm_rank( MPI_COMM_WORLD, myid, ier) print *,"Sou o processo ", myid," de um total de ", np call MPI_Finalize( ier ) end program
- Para compilar o programa, digite
[usuario@viggen]$ mpif90 hellompi.f90 -o hellompi
- Para rodar o programa, digite
[usuario@viggen]$ mpiexec -n 4 ./hellompi &
Utilizando o MPE
- Para compilar o programa:
[usuario@viggen]$ mpif90 hellompi.f90 -o hellompi -mpe=mpilog
- Para rodar o programa:
[usuario@viggen]$ mpiexec -n 4 ./hellompi &
- Depois de rodar o programa, um arquivo Unknows.clog2 foi criado. Para visualizar a iteração entre os computadores:
[usuario@viggen]$ jumpshot Unknown.clog2