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.673 ]
Por: Gilberto Pereira dos Anjos Lima em 19/10/2011
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.
[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:
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 :
[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.
[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?