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.

[ Hits: 41.389 ]

Por: Fernando Simões Junior em 30/01/2008


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

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

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

#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

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Exportando diretório para os outros micros do cluster
   3. Configurando as variáveis de usuários e ambientes
   4. Considerações finais
   5. Apêndice A - Comandos básicos de vi
Outros artigos deste autor

Como transformar seu DVD/RW em um disco de backup como se fosse um HD convencional

Fazendo RSH sem senha

Leitura recomendada

Como configurar a sua placa de TV PixelView PlayTV Pro no Linux

Instalação do CentOS Atomic para Gerenciamento de Containers Docker

Criando uma Infraestrutura para uma micro Empresa

UNR (Ubuntu Netbook Remix) 9.04 no Acer Aspire One (AA1)

openSUSE 12.1 - Instalando Oracle Java

  
Comentários
[1] Comentário enviado por joseluiz em 30/01/2008 - 21:22h

Qual aplicação você usou para testar seu cluster?
tambem tenho um artigo de cluster...
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7661

[2] Comentário enviado por fernandosj em 31/01/2008 - 09:32h

Oi Jose Luiz
Eu utilizo um programa de simulação de plasma espacial via partículas, basicamente eu resolvo um conjunto de equações eletromagnéticas para cada partícula do plasma e os campos gerados pelo movimento das próprias partículas.
Em um PC dual 4.2Ghz eu tinha que esperar de 20 a 30 dias para ver os resultados... agora no cluster com 16 processadores eu tenho que esperar só uns 5 a 8 dias.
Dependendo do aplicativo o grande gargalo é a rede, mas no meu caso não tenho este tipo de problema.
Vi seu artigo, muito bom... parabéms.
Fernando.

[3] Comentário enviado por y2h4ck em 01/02/2008 - 21:52h

Bom so para deixar registrado, usando rhost nao importa se a senha tem 8 20 ou 100 caracteres, afinao com rhost o trafego é feito em cleartext :)

[]s

[4] Comentário enviado por fernandosj em 02/02/2008 - 12:54h

Concordo com você y2h4ck, mas as senhas que me refiro são as do usuário e não as de rsh, que configuramos para não utilizar senha. Depois que ele estiver logado no cluster ele tem livre acesso aos processadores.
Abraços.

[5] Comentário enviado por wriesco em 22/08/2008 - 16:38h

Qual mpi eu posso usar quando os computadores forem heterogeneos?
Obrigado...

[6] Comentário enviado por fabiobc em 03/10/2008 - 14:23h

Exportar as variáveis de ambiente do mpich2 para os usuarios, como eu faço isso e onde estão as variaveis? e para onde eu copio?

[7] Comentário enviado por fernandosj em 03/10/2008 - 15:04h

Oi Fabiobc, você pode colocar as variáveis de ambiente no profile (.bash_profile, .bashrc dependendo da distribuição) de cada usuário.
Você tem que adicionar:

#!/bin/bash
# PATH ENVIRONMENT TO MPICH2 #
PATH=$PATH:/local-de-instalação-do-mpi/bin
export PATH
# END ENVIRONMENT TO MPICH2 #

Abraços.

[8] Comentário enviado por fabiobc em 20/10/2008 - 10:14h

local-de-instalação-do-mpi como eu faço para saber onde ele instalou? estou utilizando o fedora 9

[9] Comentário enviado por fabiobc em 20/10/2008 - 10:15h

done
make[1]: Entrando no diretório `/root/mpich2-1.0.7/src/pm/mpd'
copying python files/links into /usr/local/bin
make[1]: Saindo do diretório `/root/mpich2-1.0.7/src/pm/mpd'
make[1]: Entrando no diretório `/root/mpich2-1.0.7/src/mpe2'
Installing MPE2 include files to /usr/local/include
Installing MPE2 libraries to /usr/local/lib
Installing MPE2 utility programs to /usr/local/bin
Installing MPE2 configuration files to /usr/local/etc
Installing MPE2 system utility programs to /usr/local/sbin
Installing MPE2 man to /usr/local/man
Installing MPE2 html to /usr/local/www
Installing SLOG2SDK's lib
Installing SLOG2SDK's doc
Installing SLOG2SDK's share
Creating SLOG2SDK's bin
Installed SLOG2SDK in /usr/local
/usr/local/sbin/mpeuninstall may be used to remove the installation
Installed MPE2 in /usr/local
/usr/local/sbin/mpeuninstall may be used to remove the installation
esta menssagem que deu no final da instalação

[10] Comentário enviado por fernandosj em 20/10/2008 - 11:25h

Oi Fábio, os locais onde os arquivos do MPI estão são:
include files to /usr/local/include
libraries to /usr/local/lib
utility programs to /usr/local/bin
configuration files to /usr/local/etc

Os binários ficam em /usr/local/bin

Abraços!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts