O MPI (Message Passing Interface) é constituído por um padrão de troca de mensagens com sintaxe definida, mas preservando características exclusivas de cada arquitetura, inclusive para arquiteturas de memória compartilhada.
O principal objetivo do MPI é otimizar a comunicação e aumentar o desempenho computacional das máquinas, não possuindo dessa forma gerenciamento dinâmico de processos e processadores.
Embora exista a restrição citada acima, os programas escritos em MPI tendem a serem mais eficientes pelo fato de não haver overhead na carga de processos em tempo de execução.
Funcionamento do MPICH
O MPI funciona da seguinte forma: cada máquina (node) recebe uma copia do código fonte e um nome. Cada node começa a executar o programa a partir da primeira linha de comando utilizando as seguintes diretrizes:
Executar todas as linhas de comando não nomeadas;
Executar as linhas de comando nomeadas com o mesmo nome do node;
Não executar as linhas de comando com o nome de outro node.
Para que o programa siga essas diretrizes, o que é feito é a inclusão de vários comandos if, com a seguinte estrutura:
"Se eu sou o nodo tal, faço isso... Se não faço aquilo...". (FONTE: Pitanga, 2004)
A grande dificuldade que esse sistema acarreta é a necessidade de manter os diversos processos de troca de informações em sincronismo, para que uma máquina não perca muito tempo aguardando que as outras máquinas enviem informações.
[1] Comentário enviado por liviocf em 25/01/2008 - 11:57h
Muito bom esse artigo! Queria saber se vocês tentaram utilizar ferramentas que automatizam a instalação e o gerenciamento do cluster como o OSCAR? E outra: por que usar o Fedora 4 (já bem desatualizado).
Pergunto isso pois tivemos muitos problemas para instalar e configurar nosso cluster do Lab. de Bioinformática da UFAM manualmente! Terminamos usando Fedora 5 e o OSCAR para resolver os problemas!
Mas concordo com vc, ainda é difícil encontrarmos informações completas sobre o assunto!
E uma das grandes aplicações de cluster no momento é em pesquisas de bioinformática, pois existe uma demanda cada vez maior para isso!!
Parabéns pelo artigo e gostaria de trocar mais informações sobre esse assunto!!
[3] Comentário enviado por removido em 25/01/2008 - 14:45h
amigo jedi_soft, sei que não é da minha conta, mas o texto acima me pareceu muito bem explicado, já que não se trata de um cluster montado por uma grande equipe de pesquisadores... Porém nosso amigo joseluiz fez oque muitos de nós não teriam "coragem" e/ou "computadores" de fazer. Isso foi uma feliz êxperiencia, parabéns colega joseluiz, tá certo os outros amigos não querião um resultado com números gráficos e tabelas né?!
[4] Comentário enviado por nigthwing em 25/01/2008 - 15:55h
Uma dúvida:
O programa de exeplo utiliza a mpi. è necessário que todo programa que se utilize do cluster seja feito com a mpi?
Programas de processamento já criados sem a MPI se beneficiam do cluster?
[5] Comentário enviado por infoslack em 25/01/2008 - 16:48h
vanguarda, amigo so falei pq parece que quando ele foi publicar o artigo aki no vol, esqueceu de botar essa parte.. com certeza ele ia falar dos resultados dos teste perguntei isso pq tem o titulo:
Resultados e conclusões
foi so curiosidade mesmo, mas que o artigo ta ótimo com certeza ta!!
[6] Comentário enviado por joseluiz em 25/01/2008 - 17:01h
Caro nigthwing, é necessário a instalação dos pacotes mpi em todas os que fazem parte do mesmo.
No caso dos programas ja criados sem o mpi seria necessário vc estar fazendo algumas alterações no fonte, para que eles utilizem o mpi, que com certeza ganhara muito em sua performance
[7] Comentário enviado por joseluiz em 25/01/2008 - 17:06h
jedi_soft, desculpe-me pela falha do mesmo.. Talvez tenha me expressado mal no tópico...
Mas os resultados foram o seguinte.... Em uma aplicação de calculo para achar o intervalo de Pi com intervalo de 999999999. sendo executado em cluster foi encontrado o resultado em clock time = 0.000238 com uma taxa de erro de 00000000000987.00 ... E sendo executado em apenas 1 estação chegamos no resultado clock time = 0.089638 com uma taxa de erro de 00000000456987.00
[8] Comentário enviado por removido em 02/02/2008 - 12:59h
Olá joseluiz gostaria de parabeniza-lo pelo artigo, tenho uma duvida, ao executar o bWatch ele so apresenta Master com Num Users 2 isso é normal ele não deveria apresentar o Master e o Slave1?
[9] Comentário enviado por removido em 02/02/2008 - 16:55h
..Muito beleza seu artigo!
So lembrando ao amigo fonsecaf7 que para que apareça o nome
dos Slaves vc tem que por os nomes dos nós no arquivo .bWatchrc.tcl nas 1ª linhas do aquivo.Assim
set bWatchrcVersion 1.1.0a
set listOfHosts {Master nó01 nó02 nó02 etc..}
[11] Comentário enviado por sergin1rn em 19/08/2009 - 00:01h
Amigos que se interessaram pelo cluster.
Os resultados que o inforslack queria, acredito que seria o seguinte:
cluster@master:~$ mpirun -np 4 cpi
Process 2 on master
Process 0 on master
Process 1 on slave
Process 3 on slave
pi is approximately 3.1416009869231245, Error is 0.0000083333333314
wall clock time = 0.000278
cluster@master:~$
Obtive este resultado seguindo o tutorial deste site http://www.lca.ufms.br/ClusterDebian/
Mas seu artigo está muito bom mesmo o seu artigo!
Pena não ter visto ele anteriormente.
[12] Comentário enviado por leandrojapa em 19/04/2010 - 15:07h
Boa tarde joseluiz..seguinte...estou precisando configurar um cluster na facudade e estou com problemas..
ja testei em casa com maquinas virtuais e esta tudo Ok.Mas quando vou executar um programa e vai mandar para os outros nós ele da um erro de execução : error mpirun :cannot run cpi in no1 :no such file directory ..
ja tentei varias maneiras, acho q o erro esta na resolução de nomes mas nao tenho certeza pois ja refiz tudo varias vezes e sempre continua esse erro..alguem pode me ajudar por favor ??
estou precisando com urgencia..fico mto grato..