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

De WikiLICC
Ir para: navegação, pesquisa
m (Inicializando o cluster)
m
 
(14 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
==Configurações==
+
* Criar o arquivo trap.f90 como em [[MPI:Exemplo Trapezoidal]]
* Mude para o seu diretório home
+
[one]$ vi trap.f90
  [usuario@um] cd
+
[one]$ mpif90 trap.f90 -o trap
* Crie um arquivo ''.mpd.conf''
+
* Iniciar o anel de nós
  [usuario@um] vi .mpd.conf
+
[one]$ mpdboot -n 2 -f ~/.mpd.hosts
informando uma palavra chave para o MPD
+
[one]$ mpdtrace -l
  MPD_SECRETWORD=senhaparampi
+
* Executar em 1, 2, 3 e 4 processadores.
 +
[one]$ mpiexec -l -n 1 ./speed
 +
[one]$ mpiexec -l -n 2 ./speed
 +
[one]$ mpiexec -l -n 3 ./speed
 +
[one]$ mpiexec -l -n 4 ./speed
  
* Mude o acesso para o arquivo
+
* Resultados
   [usuario@um] chmod 600 .mpd.conf
+
p  WallTime Speedup  Eficiência
 
+
1  3.35 s   1        1
* Crie um arquivo .mpd.hosts
+
2  1.66 s   2.02    1.01
   [usuario@um] vi .mpd.hosts
+
3  1.12 s   2.99    1.00
 
+
4  0.86 s   3.90    0.97
informando o nome das máquinas que formam o cluster
+
5  1.31 s   2.56    0.51
   um.phantom
+
8  0.87 s   3.85    0.48
  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@viggen]$ 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:
+
==Veja também==
  [usuario@viggen]$ jumpshot Unknown.clog2
+
* http://en.wikibooks.org/wiki/Fortran/Fortran_simple_input_and_output

Edição atual tal como às 21h47min de 7 de julho de 2010

[one]$ vi trap.f90
[one]$ mpif90 trap.f90 -o trap
  • Iniciar o anel de nós
[one]$ mpdboot -n 2 -f ~/.mpd.hosts
[one]$ mpdtrace -l
  • Executar em 1, 2, 3 e 4 processadores.
[one]$ mpiexec -l -n 1 ./speed
[one]$ mpiexec -l -n 2 ./speed
[one]$ mpiexec -l -n 3 ./speed
[one]$ mpiexec -l -n 4 ./speed
  • Resultados
p  WallTime Speedup  Eficiência
1  3.35 s   1        1
2  1.66 s   2.02     1.01
3  1.12 s   2.99     1.00
4  0.86 s   3.90     0.97
5  1.31 s   2.56     0.51
8  0.87 s   3.85     0.48


Veja também