OpenMPI - Instalação de uma aplicação paralela

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.

[ Hits: 40.028 ]

Por: Gilberto Pereira dos Anjos Lima em 19/10/2011


Execução OpenMPI



9. Os programas que vem por padrão no OpenMpi são em linguagem Fortran, para isto é necessário compilar para linguagem C.

Exemplo com o hello_c.c:

cd /opt/openmpi-1.4.3/examples
$ mpicc hello_c.c -o hello.c
$ mpirun hello.c

Hello, world, I am 0 of 1 4

* Dentro do diretório /opt/openmpi-1.4.3/examples há mais programas, experimente compilar e rodar outros.

10. Vamos utilizar o programa ring_c.c, que tem por objetivo criar uma quantidade x de processos "determinado pelo valor de parâmetro passado", processar e imprimir em tela qual é o seu número atribuído (value).

Obs.: Será necessário compilar e executar conforme exemplo anterior.

Na máquina 1.

O comando abaixo irá invocar algum programa (mpirun), passando o parâmetro (hostfile my_target), que a grosso modo seria "Distribuir os processamento entre as máquinas citadas neste arquivo", executando 100 instâncias ( -np 100 ) do arquivo ring.c:

time mpirun --hostfile my_target -np 100 ring.c

Serão impressos em tela os processos que foram executados pelo programa ring.c, no final irá aparecer o resposta do comando "TIME", quanto tempo a máquina demorou para executar essas 100 instâncias..

11. Dicas para notar a diferença:

Rode o programa apenas em uma máquina:

time mpirun -np 100 ring.c

Rode o mesmo programa de forma distribuída:

time mpirun --hostfile my_target -np 100 ring.c

O caso com 1 máquina irá terminar em menos tempo do que o caso com 2 máquinas, mas haverá uma diferença notável em consumo de hardware.

Página anterior     Próxima página

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

Minix - Instalação e configuração básica

Leitura recomendada

Scanner de segurança SKIPFISH do Google para sites

Transforme seu celular em controle remoto Bluetooth no Linux

Instalando MetraTrader5 no Linux

DNS BIND para integração em domínios AD (com Windows Active Directory ou Samba)

VPN PPTP - Instalação entre estações Windows, Dispositivos com Android e CentOS 5.x Server

  
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 removido 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 gilbertoalima 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,

[4] Comentário enviado por jeansg em 17/08/2012 - 03:37h

Muito bom o Artigo !

[5] Comentário enviado por cristian-redes em 28/11/2013 - 02:18h

Amigo, voce consegue a senha das maquinas virtuais suas? Gostaria de testar, mais estou tendo dificuldades de instalação..
Se puder conseguir agradeço.

[6] Comentário enviado por gilbertoalima em 29/11/2013 - 13:52h

Fala cristian, beleza ?

Users: ompi1, ompi2, root
Senha: ompi

Att

[7] Comentário enviado por cicerocarlos em 13/11/2014 - 01:29h

Prezado
Tenho um cluster com suse server para processamento compartilhado, entretanto, para análise que precisa de memória ram não ocorre compartilhamento de mémoria ram, sendo usanda somente a memória do nó de execução do programa (velvet). Existe como configurar para compartilhar memória?

Att,
Cícero

[8] Comentário enviado por gilbertoalima em 13/11/2014 - 11:38h

Cicero,
Se a aplicação suportar, sim.

Pra ter certeza teria que conhecer o que é este "velvet", como funciona, no que roda etc.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts