1 / 14

Padrão MPI – Message Passing Interface

Padrão MPI – Message Passing Interface. Marcos da Costa Barros – RA 820650 Nov, 2012 MO_601. Outline. Passagem de Mensagem Histórico Padrão MPI Uso do Padrão MPI Estrutura Programa MPI Group , Communicator e Rank Comunicação Ponto a Ponto Comunicação Coletiva

Télécharger la présentation

Padrão MPI – Message Passing Interface

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Padrão MPI – Message Passing Interface Marcos da Costa Barros – RA 820650 Nov, 2012 MO_601

  2. Outline • Passagem de Mensagem • Histórico Padrão MPI • Uso do Padrão MPI • Estrutura Programa MPI • Group, Communicator e Rank • Comunicação Ponto a Ponto • Comunicação Coletiva • Tipos de Dados Derivados • Topologias Virtuais • MPI-2 / MPI-3

  3. Multi- Programação Memória Compartilhada Passagem De Mensagem Dados Paralelos MPI Compilador ou Biblioteca Sistema Operacional Passagem de Mensagem • Modelo de programação por passagem de mensagem • Necessário suporte de uma biblioteca • Necessidade de padronização da interface • Necessidade de executar em diferentes plataformas de hardware

  4. Passagem de Mensagem Modelo de programação por passagem de mensagem Dados privados Sincronização explícita Nomeação dos processos Controle de coerência e compartilhamento de dados controlados pelo programador Match Receb Y, P, t Ender.X Envia X, Q, t Ender Y Memoria Local PROCESSO P Memoria Local PROCESSO Q

  5. Histórico Padrão MPI • 1980-1990 Desenvolvimento de inúmeros sistemas de computação paralela – necessidade de padronização • 1992 Congresso em Virginia-USA - Centro de Pesquisa em Computação Paralela de Williamsburg – requisitos essenciais para passagem de mensagem • Criação do MPI Fórum • 1994 Publicação da primeira revisão do padrão MPI • 1996 Publicação da revisão do padrão MPI-2 • 2012 Publicação do ultima revisão padrão MPI-3 • Não é um padrão ISO ou IEEE

  6. Uso Padrão MPI • Define interface de rotinas de biblioteca que suportam comunicação por passagem de mensagem • Implementações variam de plataforma para plataforma • Pode ser utilizado em plataformas de hardware de memória distribuída, memória compartilhada ou sistemas híbridos • Desenvolvido para linguagens C e Fortran na versão MPI-1 e C++ e Fortran90 na versão MPI-2 • Bibliotecas disponíveis – Linux : MVAPICH MPI e OPEN MPI – IBM BlueGene – IBM MPI

  7. Estrutura Programa MPI Inclusão arquivo MPI Declarações, protótipos, etc Início do Programa . . . Código Serial Início código paralelo Alocação de Processos Inicialização do ambiente MPI . . . Criação Grupos de Processos Execução e Troca de Mensagens Comunicação Ponto a Ponto Comunicação Coletiva . . . Fim código paralelo Finalização do ambiente MPI Finalização de Processos . . . Código Serial Fim do Programa

  8. Groups, Communicator e Rank MPI_COMM_WORLD • Group – conjunto de processos • Communicator – objeto associado ao grupo • Rank – número único de identificação de cada processo 2 8 6 0 4 3 7 1 5 9 0 8 1 9 2 3 6 4 5 7 GROUP_1 GROUP_2 8 0 1 9 3 4 2 6 7 5 COMM_2 COMM_1

  9. PROCESSADOR 1 PROCESSADOR 2 PROCESS A PROCESS B Aplicaçao ENVIA Aplicaçao RECEBE REDE dado dado buffer sistema buffer sistema dado Comunicação Ponto a Ponto • Conceitos • Buffering • Synchronous x Asynchronous • Blocking x Non-Blocking • Tipos de comunicação • Synchronous Send • Blocking send / Blocking receive • Non-blocking send / Non blockingreceive • Buffered send • Combined send/receive • Ready send

  10. Comunicação Ponto a Ponto • Argumentos • buffer • data count • data type • destination • source • tag • communicator • status • request

  11. Comunicação Coletiva • Synchronization • barriers • Data movement • broadcast • scatter • gather • Collective computation • reduction scatter broadcast 1 3 5 7 16 reduction soma gather

  12. Tipos de Dados Derivados • Conceitos • contiguous: permite redefinir o tipo de dados de uma região contínua do espaço de memória para um novo tipo de dados MPI. • -vector: permite redefinir o tipo de dados de blocos de dados de mesmo tamanho e espaçados pela mesma distância • -indexed: permite redefinir o tipo de dados de blocos de dados de tamanho diferentes e espaçados por diferentes distâncias. • -struct: é a estrutura mais geral de tipos de dados que permite a definição de blocos constituídos de diferentes tipos de dados e espaçados por diferentes distâncias

  13. Topologias Virtuais • associação linear • organizados em padrões topológicos, como por exemplo, grades de duas ou três dimensões ou mais genericamente, grafos • o mapeamento e ordenação de processos num formato geométrico, porém, sem necessariamente ter uma correlação com a topologia de conexão física dos processadores paralelos • Cartesiano e Grafo

  14. Padrão MPI-2 / MPI-3 • MPI-2 • processos dinâmicos • comunicação unilateral • operações de comunicação coletiva estendidas • interface externa • suporte a novas linguagens • I/O paralelo • MPI-3 • suporte para comunicações coletivas non-blocking • funções adicionais para comunicações unidirecionais • suporte para Fortran 2008

More Related