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

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

Quebrando os mitos do software de código aberto

Windows CE/PocketPC com Linux, sim!

Instalação e utilização do Qemu no Fedora Core

Mono e C# (parte 2)

Editando PDF com Inkscape

  
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