MiniCluster de 4 computadores

De WikiLICC
Ir para: navegação, pesquisa

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