Mudanças entre as edições de "Cluster do LICC"

De WikiLICC
Ir para: navegação, pesquisa
(Configurações)
m (Compilando e rodando um programa em paralelo)
 
(17 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
O LICC-IM/UFRGS conta também com um "cluster" de quatro processadores Pentium IV 2GHz com 256MBytes de memória e 20GBytes em disco cada, interligados através de um "switch" a 100Mbps e dotado de compiladores de alto desempenho HPF, Fortran90/95 e C, para o desenvolvimento de pesquisas na área de computação paralela, nas áreas de álgebra linear computacional e dinâmica de fluidos computacional.
+
O [[LICC]]-IM/UFRGS conta também com um "cluster" de quatro processadores Pentium IV 2GHz com 256MBytes de memória e 20GBytes em disco cada, interligados através de um "switch" a 100Mbps e dotado de compiladores de alto desempenho HPF, Fortran90/95 e C, para o desenvolvimento de pesquisas na área de computação paralela, nas áreas de álgebra linear computacional e dinâmica de fluidos computacional.
  
 
O cluster é composto por 4 máquinas que possuem o mesmo hardware: tunnan, lansen, draken, viggen (alguns softwares estão instalados apenas em alguma das máquinas, p.ex., o programa jumpshot está instalado na viggen.)
 
O cluster é composto por 4 máquinas que possuem o mesmo hardware: tunnan, lansen, draken, viggen (alguns softwares estão instalados apenas em alguma das máquinas, p.ex., o programa jumpshot está instalado na viggen.)
Linha 5: Linha 5:
 
==Instruções para utilizar o cluster em paralelo==
 
==Instruções para utilizar o cluster em paralelo==
  
# Requisitar uma conta de usuário nas 4 máquinas: tunnan, lansen, draken, viggen.
+
# Requisitar uma conta de usuário nas 4 máquinas: tunnan, lansen, draken, viggen. Veja [[Acesso aos computadores (contas de usuário)]].
 
# Conectar-se a uma máquina através de uma das 3 alternativas:
 
# Conectar-se a uma máquina através de uma das 3 alternativas:
 
#* localmente: utilize uma das 4 máquinas diretamente fornecendo o usuário e senha.
 
#* localmente: utilize uma das 4 máquinas diretamente fornecendo o usuário e senha.
Linha 36: Linha 36:
 
==Configurações==
 
==Configurações==
  
# Mude para o seu diretório home
+
* Mude para o seu diretório home
 
   [usuario@viggen] cd  
 
   [usuario@viggen] cd  
# Crie um arquivo .mpd.conf
+
* Crie um arquivo .mpd.conf
 
   [usuario@viggen] vi .mpd.conf
 
   [usuario@viggen] vi .mpd.conf
 
informando uma palavra chave para o MPD
 
informando uma palavra chave para o MPD
 
 
   MPD_SECRETWORD=senhaparampi
 
   MPD_SECRETWORD=senhaparampi
                     
 
  
# Mude o acesso para o arquivo
+
* Mude o acesso para o arquivo
  
   [usuario@viggen] chmod 600 mpd.conf
+
   [usuario@viggen] chmod 600 .mpd.conf
 
 
# Crie um arquivo .mpd.hosts
 
  
 +
* Crie um arquivo .mpd.hosts
 
   [usuario@viggen] vi .mpd.hosts
 
   [usuario@viggen] vi .mpd.hosts
  
 
informando o nome das máquinas que formam o cluster
 
informando o nome das máquinas que formam o cluster
 
 
   tunnan.mat.ufrgs.br
 
   tunnan.mat.ufrgs.br
 
   draken.mat.ufrgs.br
 
   draken.mat.ufrgs.br
 
   viggen.mat.ufrgs.br
 
   viggen.mat.ufrgs.br
 
   lansen.mat.ufrgs.br
 
   lansen.mat.ufrgs.br
                   
 
  
# Crie um arquivo .rhosts
+
* Crie um arquivo .rhosts
  
 
   [usuario@viggen] vi .rhosts
 
   [usuario@viggen] 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
 
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
 
 
   tunnan.mat.ufrgs.br usuario
 
   tunnan.mat.ufrgs.br usuario
 
   draken.mat.ufrgs.br usuario
 
   draken.mat.ufrgs.br usuario
Linha 74: Linha 68:
 
==Inicializando o cluster==
 
==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
+
* 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@viggen]$ mpdboot -n 4 -f ~/.mpd.hosts --rsh=rsh
 
   [usuario@viggen]$ mpdboot -n 4 -f ~/.mpd.hosts --rsh=rsh
  
# Para verificar que tudo está funcionando corretamente, digite
+
* Para verificar que tudo está funcionando corretamente, digite
 
 
 
   [usuario@viggen]$ mpdtrace
 
   [usuario@viggen]$ mpdtrace
  
 
A resposta desse comando deve ser algo como a lista das 4 máquinas
 
A resposta desse comando deve ser algo como a lista das 4 máquinas
 
 
   tunnan
 
   tunnan
 
   viggen
 
   viggen
 
   draken
 
   draken
 
   lansen
 
   lansen
                     
 
  
 
==Compilando e rodando um programa em paralelo==
 
==Compilando e rodando um programa em paralelo==
  
# Crie um programa inicial, digitando
+
* Crie um programa inicial, digitando
  
 
   [usuario@viggen]$ vi hellompi.f90
 
   [usuario@viggen]$ vi hellompi.f90
Linha 102: Linha 92:
 
   include "mpif.h"
 
   include "mpif.h"
 
   integer    ::  np, myid, ier
 
   integer    ::  np, myid, ier
     
+
 
   call MPI_Init( ier )
 
   call MPI_Init( ier )
 
   call MPI_Comm_size( MPI_COMM_WORLD, np,  ier)
 
   call MPI_Comm_size( MPI_COMM_WORLD, np,  ier)
 
   call MPI_Comm_rank( MPI_COMM_WORLD, myid, ier)
 
   call MPI_Comm_rank( MPI_COMM_WORLD, myid, ier)
 
+
 
   print *,"Sou o processo ", myid," de um total de ", np
 
   print *,"Sou o processo ", myid," de um total de ", np
 
   call MPI_Finalize( ier )
 
   call MPI_Finalize( ier )
 
   end program
 
   end program
                     
 
 
# Para compilar o programa, digite
 
  
 +
* Para compilar o programa, digite
 
   [usuario@viggen]$ mpif90 hellompi.f90 -o hellompi
 
   [usuario@viggen]$ mpif90 hellompi.f90 -o hellompi
  
# Para rodar o programa, digite
+
* Para rodar o programa, digite
 
 
 
   [usuario@viggen]$ mpiexec -n 4 ./hellompi &
 
   [usuario@viggen]$ mpiexec -n 4 ./hellompi &
  
 
==Utilizando o MPE==
 
==Utilizando o MPE==
  
# Para compilar o programa, digite
+
* Para compilar o programa:
 +
  [usuario@viggen]$ mpif90 hellompi.f90 -o hellompi -mpe=mpilog
  
      [usuario@viggen]$ mpif90 hellompi.f90 -o hellompi -mpe=mpilog
+
* Para rodar o programa:
 +
  [usuario@viggen]$ mpiexec -n 4 ./hellompi &
  
# Para rodar o programa, digite
+
* Depois de rodar o programa, um arquivo Unknows.clog2 foi criado. Para visualizar a iteração entre os computadores:
 +
  [usuario@viggen]$ jumpshot Unknown.clog2
  
      [usuario@viggen]$ mpiexec -n 4 ./hellompi &
 
  
# Depois de rodar o programa, um arquivo Unknows.clog2 foi criado. Para visualizar a iteracao entre os computadores, digite
+
== Ligações externas ==
 +
*[http://www.cacr.caltech.edu/beowulf/tutorial/building.html http://www.cacr.caltech.edu/beowulf/tutorial/building.html]
  
      [usuario@viggen]$ jumpshot Unknown.clog2
+
* http://abax.if.usp.br/drupal5/files/delyra_cluster.pdf
 +
* http://abax.if.usp.br/drupal5/files/

Edição atual tal como às 14h27min de 18 de maio de 2010

O LICC-IM/UFRGS conta também com um "cluster" de quatro processadores Pentium IV 2GHz com 256MBytes de memória e 20GBytes em disco cada, interligados através de um "switch" a 100Mbps e dotado de compiladores de alto desempenho HPF, Fortran90/95 e C, para o desenvolvimento de pesquisas na área de computação paralela, nas áreas de álgebra linear computacional e dinâmica de fluidos computacional.

O cluster é composto por 4 máquinas que possuem o mesmo hardware: tunnan, lansen, draken, viggen (alguns softwares estão instalados apenas em alguma das máquinas, p.ex., o programa jumpshot está instalado na viggen.)

Instruções para utilizar o cluster em paralelo

  1. Requisitar uma conta de usuário nas 4 máquinas: tunnan, lansen, draken, viggen. Veja Acesso aos computadores (contas de usuário).
  2. Conectar-se a uma máquina através de uma das 3 alternativas:
    • localmente: utilize uma das 4 máquinas diretamente fornecendo o usuário e senha.
    • em uma das máquinas do departamento de matemática: utilize o SSH para conectar-se a uma das 4 máquinas.
    • fora do departamento de matemática: utilize o SSH para conectar-se a euler (ou outra máquina do DMPA que permita acesso externo). Depois, utilize o SSH para conectar-se a uma das máquinas do cluster (note que o usuário e senha da euler pode ser diferente).

Utilizando o SSH

Conectando-se remotamente a uma máquina: login

  • Em Linux: utilize um cliente SSH (p.ex. openssh); exemplo de uso:
ssh usuario@euler.mat.ufrgs.br
  • Em Windows: utilize um cliente PUTTY; (256Kb ) (mostre-me)

Transferência de arquivos

  • Em Linux: SCP, um serviço embutido no mesmo cliente openssh; Ex. uso:
scp arquivo.txt usuario@euler.mat.ufrgs.br:~ 
scp usuario@euler.mat.ufrgs.br:~/arquivo.txt
scp -r usuario@euler.mat.ufrgs.br:~/diretorio . 
  • Em Windows, tecnologia SFTP, via cliente PSFTP da distribuição PUTTY; (412Kb)
  • Em Windows, tecnologia SFTP, via cliente WINSCP da distribuição FREEWARE WinSCP; (1.48Mb)
  • Em sistemas com Java instaldo (JDK), tecnologia SFTP combinada com Java, via cliente MindTerm (bin-1.2Mb, doc-1.6Mb)

Configurações

  • Mude para o seu diretório home
 [usuario@viggen] cd 
  • Crie um arquivo .mpd.conf
 [usuario@viggen] vi .mpd.conf

informando uma palavra chave para o MPD

 MPD_SECRETWORD=senhaparampi
  • Mude o acesso para o arquivo
 [usuario@viggen] chmod 600 .mpd.conf
  • Crie um arquivo .mpd.hosts
 [usuario@viggen] vi .mpd.hosts

informando o nome das máquinas que formam o cluster

 tunnan.mat.ufrgs.br
 draken.mat.ufrgs.br
 viggen.mat.ufrgs.br
 lansen.mat.ufrgs.br
  • Crie um arquivo .rhosts
 [usuario@viggen] 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

 tunnan.mat.ufrgs.br usuario
 draken.mat.ufrgs.br usuario
 viggen.mat.ufrgs.br usuario
 lansen.mat.ufrgs.br usuario

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@viggen]$ mpdboot -n 4 -f ~/.mpd.hosts --rsh=rsh
  • Para verificar que tudo está funcionando corretamente, digite
 [usuario@viggen]$ mpdtrace

A resposta desse comando deve ser algo como a lista das 4 máquinas

 tunnan
 viggen
 draken
 lansen

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:
 [usuario@viggen]$ jumpshot Unknown.clog2


Ligações externas