Você está na página 1de 25

PONTIFCIA UNIVERSIDADE CATLICA DE MINAS GERAIS

Curso de Cincia da Computao

Aline Rosa Carvalho


Luana de Parolis Bianchini

GUIA DE CONFIGURAO DE UM CLUSTER BEOWULF

Debian Sarge / Debian Etch / Debian Lenny / Debian Squeeze / MPI LAM

Prof. Dr. Joo Carlos de Moraes Morselli Jr.


Departamento de Cincia da Computao
PUC Minas campus Poos de Caldas

Poos de Caldas
2013

RESUMO

Este documento se resume ao estudo de vrios mtodos e abordagens


diferentes sobre formas de configurao de um Cluster Beowulf, em um sistema
Debian GNU / Linux. Trata-se de uma abordagem tcnica, em que alunos possam
aproveitar uma rede de computadores para processamento de programas que
utilizam MPI.

Palavras-chave: Processamento Paralelo. Cluster BEOWULF. Debian.

LISTA DE ABREVIATURAS

MPI

Message Passing Interface

NFS

Network File System

RSH

Remote Shell

SUMRIO

1 INTRODUO ...................................................................................

1.1 Objetivo .........................................................................................

2 CONFIGURANDO O CLUSTER ........................................................

2.1 Configurao comum para todos os computadores ......................

2.2 Configurando o n mestre ............................................................

10

2.3 Configurando os ns escravos .....................................................

14

2.4 Iniciando a MPI no n mestre .......................................................

16

2.5 Testando a MPI .............................................................................

17

2.6 Comandos MPI .............................................................................

19

2.6.1 Lamclean .................................................................................

19

2.6.2 Mpitask......................................................................................

19

2.6.3 Mpimsg .....................................................................................

19

2.6.4 Lamnodes .................................................................................

20

3 PROBLEMAS DEBIAN 6 (Squeeze) ...................................................

21

4 VERIFICAO DO CLUSTER GUIA RPIDO................................... 22

5 CLUSTER CONFIGURADO E USADO.................................................. 24

6 CONSIDERAES FINAIS ................................................................

25

7 REFERNCIAS BIBLIOGRFICAS ..................................................

26

6
1

INTRODUO

Um cluster, ou tambm visto como um aglomerado de computadores formado


por um conjunto de computadores interconectados por uma rede ou barramento, que
utilizam de uma configurao ou sistema operacional classificado como sistema
distribudo.
Muitas vezes constitudo de computadores convencionais que atravs de
uma rede trabalham juntos para realizar uma nica tarefa como se fosse uma
mquina de grande porte. Existem diversos tipos de cluster, mas esse documento se
focar em um tipo muito famoso, conhecido como BEOWULF, que consiste em
vrios ns escravos gerenciados por um n principal, denominado de n mestre.
Este documento reflete os conhecimentos adquiridos na configurao do
cluster do Laboratrio 3 (de Engenharia de Redes) da Pontifcia Universidade
Catlica de Minas Gerais campus Poos de Caldas.

1.1

Objetivo

O objetivo deste documento no descrever como desenvolver programas


para serem processados em paralelo, mas em descrever de forma simples e objetiva
a arte de configurar um ambiente com o sistema operacional Linux Debian, para que
possa trabalhar como um cluster que utiliza da extenso funcional MPI a fim de
propiciar uma base confivel para execuo de programas que fazem uso de
processamento paralelo.
Para aqueles que pretendem se aventurar em configurar um cluster
BEOWULF, primeiramente deve-se adquirir um conhecimento bsico sobre
comandos de shell e a estrutura de diretrios do sistema operacional Linux Debian
Sarge / Debian Etch / Debian Lenny / Debian Squeeze. O conjunto de passos que
sero descritos neste documento parte do pressuposto que este conhecimento j
tenha sido adquirido.

7
2

CONFIGURANDO O CLUSTER

Em nossa experincia utilizamos duas implementaes da extenso funcional


MPI, uma delas, mais conhecida no contexto da Universidade, chamada LAM-MPI e
outra chamada MPICH. As duas em conjunto permitem a execuo de programas
paralelos que utilizam no somente dos computadores, aqui chamados de ns, para
distribuio de tarefas, mas tambm da quantidade de ncleos do processador de
cada n.
Foi de nossa preferncia realizar a reinstalao do sistema operacional de
cada n para que no houvesse a possibilidade de conflitos com instalaes
anteriores. Recomendamos fortemente que as pessoas encarregadas em gerenciar
o cluster faam o mesmo, tanto para aprenderem mais profundamente sobre o
processo de configurao, quanto para garantir que nada de errado ocorrer.

2.1

Configurao comum para todos os computadores

Foi realizada a instalao bsica do Linux Debian em todos os computadores,


onde foram definidos um nome de super-usurio e um de usurio em comum para
todos.
Para fazer login como super-usurio, usar:
usurio: root, senha: pproot..

Para fazer login como usurio comum, usar:


usurio: cluster, senha: ppcluster.

Aps a instalao, o primeiro procedimento foi autenticar-se como superusurio e configurar o repositrio da Universidade, para que as atualizaes fossem
mais rpidas. Este procedimento consiste em substituir o contedo do arquivo
/etc/apt/sources.list pelo contedo abaixo:

No terminal digite:

sudo gedit /etc/apt/sources.list


Para evitar que o Debian fique pedindo o CD de instalao toda vez que uma
instalao ou atualizao for realizada, comente a seguinte linha:
deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 CD Binary-1 20090214-16:29]/ lenny
main

8
*OBS: Para comentar uma linha, insira um # na frente da linha a ser
comentada!

E insira no final do arquivo as seguintes linhas:

deb ftp://ftp.pucpcaldas.br/debian-security/ etch/updates main contrib


deb ftp://ftp.pucpcaldas.br/debian/ etch main contrib non-free
Em seguida, realize a sincronizao do repositrio com o seguinte comando:

sudo apt-get update


Optamos por instalar todos os pacotes, tanto do n mestre (servidor) quanto
dos ns escravos (clientes), para que seja possvel a comunicao bidirecional com
o terminal remoto e que seja permitida a execuo local atravs de processos
paralelos em cada n. Porm o que definiu o mestre e os escravos foi
configurao que se fez para os pacotes instalados.
A lista abaixo foi utilizada na instalao:
build-essential: uma lista informativa que contm todos os pacotes necessrios
para compilao de programas em linguagem c.
lam-mpidoc: documentao para a MPI.
lam-runtime: ambiente de tempo de execuo para programas paralelos.
lam4-dev: pacote de desenvolvimento para programas em MPI.
mpich-bin: implementao da MPI.
libmpich1.0-dev: bibliotecas estticas e de desenvolvimento da MPICH.
libmpich1.0gf: ambiente compartilhado de tempo de execuo da MPICH.
rsh-client: cliente RSH (Cliente de terminal remoto).
rsh-server: servidor RSH (Servidor de terminal remoto).
nfs-kernel-server: habilita o suporte ao servidor NFS.
libgmp3c2: biblioteca aritmtica de nmeros gigantes.
libgmp3-dev: pacote de desenvolvimento da biblioteca de nmeros gigantes.
libgmp3-doc: documentao da biblioteca de nmeros gigantes.

9
Os pacotes acima foram instalados com o seguinte comando*:

sudo apt-get install build-essential lam-mpidoc lam-runtime lam4-dev


mpich-bin libmpich1.0-dev libmpich1.0gf rsh-client rsh-server nfs-kernel-server
nfs-common libgmp3-dev libgmp3-doc libgmp3c2
*OBS: Digite o comando acima tudo na mesma linha!

Para o Debian Sarge, devem-se seguir as seguintes instrues:


Realizado o login com o usurio root execute o seguinte comando (antes se for
necessrio digite apt-setup e inclua os espelhos HTTP dos locais: Unicamp e
Debian.org.):

sudo apt-get install gcc lam-runtime lam4-dev nfs-user-server libgmp3


libgmp3-dev libgmp3-doc

Como citado anteriormente, criamos um usurio especfico para o cluster


(Usurio cluster), pois ser atravs dele que o n principal enviar as tarefas para
os ns escravos. importante ressaltar que o usurio deve ser idntico em todos os
ns e para isto foi necessrio executar os seguintes comandos:

Para adicionar um novo usurio, com o nome de cluster. Digite no terminal:

sudo adduser cluster


Para modificar o id do usurio cluster para o nmero 1001. Digite no terminal:

sudo usermod u 1001 cluster


Para modificar o grupo do usurio cluster para o nmero 1002. Digite no
terminal:

sudo groupmod g 1002 cluster


Em seguida o servio de terminal remoto foi permitido em todos os ns atravs
da insero de seus servios no arquivo /etc/securetty. Para isto bastou
acrescentar as seguintes linhas no fim do arquivo, no terminal digite:

sudo gedit /etc/securetty

10
E insira no final do arquivo as seguintes linhas:

rlogin
rsh
rexec
O cliente de terminal remoto envia o usurio do sistema automaticamente no
incio da conexo, assim no necessrio digitar o nome de usurio. E para que
no seja necessrio digitar a senha foi preciso informar em cada n quais eram os
ns confiveis da rede. Ento foi editado o arquivo /etc/hosts.equiv, e em seu
contedo foi inserido o endereo IP de cada n do cluster, um por linha. No terminal
digite:

sudo gedit /etc/hosts.equiv


*OBS: bem provvel que esse arquivo esteja vazio...

E insira no arquivo as seguintes linhas (um em cada linha):

192.168.5.40
192.168.5.41
192.168.5.42
192.168.5.44
192.168.5.45
Realizado os procedimentos acima, encerra-se a configurao comum para
todos os ns.

2.2

Configurando o n mestre

O n mestre, tambm chamado de n zero, o responsvel por distribuir as


tarefas para os outros ns, que so chamados de ns escravos. Para que isso fosse
possvel foram necessrios alguns procedimentos.

Primeiramente, devemos exportar o diretrio do usurio cluster atravs do


servio de NFS. Ento, como super-usurio, inserimos a seguinte linha no fim do
arquivo /etc/exports. No terminal digite:

sudo gedit /etc/exports

11
E insira no final do arquivo as seguinte linha:

/home/cluster/ *(rw, no_root_squash)


Em seguida, foi criado o script de shell abaixo, responsvel por testar a
comunicao com cada n escravo, para que sejam criados os arquivos de
configurao da MPI.
#!/bin/sh
echo -ne '\033c'
echo "+=========================================================================+"
echo "|

GERALAM.SH

|"

echo "+=========================================================================+"
echo "|

OBJETIVO: Script para verificar se os hosts do CLUSTER estao ativos... |"

echo "+=========================================================================+"
echo "+=========================================================================+"
echo "|

VERSAO: 2.20810

|"

echo "+=========================================================================+"
echo "|

Ciencia da Computacao - PUC Minas - Pocos de Caldas

|"

echo "|

|"

echo "|

DISCIPLINA: Processamento Paralelo

|"

echo "|

PROFESSOR:

|"

Dr. Joao Carlos de Moraes Morselli Jr.

echo "+=========================================================================+"
echo -e "# IP dos hosts ativos" > /etc/mpich/machines.LINUX
echo -e "# IP dos Hosts ativos" > /etc/lam/lam-bhost.def
echo "|
echo "|

|"
Verificando bancada do CLUSTER...

|"

echo "|

|"

NET="192.168.5."
HOST="40"
CONT="0"
while [ ${HOST} -lt 46 ]; do
ATIVO=`/bin/ping -c 1 ${NET}${HOST} | /bin/grep 'transmitted' | awk '{print $4}'`
if [ X"${ATIVO}" = X"1" ]; then
RSH=`rsh ${NET}${HOST} echo -e $SHELL`
if [ X"${RSH}" = X"/bin/bash" ]; then
CONT=$((CONT+1))
IP=${NET}${HOST}
echo "|

${IP}

[ X ] ATIVO

|"
echo ${IP} >> /etc/lam/lam-bhost.def
echo ${IP} >> /etc/mpich/machines.LINUX

] INATIVO

12
else
IP=${NET}${HOST}
echo "|

${IP}

] ATIVO

[ X ] INATIVO

|"
fi
else
IP=${NET}${HOST}
echo "|

${IP}

] ATIVO

[ X ] INATIVO

|"

fi
HOST=$((HOST+1))
done
echo "|

|"

echo "+=========================================================================+"
echo "|

TOTAL: ${CONT} host(s) ativo(s)

|"

echo "+=========================================================================+"
echo ""
cp /etc/mpich/machines.LINUX /etc/lam/lam-bhost.def

Definimos a localizao do script em /home/cluster/scripts e seu nome como


geralam.sh, e depois restringimos as permisses para que o usurio cluster possa
apenas executar o script, e no editar. Para isso:

No terminal digite:

sudo chmod 555 /home/cluster/scripts/geralam.sh

Configurao SSH: Apenas Debian Sarge

O SSH um servio que estabelece conexes entre mquinas implementando


os mecanismos de autenticao atravs de chave cifrada utilizando algoritmo de
criptografia.
Para que o n mestre consiga se conectar aos ns escravos, uma senha de
acesso dever ser fornecida. Iremos configurar uma chave pblica no SSH para que
seja possvel a conexo com os ns escravos sem ter que digitar uma senha.
Para que isso seja permitido deve estar no usurio que ir usar o cluster, (no
caso deste trabalho o usurio se chama cluster) e executar os seguintes comandos
no shell :
Rodar no n
zero e trocar

ssh-keygen -t das (das ou rsa)

sempre o
endereo do
escravo.

13
Logue como usurio cluster e digite o comando a seguir
sudo cat /home/cluster/.ssh/id_das.pub
ssh cluster@192.168.5.41 'cat >> /home/cluster/.ssh/authorized_keys '
Dicas:

Colocar o IP das mquinas que ser utilizado exemplo acima


192.168.5.41.

s vezes necessrio liberar o arquivo sudo chmod 777


/home/cluster,

/.ssh/id_das.pub

ou

/home/cluster

/.ssh/authorized_keys.

s vezes os clientes no possuem o arquivo de chaves pblicas, e


necessrio cria-lo executando o comando ssh-keygen -t das (das ou
rsa) nos clientes

Sendo que o primeiro comando criar dentro do diretrio SSH no n mestre, o


arquivo id_das(ou rsa).pub que a chave pblica do usurio neste n.
O segundo comando executa a transmisso desta chave para o n escravo
fazendo assim que o mesmo, a partir de agora, autorize o n mestre a se conectar
com ele sem que seja utilizada uma senha.
Para se transmitir esta chave para mais ns escravos, basta executar o
segundo comando novamente colocando o IP do n escravo que se desejam fazer a
autorizao.
Para testar se a configurao esta funcionando faa um SSH para o n que
recebeu a chave de autorizao, se no pedir senha o mesmo est funcionando.

E por fim, reiniciamos o n mestre atravs do seguinte comando:

shutdown r now

2.3

Configurando os ns escravos

Para que houvesse comunicao no momento da execuo de programas


paralelos, foi necessrio mapear o diretrio do usurio cluster, presente no n
mestre, em todos os ns escravos. Ento, como super-usurio, editamos o arquivo
/etc/fstab e inserimos a seguinte linha no fim do arquivo, no terminal digite:

14
sudo gedit /etc/fstab
Insira no final do arquivo a seguinte linha:

192.168.5.40:/home/cluster/ /home/cluster/ nfs exec,dev,suid,rw 1 1


Para o Debian Sarge insira essa linha ao invs da linha anterior e siga os
prximos passos at a o comando de montagem:

192.168.5.40:/home/cluster /home/cluster nfs


rsize=8192,wsize=8192,timeo=14,intr
Depois de feita as modificaes devem ser salvas e deve ser editado o arquivo
/etc/hosts.denny para definir a segurana do compartilhamento inserir as seguintes
linhas no final do mesmo:

portmap: ALL
lockd: ALL
mountd: ALL
rquotad: ALL
Aps adicionar estas informaes, o arquivo deve ser salvo e deve ser editado
o arquivo /etc/hosts.allow para definir o IP ou faixa de IPs que podero "concorrer"
aos compartilhamentos, ou seja, especificar quem ter acesso a cada servio.

portmap: 192.168.5.41
lockd:

192.168.5.41

rquotad: 192.168.5.41
mountd: 192.168.5.41
statd:

192.168.5.41

Neste caso ser adicionando o direito de concorrer ao compartilhamento


apenas ao n escravo que tem o IP 192.168.5.41, para adicionar direitos de
concorrer ao compartilhamento a mais ns escravos deve adicionar as informaes
da seguinte forma:

15
portmap: host1, host2, host3, hostX
lockd:

host1, host2, host3, hostX

rquotad: host1, host2, host3, hostX


mountd: host1, host2, host3, hostX
statd:
statd:

host1, host2, host3, hostX

172.20.1.2
Onde host1, 2, 3 e X correspondem aos endereos IPs dos ns escravos que

se quer dar o direito de concorrer ao compartilhamento da rea.


Aps adicionar as informaes necessrias o arquivo deve ser salvo e est
configurado o servidor NFS.
E por fim, para montar a partio compartilhada, digite (comando de
montagem):

sudo mount -a
Em seguida autenticamos no sistema com o usurio cluster, criamos o arquivo
/home/cluster/.rhosts, e nele definimos os endereos IP de todos os ns confiveis
para este usurio. Por consequncia o contedo do arquivo ficou idntico ao
/etc/hosts.equiv. No terminal digite:

sudo gedit /home/cluster/.rhosts


*OBS: bem provvel que esse arquivo esteja vazio...
E insira no arquivo as seguintes linhas (um em cada linha):

192.168.5.40
192.168.5.41
192.168.5.42
192.168.5.44
192.168.5.45

Ento certificamo-nos que o n mestre estava ligado, e reiniciamos o n


escravo:

shutdown r now

16
2.4

Iniciando a MPI no n mestre

No n mestre, nos autenticamos no sistema com o usurio cluster e


executamos /scripts/geralam.sh para criar os arquivos de configurao da MPI. Os
arquivos criados contm os endereos IP dos ns ativos do cluster. No terminal
como ROOT digite:

sh /home/cluster/scripts/geralam.sh
*OBS: Esse procedimento deve ser realizado no TERMINAL COMO ROOT, e
no no terminal normal...

Verifique se os seguintes arquivos foram devidamente criados:

gedit /etc/mpich/machines.LINUX
gedit /etc/lam/lam-bhost.def
*OBS: Verifique tambm se tais arquivos realmente contenham os endereos
IPs apenas dos ns ativos do cluster...
Aps a criao dos arquivos foi necessrio iniciar efetivamente o ambiente MPI
atravs do seguinte comando. No terminal digite:

lamboot -v
*OBS: Este comando consulta os arquivos gerados (citados acima) com os
endereos IP dos ns ativos do cluster...

Caso seja necessrio realizar a manuteno de um dos ns do cluster, esse


dever ficar de fora do mesmo. Para isso, o usurio poder criar um arquivo texto
qualquer com os endereos IPs ativos do cluster e pass-lo como parmetro para o
comando lamboot. Exemplo:
O n referente ao IP = 192.168.5.42 precisar passar por uma manuteno.
Ento devemos retir-lo do cluster. Para isso, vamos criar um arquivo chamado
lamhosts, e passar apenas os endereos IPs dos ns ativos do cluster. No terminal
digite:

sudo gedit /home/cluster/lamhosts

17
E insira no arquivo apenas os endereos ativos do cluster:

192.168.5.40
192.168.5.41
192.168.5.43
192.168.5.44
192.168.5.45
E por fim:

lamboot v lamhosts
Com isso, nota-se que o n referente ao IP = 192.168.5.42 no se encontra
mais presente ou ativo em nosso cluster.

Uma vez realizada a manuteno, este n poder ser ativado novamente. Para
isso, execute o script geralam.sh novamente, e em seguida o comando lamboot v
(tais passos j foram citados acima).

2.5

Testando a MPI

Para atestar que o ambiente MPI est funcionando corretamente, o seguinte


cdigo-fonte foi utilizado, que nada mais do que um Hello-World em paralelo,
onde cada n escravo ativo enviar para o n mestre uma mensagem indicando que
este se encontra ativo:
#include <stdio.h>
#include <string.h>
#include "mpi.h"
main(int argc, char *argv[])
{
int ret, rank, size, i, tag;
MPI_Status status;
char message[12];
ret = MPI_Init(&argc, &argv);
ret = MPI_Comm_rank(MPI_COMM_WORLD, &rank);
ret = MPI_Comm_size(MPI_COMM_WORLD, &size);
tag=100;

18
if (rank == 0)
{
strcpy(message,"Ola, Mundo!");
for (i=0; i<size; i++)
ret = MPI_Send(message, 12, MPI_CHAR, i, tag, MPI_COMM_WORLD);
}
else
ret = MPI_Recv(message, 12, MPI_CHAR, 0, tag, MPI_COMM_WORLD, &status);
printf("Mensagem do no %d : %s\n", rank, message);
ret = MPI_Finalize();
}

Para executar esse cdigo, utilizamos os seguintes cdigos. No terminal digite:

mpicc o nomedoexecutvel nomedofonte.c


*OBS: Este comando responsvel por compilar e fazer a link edio do
cdigo-fonte...

E em seguida:

mpirun N nomedoexecutvel
*OBS: Este comando responsvel por executar o arquivo executvel em
todos os ns do cluster...

2.6

Comandos MPI

2.6.1 Lamclean

Durante o perodo de gerentes de cluster nos deparamos com alguns


problemas comuns.
Muitas vezes os alunos criavam programas que continham erros gerando
arquivos que no eram fechados, tarefas que eram distribudas para ns

19
inexistentes, programas que no encerravam, dentre muitos outros
problemas. Caso isso ocorra, deve-se digitar no terminal do n mestre o seguinte
comando:

No terminal digite:

lamclean -v
*OBS: Este comando responsvel por matar todos os programas MPI e
apagar todas as mensagens pendentes...

2.6.2

Mpitask

Um outro comando interessante o mpitask. Com ele possvel saber o


estado corrente dos programas MPI sendo executados. Esse comando anlogo ao
comando UNIX os. No terminal digite:

mpitask [ -h ]
*OBS: A opo h na linha de comando fornece um breve resumo desse
comando...

2.6.3

Mpimsg
Similar ao comando mpitask, esse comando fornece informaes sobre

programas MPI que esto sendo executados. O mpimsg mostra todas as


mensagens pendentes no ambiente MPI corrente. Com esse comando, voc pode
ver as mensagens que nunca foram recebidas, mesmo depois que seu programa
MPI tenha sido completado. No terminal digite:

mpimsg
*OBS: Esse comando no til se voc estiver usando o modo "client-to-client"
que o default. Voc deve especificar a opo -lamd no seu comando mpirun para
que o comando mpimsg funcione corretamente.

2.6.4

Lamnodes

20
Para listar todos os ns ativos do cluster (incluindo o n mestre),
execute o comando lamnodes. No terminal digite:

lamnodes
Ser exibido no prprio terminal quais ns esto ativos, e quantos
processadores disponveis cada n possui.

n0 192.168.5.40:1:origin.this_node
n1 192.168.5.41:1:
n2 192.168.5.42:1:
n3 192.168.5.43:1:
n4 192.168.5.44:1:
n5 192.168.5.45:1:

*OBS: Aps executar o comando lamnodes, os seguintes ns foram listados.


Isso indica que cada um desses ns est ativo no cluster, e que cada um possui
apenas 1 processador disponvel (:1). Inclusive o n mestre aparece nessa lista...

21
3 PROBLEMAS DEBIAN 6 (Squeeze)

Na reescrita deste documento, a verso 6 do Debian (Squeeze) tem uma


incompatibilidade com as placas de vdeo ATI, onde os atuais computadores que
compem o cluster possuem placas de vdeo deste fabricante.
Aps a formatao e instalao do Debian 6, o computador no conseguir
iniciar no modo grfico, logo tem-se que utilizar o modo de recuperao do grub e
logar como usurio root.
Uma vez logado em modo texto com o usurio root, deve-se criar o arquivo
/etc/X11/xorg.conf, essa verso do Debian no possui o mesmo e se criado ele
seguir as configuraes contidas no mesmo.
O arquivo dever ficar com as seguintes linhas:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver
"kbd"
Option
"XkbRules" "xorg"
Option
"XkbModel" "abnt2"
Option
"XkbLayout" "br"
Option
"XkbVariant" "abnt2"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver
"mouse"
EndSection
Section "Device"
Identifier "Configured Video Device"
Driver
"vesa"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor
"Configured Monitor"
EndSection
Aps a reinicializao do sistema, o mesmo j dever ser capaz de entrar no
modo grfico

22
4- VERIFICAO O CLUSTER GUIA RPIDO

Para que os gerentes do cluster faam uma verificao diria, onde verificamos
se o cluster est funcionando perfeitamente, basta apenas seguir os seguintes
passos.

I. Se o cluster estiver desligado, lembre-se que o n Mestre o 1 que deve


ser ligado, depois seus ns escravos;
II. Faa login como root.
III. Rode o geralam.sh. Ele verificar se todos os ns esto ativos. Para isso
faa

cd /home/cluster/scripts
sh geralam.sh
Todos os ns devero aparecer [Ativo]. Caso algum n estiver [Offline]
verificar se o mesmo est conectado rede ou se ele foi ligado 1 que o n mestre
ou quaisquer outros motivos.

IV. Dar logout e logar como cluster.


V. Execute o comando lamboot v.
VI. Compilar o hello world. Para isso faa:

mpicc o nomeDoExecutavel nomeDoPrograma


mpirun N nomeDoExecutvel
Por exemplo:
mpicc o hello helloworld.c
mpirun N hello
Caso aparecer Ol Mundo vindo de todos os ns, est correto!

No Esquea!

Para remover, gerenciar: logar como usurio root.

Para compilar, executar: logar com usurio cluster.

23
possvel conectar-se com o cluster a partir de qualquer
computador, desde que esteja conectado rede da universidade (PUC Minas
campus Poos de Caldas). Para isso, abra o terminal de digite:

ssh nomeDoUsuario@IPdoNoMestre
Por Exemplo:
ssh root@192.168.5.40 ou
ssh cluster@192.168.5.40
Normalmente aparece um aviso onde digitamos yes e logo aps solicitado
a senha do usurio.

No esquecendo que:

Para fazer login como super usurio, usar:


usurio: root, senha: pproot..

Para fazer login como usurio comum, usar:


usurio: cluster, senha: ppcluster.

24
5 CLUSTER CONFIGURADO E INSTALADO

Caso o cluster j estiver configurado e possuir cdigos de alunos anteriores,


tem que deixa-lo pronto para outros alunos usarem. Nesse caso, apague todos os
arquivos .c e pastas com matrculas de alunos, caso existir (mantenha apenas o
cdigo de backup ou outros necessrios, para isso, consulte o professor
responsvel). Nesse caso aps logar como root, faa:

rm rf nomeDoArquivoQueDesejaExcluir
Por exemplo:
rm rf exemplo.c
rm rf al550000000

No caso do cdigo do Hello World, verificar se o mesmo do arquivo original


mostrado anteriormente. Do contrrio, tem que se criar um Hello World, para isso
entre como root e faa os seguintes passos:

scp arquivoAcopiar userDestino@ipDestino:~/


Por Exemplo:
scp helloworld.c cluster@192.168.5.40:~/

Onde o usurio vai ser o cluster, o IP Destino o do N Mestre e :~/ significa que vai
ser colocado na home desse usurio, ou seja, onde est os outros arquivos .c.

25
6 CONSIDERAES FINAIS

Em alguns artigos disponveis na internet, recomenda-se que a comunicao


entre as mquinas do cluster seja feita atravs de SSH, porm a comunicao entre
os ns neste documento foi feita via RSH, devido a problemas com permisses entre
os arquivos que contm as chaves de criptografia (authorized-keys) de cada usurio
nos ns. A nica vantagem de utilizar comunicao SSH que as informaes
trafegadas na rede so criptografadas, e como se trata de uma rede local, neste
caso no h necessidade de tal procedimento de segurana.

Em caso de um cluster com um grande nmero de mquinas o cabeamento da


rede no deve ser convencional e sim estruturado, de maneira que a comunicao
entre cada n escravo com o n mestre seja rpida e leve praticamente o mesmo
intervalo de tempo.

26
7 REFERNCIAS BIBLIOGRFICAS

ALVIM, ADRIANA C. F. Executando programas sob LAM / MPI. Disponvel em


<http://www.uniriotec.br/~adriana/MPI/running.html>. Acesso em Outubro / 2010.
ALVES, MARCOS J. P. Computao Baseada em Clusters. Disponvel em
<http://augustocampos.net/revista-dolinux/

041/tutorial_cluster_beowulf.html>.

Acesso em Maio / 2010.


LAM / MPI Development Team. LAM / MPI Parallel Computing. Disponvel em
<http://www.lam-mpi.org>. Acesso em Maro / 2010.
SILVA, BRIVALDO A. J. Instalando o LAM-MPI no Debian. Disponvel em
<http://www.dct.ufms.br/~marco/paralelos2006/lammpi-debian.pdf>. Acesso em Maio
/ 2010.
SILVA,

GLEYDSON

M.

Guia

Foca

<http://focalinux.cipsga.org.br>. Acesso em Maio / 2010.

Linux.

Disponvel

em