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: 39.018 ]

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 [email protected]:~/

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 [email protected]:~/

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

Fazendo RSH sem senha

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

Leitura recomendada

OpenLdap no Debian Squeeze

Instalando Nginx e PHP no Ubuntu

Pós-instalação do Sabayon LXDE

A pós-instalação do Arch Linux

Guia Pós-Instalação do Slackware - edição 2015

  
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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts