Difference: DocuMentacoes (7 vs. 8)

Revision 826 Feb 2012 - Main.RodrigoZucoloto

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
____________________________________________________________________________________________________________________________________________________________________________________________
Line: 83 to 83
 Rodrigo.
Added:
>
>
____________________________________________________________________________________________________________________________________________________

5) MPICH2 - Debian e RedHat?

Copiado de http://www.flaviotorres.com.br/fnt/artigos/mpich2.php

Por: Flavio Torres - ftorres[@]ymail.com
Publicado em: 03/08/2007


Instalando MPICH2 em Sistemas Linux.

MPICH é uma das implementações existentes para o padrão MPI (Message-Passing Interface) de bibliotecas de passagem de mensagem.

Além da biblioteca MPI, MPICH contém um ambiente de programaçao que inclui um conjunto de bibliotecas para análise de performance (profiling) de programas MPI e uma interface gráfica para todas as ferramentas.

Em outras palavras, com o MPI é possível você ter um único processo sendo executado em múltiplos servidores, um Cluster.

Este é um segundo artigo, para aqueles que não possuem um ubuntu dapper, ou brigaram muito com o python 2.3 smile

Arquivos necessários:

* gcc
* cpp
* libc6
* lib6c-dev
* g77
* g++
* Python 2.2 ou superior

Instalando os arquivos necessários:

apt-get install gcc cpp libc6 libc6-dev g77 g++

Python, em 99% das instalações já vem na versão 2.4 ou 2.5.

Obtendo o tarball do mpich2, site do projeto: http://www-unix.mcs.anl.gov/mpi/mpich/

wget http://www-unix.mcs.anl.gov/mpi/mpich/downloads/mpich2-1.0.5p4.tar.gz

Descompacte o arquivo dentro de seu home:

tar -xvzf mpich2-1.0.5p4.tar.gz ; cd mpich2-1.0.5p4

Compile e instale:

./configure -prefix=/home/you/mpich2-install |& tee configure.log
make |& tee make.log
make install |& tee install.log

Se não utilizar um prefix, o default será /usr/local/bin.

Adicione o local de instalação em seu $PATH;

Para csh e tcsh:

setenv PATH /home/you/mpich2-install/bin:$PATH

Para Bash e sh:

export PATH=/home/you/mpich2-install/bin:$PATH

Checando se está tudo em ordem:

which mpd
which mpiexec
which mpirun

O which deve te retornar o local de instalação dos executáveis.

Após instalar em todos os hosts, devemos configurar os nomes para a resolução, edite o seu /etc/hosts e configure todas as máquinas:

vi /etc/hosts
192.168.0.1 host1
192.168.0.5 host2
192.168.0.2 host3

Agora, devemos configurar o ssh para conexão sem senha, entre todos os hosts.

Gerando a chave, lembre-se de fazer em todos os servidores:

ssh-keygen -t dsa -b 1024
* Não digite a senha quando for questionado, tecle <enter>

Agora devemos configurar o ssh para autenticar sem senha:

Passo1) Copiando a chave do host1 para o host2 e host3:

host1$ scp .ssh/id_dsa.pub usuario@host2:
host1$ scp .ssh/id_dsa.pub usuario@host3:

Passo2) Configurando a chave para autenticação no host2:

host2$ cat id_dsa.pub >> .ssh/authorized_keys
host2$ chown 600 .ssh/authorized_keys

Passo3) Configurando a chave para autenticação no host3:

host3$ cat id_dsa.pub >> .ssh/authorized_keys
host3$ chown 600 .ssh/authorized_keys

Agora, repita os 3 Passos para as 3 máquinas, no final de tudo, você deve realizar ssh sem senha da máquina:

host1 > host2 e host3
host2 > host1 e host3
host3 > host2 e host1

Configurando os arquivos do mpi que são:

* mpd.conf
* mpd.hosts

O arquivo mpd.conf contém a informação de autenticação do mpi entre as máquinas, por isto,a senha deve ser a MESMA em todos os hosts.

Se você está utilizando o root para realizar os testes, este arquivo deve estar dentro de /etc, caso esteja utilizando algum usuário comum, este arquivo deve estar dentro de $HOME.

Adicionando a senha do mpd.conf e copiando para as outras máquinas:

host1$ echo "MPD_SECRETWORD=mr45-j9z" > .mpd.conf
host1$ chmod 600 .mpd.conf
host1$ scp .mpd.conf host2:
host1$ scp .mpd.conf host3:

O arquivo mpd.hosts contém as máquinas que fazem parte do cluster para ESTE usuário;

Adicionando as máquinas do cluster no arquivo .mpd.hosts, e replicando para as outras máquinas:

host1$ echo "host1" > .mpd.hosts
host1$ echo "host2" >> .mpd.hosts
host1$ echo "host3" >> .mpd.hosts
host1$ scp .mpd.hosts host2:
host1$ scp .mpd.hosts host3:

Pronto, a parte chata já passou smile

Agora vamos iniciar o daemon do mpi, com o mpdboot:

host1$ mpdboot -n 3 -f .mpd.hosts
host1$ mpdtrace
host1
host2
host3

Perfeito, estão todos respondendo!!

Agora é só brincar com um teste simples:

host1$ mpiexec -n 5 mpich2-1.0.5p4/examples/cpi
Process 0 of 5 is on host1
Process 2 of 5 is on host2
Process 1 of 5 is on host3
Process 4 of 5 is on host3
Process 3 of 5 is on host1
pi is approximately 3.1415926544231230, Error is 0.0000000008333298

wall clock time = 0.925560

 ____________________________________________________________________________________________________________________________________________________________________________________________


-- RodrigoZucoloto - 02 Nov 2011 \ No newline at end of file
 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback