Pular para o conteúdo

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.
Gilberto Pereira dos Anjos Lima gilbertoalima
Hits: 41.394 Categoria: Linux Subcategoria: Software
  • Indicar
  • Impressora
  • Denunciar

Parte 2: 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.

   1. Introdução
   2. Execução OpenMPI
   3. Analisando os resultados

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

Compilador GNU Prolog

Atualize rapidamente os PC's da sua LAN com Debian

Instalando o Gentoo GNU/Linux

Como criar uma distribuição GNU/Linux com o SUSE Studio

SparkleShare - Uma alternativa livre do Dropbox

#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

Entre na sua conta para comentar.