Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 ![]() * 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 ![]() 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 | |||||||
____________________________________________________________________________________________________________________________________________________________________________________________
|