Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

OpenMPI - Instalação de uma aplicação paralela
Linux user
Gilberto A Lima
19/10/2011
Este artigo tem o objetivo de descrever os passos necessários para implementar uma aplicação paralela (OpenMPI) e verificar
como o é o processamento distribuído entre os hosts.
Por: Gilberto A Lima
[ Hits: 4530 ]
Conceito: 10.0   3 voto(s)3 voto(s)3 voto(s)3 voto(s)3 voto(s) + quero dar nota ao artigo

Introdução

"O MPI (Message Passing Interface) são conjuntos de processos que possuem acesso à memória local. Essas informações são enviadas para a memória local do processo remoto."

Conceito:

Processo: "Quando o programa é executado, ele é 'quebrado em partes', cada parte deste programa é chamado de PROCESSO. Estes processos podem ser executados em UMA ÚNICA máquina ou em VÁRIAS."

Rank: "Cada processo tem uma identificação única atribuída pelo sistema quando o processo é inicializado. Essa identificação é contínua representada por um número inteiro, começando de zero até N-1, onde N é o número de processos. Cada processo tem um rank, é ele é utilizado para enviar e receber mensagens."

Funcionamento:

"Os processos são divididos em pequenas partes e essas partes são distribuídas para que outras máquinas do (Nó/Cluster) façam o cálculo em cimas dessas partes. Os resultados obtidos das outras máquinas são enviados a uma receptora que fez a chamada."

Fontes (modificadas):

Instalação e configuração de dependências

Os testes foram feitos em máquinas virtuais, utilizei o VmWare Player para executá-las.

O ideal para saber como realmente trabalha uma aplicação distribuída, é criar ao menos 2 máquinas. Eu, particularmente, utilizei a seguinte configuração para ambos os hosts.
  • SO = Linux Debian 5.0.4 Lenny
  • Hard Disk-2 GB
  • Memória RAM = 128 MB

Após ter as 2 máquinas virtuais, na mesma rede. Testar com o comando:

$ ping ip_da_outra_maq

Seguir com os próximos passos.

Obs.:
  • Os comandos podem variar de distribuição para distribuição.
  • Os comandos abaixo foram feitos em um Debian 5.0.4 GNU/Linux.
  • Sempre tenha atenção com que máquina é utilizado o comando `debianompi1 = Máquina 1, debianopmi2 = Máquina 2`.
  • O MESMO PROCEDIMENTO TEM QUE SER FEITO EM TODAS AS MÁQUINAS!!!

1. Criar os mesmos usuários para todos os hosts (como root):

# adduser ompi2
# adduser ompi1


2. Fazer o download do OpenMPI disponível no próprio site:

# wget http://www.open-mpi.org/software/ompi/v1.4/downloads/openmpi-1.4.3.tar.gz

3. Desempacotando o pacote:

# tar -xvzf openmpi-1.4.3.tar.gz

4. É necessário instalar outras dependências do Open MPI, assim como o ssh (responsável pela comunicação remota com os demais hosts), o gcc e o g++ (responsáveis por compilar os programas em Fortran para linguagem C):

# apt-get install openmpi-bin openmpi-doc libopenmpi-dev gcc g++openssh-server sysstat

Obs.: Sugestão para sources.list pode ser encontrado nesta dica: Repositórios oficiais Debian

5. Configuração SSH

Para o programa distribuir seu processamento, é necessário que a comunicação entre os demais hosts seja de forma automática, ou seja, não pode exigir senha. Para isto foi gerado um par de chaves com uma frase secreta "em branco" e este copiado para os demais hosts. Quando for feito uma conexão ssh, uma senha "vazia" será aceita e haverá comunicação.

$ ssh-keygen -t rsa
$ ssh-keygen -t rsa


6. Após ter gerado o par de chaves, abaixo estaremos instalando a chave pública no outro host, permitindo que ela seja usada para autenticação:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub ompi1@IP.DA.MAQ2
$ ssh-copy-id -i ~/.ssh/id_rsa.pub ompi2@IP.DA.MAQ1

# /etc/init.d/ssh restart


7. Configuração OpenMPI

Para os comandos OMPI serem reconhecidos pelo SO, é necessário adicionar o caminho dos binários dos comandos do OpenMPI à variável de ambiente $PATH.

$ echo 'export PATH=$PATH:/opt/openmpi/bin' >> /home/ompi1/.bashrc
$ echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/openmpi/bin

* Fazer logout e logon

Verificar se o comando é reconhecido:

$ mpirun

Caso contrário verificar novamente a variável de ambiente path:

$ echo $PATH

8. Para distribuir o processamento da execução de um programa, é necessário criar um arquivo que chamei de "my_target" com o endereço IP dos hosts que irá receber este processamento.

$ echo IP.DA.MAQ1 > my_target;echo IP.DA.MAQ2 >> my_target

Próxima página >>




Páginas do artigo
   1. Introdução
   2. Execução OpenMPI
   3. Analisando os resultados

Outros artigos deste autor
Nenhum artigo encontrado.

Leitura recomendada

Comentários
[1] Comentário enviado por dennis.leandro em 20/10/2011 - 10:47h:

Muito bom artigo!
Assunto muito interessante, e de facil entendimento!
Parabeens!

[2] Comentário enviado por douglas.giorgio em 30/10/2011 - 18:00h:

e dpois, pra que eu posso usar isso?? eu sempre fiz isso mas nunca fiz algo alem disso está no artigo

quero diser, como eu executo um programa?? gimp, interface grafica, sql e outras coisas??

[3] Comentário enviado por Gilberto A Lima em 01/11/2011 - 00:11h:

$DouglasFim


MPI é o conceito sobre computação paralela.

O OMPI é um dos softwares mais comuns e free que interage com este conceito, o artigo visa apenas um conhecimento simples para mostrar como é funcionamento.

Ele pode rodar programas em C, interface gráfica etc, entretanto isso seria complexo, mas existe diversos de outros programas além de um 'hello world' disponiveis para download no próprio site:

¹(http://www.open-mpi.org/hg/hgwebdir.cgi/ompi-svn-mirror/summary)

Para rodar os programas citados acima sobre o paralelismo, será necessário a utilização de outros softwares, do GIMP sinceramente eu desconheço, mas do SQL poderia utilizar o BizTalk Server :

²(http://www.microsoft.com/biztalk/en/us/overview.aspx)

att,



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.