Você está na página 1de 21

MPI

Message Passing Interface

Introduo
O MPI (Message Passing Interface) um padro para comunicao de dados em computao paralela. Na prtica, uma biblioteca de Message Passing desenvolvida para ambientes de memria distribuda, mquinas paralelas massivas, NOWs (Network of Workstations) e redes heterogneas.

Introduo
No padro MPI, uma aplicao constituda por um ou mais processos que se comunicam, acionando-se funes para o envio e recebimento de mensagens entre os processos. Inicialmente, na maioria das implementaes, um conjunto fixo de processos criado. Porm, esses processos podem executar diferentes programas

Objetivo
O objetivo de MPI prover um amplo padro para escrever programas com passagem de mensagens de forma prtica, porttil, eficiente e flexvel. MPI no um IEEE ou um padro ISO, mas chega a ser um padro industrial para o desenvolvimento de programas com troca de mensagens

Motivao

Portabilidade: MPI permite que voc coloque

sua aplicao em uma plataforma diferente, mas que suporte o padro MPI sem necessitar alterar o cdigo de forma que processos em diferentes linguagens podem rodar em plataformas diferentes. Funcionalidade: Mais de 300 rotinas so definidas em MPI. Disponibilidade: H uma enorme variedade de implementaes disponveis.

Funcionamento
Problemas so divididos em pequenas partes e essas so distribudas para que outros computadores (ns do cluster) faam o trabalho (processamento) em cima dessas partes. Os resultados obtidos por cadas uma das mquinas so enviados a um receptor que colhe todos os dados, agrupa-os e d o resultado esperado.

Cdigo Exemplo
/*Fonte: exemploMPI.c */ #include <stdio.h> #include <mpi.h> int size, rank; int main(int argc, char *argv[]) { MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&size); MPI_Comm_rank(MPI_COMM_WORLD,&rank); printf("Oi. Eu sou o processo %d de %d\n", rank, size); MPI_Finalize(); }

Cdigo Exemplo
Para executar o exemplo em quatro ns (i.e. quatro cpias), basta executar o comando:
mpirun -np 4 exemploMPI

Tipos de Operaes ponto-a-ponto


Envolvem troca de mensagens passando entre duas, e apenas duas, tarefas diferentes de MPI. Uma tarefa est realizando uma operao de envio e a outra tarefa est realizando uma operao de recebimento de correspondncia

Existem diferentes tipos de rotinas de enviar e receber utilizadas para fins diferentes. Por exemplo:
o o o o o o Envio Sncrono Envio com bloqueio / recepo com bloqueio Envio sem bloqueio / recepo sem bloqueio Envio com Buffer Envio/Recepo combinados Envio Pronto

A implementao MPI (no o padro MPI) decide o que acontece aos dados nestes tipos de casos. Normalmente, uma rea de buffer do sistema so reservados para armazenar dados em trnsito

Com Bloqueio
o Um envio com bloqueio pode ser sncrono, que significa que no est ocorrendo a confirmao ao receber a tarefa para confirmar um envio seguro. o Um envio com bloqueio pode ser assncrono, se um buffer de sistema usado para armazenar os dados para entrega futura para o recebedor (destino). o A recepo com bloqueio apenas retorna depois que os dados chegaram e esto prontos para uso pelo programa.

Sem Bloqueio
o Nas rotinas de envio e recepo sem bloqueio no se esperam eventos de comunicao para completar o Operaes sem bloqueio simplesmente "pedem" biblioteca MPI para executar a operao quando capaz. o No seguro modificar o buffer do aplicativo at que voc saiba a razo da operao sem bloqueio solicitado se foi efetivamente realizado pela biblioteca. o Comunicaes sem bloqueio so utilizadas principalmente para sobrepor computao com comunicao e explorar possveis ganhos de desempenho.

Ordem
o MPI garante que as mensagens no ultrapassaro umas s outras. o Se um remetente envia duas mensagens em sucesso para o mesmo destino, e ambos batem com o mesmo recebedor, a operao de recebimento receber Mensagem 1 antes da Mensagem 2. o Se um receptor de mensagens receber duas, em sucesso, e ambos esto procurando a mesma mensagem, o Receptor 1 vai receber a mensagem antes do Receptor 2. o Regras de ordem no se aplicam se houver vrios segmentos que participam nas operaes de comunicao.

Justia
MPI no garante justia - isto , o programador deve evitar "operao fome".

Exemplo: Tarefa 0 envia uma mensagem para a tarefa 2. No entanto, a tarefa 1 envia uma mensagem concorrente que corresponde tarefa 2 de receber. Apenas um dos envios ser concludo

Conexes MPI

Conexes MPI
Cada equipamento de programao possui uma interface MPI.. A interface MPI da CPU habilita todos os mdulos inteligentes em um PLC a serem acessados, por ex. os mdulos de funo de uma estao.. Cada n MPI necessita ter seu prprio endereo MPI (entre 0 e 126; os valores padres so PG=0, OP/TD=1, e CPUs=2).

Facilidades de Conexo
A principal vantagem que diversos equipamentos podem estabelecer um link de comunicao com a CPU ao mesmo tempo. Significa que um equipamento de programao, um equipamento IHM e um link com outro PLC podem estar em operao ao mesmo tempo.

Caractersticas
Meio fsico RS 485; Taxa de transmisso de 19.2 Kbps ou 187.5 Kbps ou 1.5 Mbps; Distancias de at 50 m (entre 2 ns vizinhos) e com 2 repetidores,100 m e 23.8 km com fibra tica e acoplamento estrela; Componentes Profibus (cabos, conectores).

Conectores
O conector com soquete PG o conector padro usado para conectar ns MPI um ao outro, e ao mesmo tempo tambm habilita um PG a ser conectado ao mesmo tempo. O conector sem soquete para PG usado onde as opes para conexo com o PG no so necessrias.

Obrigado!

Você também pode gostar