25
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Curso de Ciência da Computação Aline Rosa Carvalho Luana de Parolis Bianchini GUIA DE CONFIGURAÇÃO DE UM CLUSTER BEOWULF Debian Sarge / Debian Etch / Debian Lenny / Debian Squeeze / MPI - LAM Prof. Dr. João Carlos de Moraes Morselli Jr. Departamento de Ciência da Computação PUC Minas campus Poços de Caldas Poços de Caldas 2013

Configurando Cluster

Embed Size (px)

DESCRIPTION

Configurando Cluster

Citation preview

  • 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 ................................................................................... 6

    1.1 Objetivo ......................................................................................... 6

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

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

    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

    sudo gedit /etc/apt/sources.list

    deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 CD Binary-1 20090214-16:29]/ lenny

    main

    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 super-

    usurio 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:

    Para evitar que o Debian fique pedindo o CD de instalao toda vez que uma

    instalao ou atualizao for realizada, comente a seguinte linha:

  • 8

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

    deb ftp://ftp.pucpcaldas.br/debian/ etch main contrib non-free

    sudo apt-get update

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

    comentada!

    E insira no final do arquivo as seguintes linhas:

    Em seguida, realize a sincronizao do repositrio com o seguinte comando:

    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

    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

    sudo adduser cluster

    sudo usermod u 1001 cluster

    sudo groupmod g 1002 cluster

    sudo gedit /etc/securetty

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

    libgmp3-dev libgmp3-doc

    Os pacotes acima foram instalados com o seguinte comando*:

    *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.):

    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:

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

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

    terminal:

    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:

  • 10

    rlogin

    rsh

    rexec

    sudo gedit /etc/hosts.equiv

    192.168.5.40

    192.168.5.41

    192.168.5.42

    192.168.5.44

    192.168.5.45

    sudo gedit /etc/exports

    E insira no final do arquivo as seguintes linhas:

    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:

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

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

    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:

  • 11

    /home/cluster/ *(rw, no_root_squash)

    #!/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 [ ] INATIVO

    |"

    echo ${IP} >> /etc/lam/lam-bhost.def

    echo ${IP} >> /etc/mpich/machines.LINUX

    E insira no final do arquivo as seguinte linha:

    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.

    marceloNotaacrescentar o comado sync(rw,sync,no_root_squash)

  • 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

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

    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:

    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 :

    ssh-keygen -t das (das ou rsa)

    Rodar no n

    zero e trocar

    sempre o

    endereo do

    escravo.

    marceloNotacriar este diretorio com o usuario cluster.

  • 13

    shutdown r now

    sudo cat /home/cluster/.ssh/id_das.pub

    ssh [email protected] 'cat >> /home/cluster/.ssh/authorized_keys '

    Logue como usurio cluster e digite o comando a seguir

    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 o /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:

    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

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

    192.168.5.40:/home/cluster /home/cluster nfs

    rsize=8192,wsize=8192,timeo=14,intr

    portmap: ALL

    lockd: ALL

    mountd: ALL

    rquotad: ALL

    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

    Insira no final do arquivo a seguinte linha:

    Para o Debian Sarge insira essa linha ao invs da linha anterior e siga os

    prximos passos at a o comando de montagem:

    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:

    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.

    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:

    marceloNotadeny = negar

    marceloNotaverificar se todas as pasta que estiverem neste caminho sero compartilhadas

  • 15

    sudo gedit /home/cluster/.rhosts

    192.168.5.40

    192.168.5.41

    192.168.5.42

    192.168.5.44

    192.168.5.45

    shutdown r now

    sudo mount -a

    portmap: host1, host2, host3, hostX

    lockd: host1, host2, host3, hostX

    rquotad: host1, host2, host3, hostX

    mountd: host1, host2, host3, hostX

    statd: host1, host2, host3, hostX

    statd: 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):

    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:

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

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

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

    escravo:

    marceloNotacolocar este arquivo no root tbmnano .rhosts

  • 16

    sh /home/cluster/scripts/geralam.sh

    gedit /etc/mpich/machines.LINUX

    gedit /etc/lam/lam-bhost.def

    lamboot -v

    sudo gedit /home/cluster/lamhosts

    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:

    *OBS: Esse procedimento deve ser realizado no TERMINAL COMO ROOT, e

    no no terminal normal...

    Verifique se os seguintes arquivos foram devidamente criados:

    *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:

    *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:

    marceloNotalogar com usuario cluster no mestreexecutar comando:sh /home/cluster/geralam.sh

  • 17

    192.168.5.40

    192.168.5.41

    192.168.5.43

    192.168.5.44

    192.168.5.45

    lamboot v lamhosts

    #include

    #include

    #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;

    E insira no arquivo apenas os endereos ativos do cluster:

    E por fim:

    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:

  • 18

    if (rank == 0)

    {

    strcpy(message,"Ola, Mundo!");

    for (i=0; i

  • 19

    lamclean -v

    mpitask [ -h ]

    mpimsg

    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:

    *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:

    *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:

    *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

    lamnodes

    Para listar todos os ns ativos do cluster (incluindo o n mestre),

    execute o comando lamnodes. No terminal digite:

    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

    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

    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:

    Aps a reinicializao do sistema, o mesmo j dever ser capaz de entrar no

    modo grfico

  • 22

    cd /home/cluster/scripts

    sh geralam.sh

    mpicc o nomeDoExecutavel nomeDoPrograma

    mpirun N nomeDoExecutvel

    Por exemplo:

    mpicc o hello helloworld.c

    mpirun N hello

    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

    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:

    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

    ssh nomeDoUsuario@IPdoNoMestre

    Por Exemplo:

    ssh [email protected] ou

    ssh [email protected]

    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:

    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

    rm rf nomeDoArquivoQueDesejaExcluir

    Por exemplo:

    rm rf exemplo.c

    rm rf al550000000

    scp arquivoAcopiar userDestino@ipDestino:~/

    Por Exemplo:

    scp helloworld.c [email protected]:~/

    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:

    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:

    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

    . Acesso em Outubro / 2010.

    ALVES, MARCOS J. P. Computao Baseada em Clusters. Disponvel em

    .

    Acesso em Maio / 2010.

    LAM / MPI Development Team. LAM / MPI Parallel Computing. Disponvel em

    . Acesso em Maro / 2010.

    SILVA, BRIVALDO A. J. Instalando o LAM-MPI no Debian. Disponvel em

    . Acesso em Maio

    / 2010.

    SILVA, GLEYDSON M. Guia Foca Linux. Disponvel em

    . Acesso em Maio / 2010.