Você está na página 1de 8

Montagem de um Cluster Beowulf Debian Lenny

Anselmo, Evandro M.

3 de dezembro de 2008

Motivao ca

Devido a necessidade de alguns integrantes que compem o Laboratrio de o o Cincias Atmosfricas (LCA) do Departamento de F e e sica (DFI) da Universidade Federal de Mato Grosso do Sul (UFMS) trabalharem com Modelagem Atmosfrica em pesquisas, foi realizado a montagem de um cluster composto inicie almente por duas mquinas para processamento em paralelo utilizando Message a Passing Interface (MPI).

Introduo ca

Este artigo uma s e ntese de documentaes lidas relacionadas a montagem co de um Cluster Beowulf com adaptaes feitas para o funcionamento de tudo co em um sistema Debian GNU/Linux verso 5.0 codinome Lenny. Trata-se de a uma abordagem tcnica, em que usurios possam aproveitar uma rede de come a putadores para processamento de programas que utilizam MPI , por exemplo o BRAMS (Brazilian Regional Atmospheric Modeling System). O objetivo deste artigo no descrever como fazer programas para processamento em paralelo, a e estruturar cabeamento de rede ideal para clusters ou entrar em questes mais o tericas a respeito do assunto e sim algo bem tcnico relacionado a congurao o e ca das mquinas para a funcionamento da ferramenta de trabalho que o Cluster. a e Ser realizada a congurao de duas mquinas para processamento em paa ca a ralelo, portanto no nal da leitura deste artigo o usurio ser capaz de inserir a a quantas mquinas quiser em seu Cluster Beowulf Debian Lenny. a Se o usurio no tem familiaridade com sistemas operacionais Linux, primeia a ramente, este deve conhecer de maneira geral como a estrutura desses sistemas, e comandos bsicos, edio de texto via terminal, hierarquia de usurios, cona ca a gurao de rede, comunicao SSH (Secure Shell) e RSH (Remote Shell). Se ca ca necessrio, aconselho a leitura do Guia Foca Linux [3], que sempre me auxiliou a bastante. Tambm no ser feita uma abordagem a respeito da instalao da distrie a a ca buio Debian GNU/Linux Lenny. Para iniciar a execuo dos procedimentos ca ca
do programa de Ps-graduao/Mestrado em F o ca sica Aplicada pela UFMS, integrante do LCA (www.lca.ufms.br), com pesquisa relacionada ` Eletricidade Atmosfrica. Para a e contato, e-mail: evandro@debian-ms.org
Aluno

deste artigo o usurio dever ter instalado o Debian Lenny nas duas mquinas a a a que iro compor o cluster. a O Debian verso 5.0 codinome Lenny pode ser adquirido atravs do site da a e distribuio www.debian.org assim como diversos manuais. ca

Montando o Cluster Debian Lenny

Iremos realizar a instalao do LAM/MPI que ir proporcionar o processaca a mento em paralelo de programas em uma rede de computadores com sistema Debian, semelhante ao descrito em [2]. Para saber mais a respeito da implementao LAM/MPI em um sistema acesse www.lam-mpi.org. ca Escolha qual ser a mquina principal do cluster (node0) e a mquina escrava a a a (node1). A mquina principal ser onde iremos instalar os programas que iro a a a utilizar MPI. Neste caso foi congurado o hostname da mquina principal como a master e o hostname da mquina escrava como brams1. a

3.1

Instalao dos Pacotes Necessrios ca a

Na mquina master, estando seu sistema sincronizado com um repositrio a o ocial Debian Lenny, teremos que instalar os seguintes pacotes: lam-mpidoc - Documentation for the Message Passing Interface standard lam-runtime - LAM runtime environment for executing parallel programs lam4-dev - Development of parallel programs using LAM mpich-bin - MPI parallel computing system implementation libmpich1.0-dev - mpich static libraries and development les libmpich1.0gf - mpich runtime shared library rsh-client - rsh clients rsh-server - rsh servers nfs-kernel-server - Kernel NFS server support Ento execute: a master:~# apt-get install lam-mpidoc lam-runtime lam4-dev mpich-bin libmpich1.0-dev libmpich1.0-dev libmpich1.0gf rsh-client rsh-server nfs-kernel-server
1

3.2

Conguraes do Cluster co

Os procedimentos seguintes devem ser realizados em todos os computadores que compem o cluster. o Com o usurio root, edite o arquivo /etc/securetty acrescentando as linhas: a
1 Leitura

recomendvel a

rlogin rsh Editar o arquivo /etc/hosts.equiv acrescentanto os hostnamesdo cluster: master brams1 Para evitar problemas com permisses, adicione um usurio e grupo, neste o a caso o usurio lca e o grupo paralelo: a master:~# adduser lca master:~# groupadd paralelo brams1:~# adduser lca brams1:~# groupadd paralelo Adicione o usurio lca ao grupo paralelo congurando o arquivo /etc/group a de maneira que o usurio lca e o grupo paralelo possuam o mesmo UID 2 e a GID 3 em cada node. Por exempo: master:~# cat /etc/group ... lca:x:1800:paralelo parall:x:1101: ... e brams1:~# cat /etc/group ... lca:x:1800:paralelo parall:x:1101: ... Apenas no master edite o arquivo /etc/exports, compartilhando os diretrios /home/lca e /usr via NFS (Network File System) conforme exempo: o /home/lca/ *(rw,no_root_squash) /usr/ *(rw,no_root_squash) Edite o arquivo /etc/mpich/machines.LINUX, adicionando os hostnamesdo cluster. Se alguma mquina possuir n processadores adicione, hostname:n. Por a exemplo para mquinas com dois processadores: a master:2 brams:2 Com o usurio lca logadocrie o arquivo /home/lca/.rhosts contendo os a hostnamesdos computadores do cluster:
2 UserID 3 GroupID

master brams1 Crie tambm um arquivo com mesmo contedo presente no .rhosts (contendo e u os hostnames), por exempo /home/lca/lamhosts, para uso do pacote lamruntime. Ao executar programas MPI no cluster, as mquinas devem possuir as ina formao contidas no HD da mquina master. Portanto devemos montar os ca a diretrios compartilhados via NFS em cada computador escravo editando o o arquivo /etc/fstab conforme o exemplo abaixo: brams1:~# cat /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> proc /proc proc defaults /dev/sda1 / reiserfs notail /dev/sda6 /home reiserfs defaults /dev/sda5 none swap sw /dev/hda /media/cdrom0 udf,iso9660 user,noauto 192.168.1.2:/home/lca /home/lca nfs exec,dev,suid,rw 1 192.168.1.2:/usr/ /usr/ nfs exec,dev,suid,rw 1 1 Execute em brams1: brams1:~# mount -a

<dump> 0 0 0 0 0 1

<pass> 0 1 2 0 0

Vericando as Conguraes co

Tente executar algum comando via rsh entre as mquinas. A comunicao a ca rsh deve acontecer sem pedir senha. Por exemplo, execute: lca@master:~$ rsh brams1 w 17:42:30 up 1:23, 1 user, load average: 0,00, 0,00, 0,00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.7.9 17:32 2:42m 0.00s 0.00s -bash lca@master:~$ Note que o comando w foi executado na mquina master remotamente em a brams1 sem erros e sem pedir senha. O comando w mostra os usurios logados a no sistema. No caso de erros [...] existe ainda um teste para saber se o Debian realmente est utilizando o programa rsh ou o ssh no seu lugar [...] Para sabermos se a estamos utilizando o programa correto, execute como root[:][2] master:~# update-alternatives --display rsh rsh - estado auto e liga~o atualmente aponta para /usr/bin/netkit-rsh ca /usr/bin/ssh - prioridade 20 escravo rsh.1.gz: /usr/share/man/man1/ssh.1.gz /usr/bin/netkit-rsh - prioridade 100 4

escravo rsh.1.gz: /usr/share/man/man1/netkit-rsh.1.gz Melhor vers~o atual /usr/bin/netkit-rsh. a e master:~# Se a Melhor verso atual for o netkit-rsh estamos utilizando o programa a correto. Caso contrrio execute o comando: a master:~# update-alternatives --config rsh Existem 2 alternativas que fornecem rsh. Sele~o ca Alternativa ----------------------------------------------1 /usr/bin/ssh *+ 2 /usr/bin/netkit-rsh Pressione enter para manter o padr~o[*] ou digite o nmero da sele~o: a u ca Escolha o nmero que indica o executvel /usr/bin/netkit-rsh e aperte enter. u a Estando as mquinas comunicando-se via RSH sem senha vamos testar o a sistema LAM/MPI. Execute na mquina master, com o usurio lca: a a

lca@master:~$ lamboot -v lamhosts LAM 7.1.2/MPI 2 C++/ROMIO - Indiana University n-1<4905> ssi:boot:base:linear: booting n0 (master) n-1<4905> ssi:boot:base:linear: booting n1 (brams1) n-1<4905> ssi:boot:base:linear: finished lca@master:~$ Note que o comando lamboot deve reconhecer os nodes(n0 e n1 ) do cluster. Quando instalamos o pacote libmpich1.0-dev, este grava em seu hd, alguns programas MPI como exemplo para vericao do processamento em paralelo ca das mquinas do cluster. Iremos utilizar o programa cpi.c que calcula o valor a de . Copie o programa cpi.c para o diretrio do usurio cluster: o a lca@master:~$ cp /usr/share/doc/libmpich1.0-dev/examples/pi/cpi.c ~/ lca@master:~$ Vamos compilar o programa cpi.c: lca@master:~$ mpicc cpi.c -o cpi lca@master:~$ Para calcularmos o valor de utilizando os dois computadores em paralelo devemos executar:

lca@master:~$ mpirun -np 4 cpi Process 2 on master Process 0 on master Process 1 on brams1 Process 3 on brams1 pi is approximately 3.1416009869231245, Error is 0.0000083333333314 wall clock time = 0.000278 lca@master:~$ A sa do comando deve ser conforme descrita acima, o que indica o funda cionamento do cluster. O comando -np 4 representa o nmero de processos u enviados para os nodes. E poss vel tambm especicar quais nodes sero utie a lizados no processamento atravs do comando mpirun. Para mais informaes e co consulte o manual do comando. lca@master:~$ man mpirun MPIRUN(1) LAM COMMANDS NAME mpirun - Run MPI programs on LAM nodes. ... lca@master:~$

MPIRUN(1)

Consideraes Finais co

Em alguns artigos lidos dispon veis na web, recomenda-se que a comunicao ca entre as mquinas do cluster seja atravs de SSH, porm conforme [1] a comua e e nicao entre os nodes deste artigo foram feitas via RSH devido a problemas com ca permisses entre os arquivos que contm as chaves de criptograa (authorized o e keys) de cada usurio nos nodes. A unica vantagem de utilizar comunicao a ca SSH que as informaes trafegadas na rede so criptografadas e como se trata e co a de redes locais, neste caso no h necessidade de tal procedimento de segurana. a a c Em caso de um cluster com grande nmero de mquinas o cabeamento da u a rede no deve ser convencional e sim estruturado de maneira que a comunicao a ca entre cada node com o computador principal (node0) seja rpida e demorar a praticamente o mesmo intervalo de tempo, por exemplo, redes GigE, Mirynet, Inniband, Quadrics, etc.

Indice Remissivo
.rhosts, 3 /etc/exports, 3 /etc/fstab, 4 /etc/group, 3 /etc/hosts.equiv, 3 /etc/mpich/machines.LINUX, 3 /etc/securetty, 2 adduser, 3 BRAMS, 1 Cluster Beowulf Debian Lenny, 1 Consideraes Finais, 6 co cpi.c, 5 Debian GNU/Linux, 1 groupadd, 3 Instalao dos Pacotes Necessrios, 2 ca a Introduo, 1 ca LAM/MPI, 2 lamboot, 5 lamhosts, 4 Montando o Cluster Debian Lenny, 2 Motivao, 1 ca MPI , 1 mpirun, 5 usurio e grupo, 3 a Vericando as Conguraes, 4 co

Referncias e
[1] Alves, M. J. P. Computao Baseada em Clusters. ca dispon vel em: http://augustocampos.net/revista-do-linux/041/ tutorial cluster beowulf.html, acessado em 02 Dez. 2008. [2] Silva, B. A. J. Instalando o LAM-MPI no Debian. dispon em: www. vel dct.ufms.br/marco/paralelos2006/lammpi-debian.pdf, 25 Mar. 2006. [3] Silva, G. M. Guia Foca Linux. dispon em: http://focalinux.cipsga. vel org.br/, 08 Nov. 2008.

Você também pode gostar