Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Configurando um cluster com o Fedora Core 4 e MPICH-2

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Artigo Configurando um cluster com o Fedora Core 4 e MPICH-2

    Hoje em dia, fala-se muito na utilização de clusters de computadores para a solução de problemas complexos utilizando programação paralela. Neste artigo apresento passo a passo as informações necessárias para configurar um cluster usando o Fedora Core 4 e o MPICH-2.
    Por: Fernando Simões Junior

    Introdução
    Com o avanço da tecnologia, os computadores pessoais (PC) tem se tornado casa vez mais rápidos e baratos, devido a este fato tem-se utilizado estes micros para soluções de computação de alto desempenho, utilizando o conceito de clusters. Neste artigo pretendo auxiliar o leitor passo a passo a configurar um cluster de micros utilizando o MPICH2, vale lembrar que o MPICH-2 serve para comunicação paralela em cluster homogêneos (todas as máquinas iguais).

    Antes de começar devemos preparar os micros para tal configuração. Vamos partir do princípio que os micros já estão com o sistema operacional instalado e funcionando em rede.

    Para que os micros possam trabalhar em paralelo é necessário que estes possam executar comandos uns nos outros sem a necessidade de senha. Isto pode ser realizado seguindo o artigo Fazendo RSH sem senha que escrevi.

    Vamos partir do princípio que já é possível realizar rsh e rlogin de um micro para o outro sem a necessidade de senha.

    Exportando diretório para os outros micros do cluster
    Passos:

    1. Criar o diretório que será exportado em todas as máquinas do sistema.

    2. Configurar no servidor o arquivo /etc/exports, incluir a linha abaixo no arquivo exports:
    Código:
    /home/diretorioexportado    Ip-do-cliente(sync,rw,no_root_squash)
    Iniciar os serviço nfs com o comando:

    # /usr/sbin/ntsysv

    3. Configurar os clientes para que montem o diretório exportado, editar o arquivo /etc/fstab incluindo a linha:
    Código:
    Ip-do-servidor:/home/diretorioexportado   /home/diretorioexportado nfs rw,bg 0 0
    4. Reiniciar os serviços de rede em todos os computadores:

    # service xinetd restart


    Adicionando o usuário em todas as máquinas do cluster, como root:

    # useradd usuário
    # passwd usuário


    5. Após criar os usuário devemos instalar o MPICH-2.

    Instalando o MPICH-2:

    Para instalar o mpich2 seguir as configurações indicadas pelo desenvolvedor do software ref:

    * Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...


    Executar:

    # ./configure
    # make
    # make install


    1. Exportar as variáveis de ambiente do mpich2 para os usuários, criar o script, salvar em /etc/profile.d/ e dar permissões de execução a todos os usuários.

    # vi mpiconf.sh

    Código:
    #!/bin/bash
    # PATH ENVIRONMENT TO MPICH2 #
    PATH=$PATH:/local-de-instalação-do-mpi/bin
    export PATH
    # END ENVIRONMENT TO MPICH2 #
    Alterar as permissões do arquivo mpiconf.sh:

    # chmod og+x mpiconf.sh

    Se tudo der certo o MPICH-@ estará instalado e funcionando.

    Configurando as variáveis de usuários e ambientes
    1. Criar um arquivo chamado .rhost em cada micro do cluster (permite a comunicação de comandos via rsh sem senha), como escrito abaixo (comandos de vi no Apêndice A).

    # vi .rhost

    Código:
    #hosts com acesso por rsh
    micro1.dominio
    micro2.dominio
    micro3.dominio
    #end
    O arquivo pode ser copiado a partir do micro1 para os outros micros com o comando security copy (scp):

    # scp .rhost usuario@micro2.dominio:~/


    2. Criar um arquivo chamado .mpd.conf, que será utilizado para alocar a senha usada pelo mpd:

    # vi .mpd.conf


    Este arquivo deve conter uma única linha:
    Código:
    secretword=senha
    Onde senha é a senha utilizada pelo mpd e deve ser diferente da senha do usuário do sistema.

    Alterar as permissões do arquivo .mpd.conf em todos os micros, é obrigatório para a utilização do mpiboot e evita que outros usuários possam acessar sua senha mpd.

    # chmod 600 .mpd.conf


    3. Criar o arquivo mpd.hosts em todas as máquinas do cluster.

    Este arquivo informa ao mpi quais máquinas serão utilizadas com o mpi.

    # vi mpd.hosts

    Código:
    #hosts usados no mpi
    micro1
    micro2
    micro2
    Copiar este arquivo para as outras máquinas com o comando scp:

    $ scp mpd.hosts usuario@micro2.dominio:~/

    4. Para iniciar a comunicação, a partir do servidor executar o comando:

    $ mpdboot -r rsh -n numerodehosts

    Onde numerodehosts é o número de hosts que foram alocados em mpd.hosts.

    5. Testar a comunicação entre os micros com os comandos:

    # rsh micro2 date
    # mpdtrace -l


    Que deve retornar algo como:

    micro1.dominio_xxxxx (número de ip)
    micro2.dominio_xxxxx (número de ip)

    Onde xxxxx é a porta de comunicação entre os micros. Se o resultado estiver correto os micros estão configurados corretamente, se o resultado não estiver semelhante ao acima, deve rever os arquivos mpd.hosts e .rhosts.

    6. Testar a comunicação entre os micros calculando pi em paralelo com o comando:

    # mpiexec -n 4 /usr/local/mpich2-1.0.3/exemples/cpi

    O resultado deve ser algo parecido com:

    Process 0 of 4 is on micro1.dominio
    Process 1 of 4 is on micro2.dominio
    Process 2 of 4 is on micro3.dominio
    Process 3 of 4 is on micro1.dominio
    pi is approximately 3.1415926544231239, error is
    0.0000000008333307
    wall clock time = 0.002839

    Podemos executar o MPI de qualquer diretório utilizando o comando:

    # mpiexec -machinefile n-proces -n 6 -path /home/USERNAME/mpi_exec/: cpi


    Considerações finais

    Se todos os passos anteriores estiverem corretos, acredito que os usuários do novo cluster terão bastante recurso computacional para utilizarem. Vale lembrar que a responsabilidade de um usuário de cluster deve ser comparável com a do próprio administrador, portanto, muito cuidado com as suas senhas, se elas caírem em mãos erradas um usuário mal intencionado pode utilizar todo seu recurso computacional para uso indevido.

    SEMPRE UTILIZE SENHAS COM MAIS DE 8 DÍGITOS E COM CARACTERES ALFANUMÉRICO (LETRAS E NÚMEROS). EX: W5-*D+Jeh@.

    QUANTO MAIS COMPLICADA FOR A SUA SENHA, MAIS SEGURO SERÁ O CLUSTER, E VOCÊ EVITA QUE OS PROCESSADORES SEJAM UTILIZADOS POR PESSOAS MAL INTENCIONADAS, COMO HACKERS E ENVIO DE SPAM.

    Apêndice A - Comandos básicos de vi
    Sintaxe para executar o vi é a seguinte:

    $ vi nome_do_arquivo


    Uma vez carregado o vi, veja abaixo uma lista dos principais comandos:

    OBS: Para passar para o modo comando pressione ESC.

    Comandos básicos de inserção de texto:

    * i Insere texto antes do cursor
    * a Insere texto depois do cursor
    * r Insere texto no início da linha onde se encontra o cursor
    * A Insere texto no final da linha onde se encontra o cursor
    * o Adiciona linha abaixo da linha atual
    * O Adiciona linha acima da linha atual
    * Ctrl + h Apaga o ultimo caracter

    Comandos básicos de movimentação:

    * Ctrl+f Move o cursor para a próxima tela
    * Ctrl+b Move o cursor para a tela anterior
    * H Move o cursor para a primeira linha da tela
    * M Move o cursor para o meio da tela
    * L Move o cursor para a ultima linha da tela
    * h Move o cursor um caracter a esquerda
    * j Move o cursor para a próxima linha
    * k Move o cursor para linha anterior
    * l Move o cursor um caracter a direita
    * w Move o cursor para o inicio da próxima palavra (Ignora a pontuação)
    * W Move o cursor para o inicio da próxima palavra (Não ignora a pontuação)
    * b Move o cursor para o inicio da palavra anterior (Ignora a pontuação)
    * B Move o cursor para o inicio da palavra anterior (Não ignora a pontuação
    * 0 Move o cursor para o inicio da linha atual
    * ^ Move o cursor para o primeiro caracter não branco da linha atual
    * $ Move o cursor para o final da linha atual
    * nG Move o cursor para a linha n
    * G Move o cursor para a ultima linha do arquivo

    Comandos básicos para localizar texto:

    * /palavra Busca pela palavra ou caracter em todo o texto
    * ?palavra Move o cursor para a ocorrência anterior da palavra
    * n Repete o ultimo comando / ou ?
    * N Repete o ultimo comando / ou ? , na direção reversa
    * Ctrl+g Mostra o nome do arquivo, o numero da linha corrente e o total de linhas

    Comandos básicos para alteração de texto:

    * x Deleta o caracter que esta sob o cursor
    * dw Deleta a palavra, da posição atual do cursor ate o final
    * dd Deleta a linha atual
    * D Deleta a linha a partir da posição atual do cursor ate o final
    * rx Substitui o caracter sob o cursor pelo especificado em x (é opcional indicar o caracter)
    * Rx Substitui a palavra sob o cursor pela palavra indicada em x
    * u Desfaz a ultima modificação
    * U Desfaz todas as modificações feitas na linha atual
    * J Une a linha corrente a próxima
    * s:/palavra1/palavra2
    * Substitui a primeira ocorrência de "palavra1" por "palavra2"

    Comandos para salvar o texto:

    * :wq Salva o arquivo e sai do editor
    * :w nome_do_arquivo Salva o arquivo corrente com o nome especificado
    * :w! nome_do_arquivo Salva o arquivo corrente no arquivo especificado
    * :q Sai do editor
    * :q!
    * Sai do editor sem salvar as alterações realizadas


    Fonte:
    VivaoLinux
    Postado Por: RedDeviL

X
Working...
X