Mudanças entre as edições de "Minicluster:Fortran"

De WikiLICC
Ir para: navegação, pesquisa
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@viggen]$ vi hellompi.f90
+
   [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

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