MPI – Como usar o MPI em seus aplicativos com esses tutoriais gratuitos

Divulgação: Seu suporte ajuda a manter o site funcionando! Ganhamos uma taxa de indicação por alguns dos serviços que recomendamos nesta página.


O MPI, ou Message Passing Interface, é um sistema de passagem de mensagens padronizado que foi desenvolvido no início dos anos 90 por uma ampla coalizão de engenheiros e acadêmicos de ciências da computação. Ele fornece um protocolo padrão para vários programas ou sistemas de computador interagirem uns com os outros, passando mensagens para frente e para trás, com base nos conceitos inerentes à Programação Orientada a Objetos (OOP).

MPI é o padrão dominante para a passagem de mensagens em um ambiente de computação paralelo. Para entender o MPI, é útil entender:

  • passagem de mensagem em geral
  • computação paralela

Passagem de mensagem

A passagem de mensagens é uma maneira de um programa invocar um comportamento ou executar um programa. Difere do método mais convencional de chamar um programa, a passagem de mensagens é baseada no modelo de objeto, que separa a necessidade funcional geral da implementação específica. O programa que precisa da funcionalidade chama um objeto e esse objeto executa o programa.

O principal benefício dessa técnica está relacionado ao conceito de encapsulamento OOP. A lógica de determinar qual implementação específica usar é deixada para o objeto, e não para o programa que chama, encapsulando os vários aspectos díspares do recurso em um único objeto.

Por exemplo: Um sistema de computador pode ter um objeto Gerenciador de impressão e várias impressoras individuais. Cada um dos programas que pode querer usar uma impressora não precisa ter sua própria implementação de cada impressora, juntamente com uma lógica complexa que determina qual impressora usar em qual situação. Qualquer programa que precise imprimir algo pode simplesmente enviar uma mensagem de impressão ao Gerenciador de Impressão, que recebe a mensagem e envia uma mensagem para a impressora específica..

Os computadores modernos usam essa forma de mensagem entre sistemas que passa para (quase) todos os aspectos da computação. Alguns exemplos de como isso afeta sua experiência diária de computação:

  • você vê quase a mesma interface do usuário toda vez que abre ou salva o arquivo, independentemente do aplicativo do qual está acessando o arquivo – isso ocorre porque todos os aplicativos diferentes estão passando mensagens de acesso ao mesmo gerenciador de arquivos
  • Quando você adiciona uma nova peça de hardware (um scanner, um mouse etc.), todo aplicativo que pode usá-lo tem acesso a ele imediatamente – você não’Não é necessário adicionar drivers para o hardware a cada aplicativo individual que possa usá-lo. Cada programa pode simplesmente passar mensagens para o controlador independente

Estes são exemplos de alto nível de passagem de mensagens. O MPI trabalha em um nível inferior, permitindo a passagem de mensagens entre diversos sistemas em um ambiente de computação paralelo.

Computação Paralela

A computação paralela é um paradigma de computação em que as tarefas (cálculos, processos etc.) são divididas em tarefas menores que podem ser realizadas em paralelo (ao mesmo tempo) e não em série (uma após a outra).

Geralmente, um núcleo de processamento de computador pode fazer apenas uma coisa de cada vez, um cálculo. Literalmente, ele pode mover apenas um bit de dados por vez. As CPUs contemporâneas operam tão rapidamente que esse método de computação de um bit por vez pode atingir um nível relativamente alto de desempenho, mas ainda está sendo executado em todos os pequenos cálculos em série – um após o outro. E há um limite para a rapidez com que isso pode ir – um limite prático baseado nos dias de hoje’tecnologia e um limite teórico absoluto baseado nas leis da física.

A fim de aumentar a velocidade de um sistema de computador, o processamento paralelo e a computação paralela foram inventados. Isso divide tarefas computadas em série e permite que elas sejam concluídas em paralelo – ao mesmo tempo – por processadores separados.

MPI – Passagem de Mensagens em Computação Paralela

Para que a computação paralela funcione, os vários computadores precisam se comunicar – para passar mensagens de um lado para o outro. O MPI – Message Passing Interface – foi criado para facilitar essa comunicação.

MPI é um protocolo independente de idioma que fornece uma API (Application Programming Interface) para processadores e outro hardware (real ou virtual) que pode ser acessado por outros sistemas. O MPI precisa ser implementado pelo fornecedor do hardware, e qualquer hardware que tenha uma implementação MPI incorporada pode ser acessado por sistemas conectados através do protocolo MPI.

O MPI fornece dois modos de comunicação:

  • ponto a ponto – um sistema que passa mensagens diretamente para outro
  • coletivo ou broadcast – um sistema que passa mensagens para um grupo

Recursos MPI on-line

Tutoriais MPI

Estes tutoriais introdutórios ajudarão você a aprender a usar o MPI para computação paralela.

  • Tutorial MPI de Wes Kendall – Esta é uma introdução muito completa ao MPI, um dos melhores disponíveis on-line.
  • Tutorial sobre MPI: The Message Passing Interface – Outro recurso muito completo, de William Gropp, da Divisão de Matemática e Ciências da Computação do Laboratório Nacional de Argonne.
    • William Grop também preparou esta apresentação em PDF no MPI, que cobre basicamente o mesmo material.
  • Uma introdução à MPI (Message Passing Interface) usando C – tutorial MPI específico do idioma.
  • Tutorial MPI de Blaise Barny – do Laboratório Nacional Lawrence Livermore

Implementações

MPI é um padrão, não uma tecnologia específica. Ele conta com implementações de vários fornecedores. Estas são algumas das implementações MPI usadas com mais frequência (há muito mais).

  • MPICH
  • MPI aberto
  • Microsoft MPI
  • OpenMP

Comunidade e Discussão

Uma das melhores maneiras de começar a usar o MPI e resolver problemas depois que você’em funcionamento, é conversar com especialistas e outros programadores do MPI.

  • Fórum do grupo de notícias MPI no Google Groups – grupo de notícias Usenet dedicado a discussões sobre o MPI
  • Listas de discussão do MPI Forum – Várias listas de discussão diferentes do MPI Forum oficial
  • Open MPI Mailing List – A lista de discussão para a implementação do Open MPI.
  • Reuniões do Fórum MPI – Informações sobre quando o Fórum MPI se reúne.
  • Fórum aberto do MP
  • MPI no StackOverflow – Perguntas e respostas sobre MPI.

Vídeos

O MPI é um tópico frequente de palestras e palestras sobre desenvolvimento profissional; portanto, há muitos vídeos explorando vários aspectos do MPI.

  • Introdução à programação paralela – MPI (Message Passing Interface)
  • Introdução à programação MPI
  • Computação de alto desempenho – Introdução ao MPI
  • O que é MPI

  • Canal MPI aberto no YouTube – Muitos vídeos ótimos relacionados ao MPI aqui.

Referência

Algumas páginas de referência principais relacionadas ao MPI para marcar e retornar novamente.

  • MPI: Um padrão de interface de passagem de mensagens – Este é o Relatório Técnico original de 1994 do Fórum de Interface de Passagem de Mensagens.
  • Documentos MPI – O padrão MPI atual, bem como todas as versões anteriores do documento de padrões.
  • Open MPI Documentation – Parte desse material é específico para a implementação do Open MPI, mas a maioria é geral para o padrão MPI.

Livros sobre MPI

Como o MPI é um pouco avançado, a maioria das informações realmente detalhadas é mais fácil de encontrar nos livros impressos do que nos tutoriais on-line. Aqui estão alguns dos melhores tutoriais e livros de referência no MPI.

  • Iniciando o MPI (Uma Introdução em C) – Por Wes Kendall, que também escreveu nosso tutorial # 1 recomendado sobre o MPI.
  • Programação Paralela com MPI – Outro bom texto introdutório.
  • Using MPI – 2nd Edition: Programação Paralela Portátil com a Interface de Transferência de Mensagens (Computação Científica e de Engenharia) – Também um pouco introdutória, mas com ênfase no uso do MPI nas análises de Ciências e Matemática.
  • Programação Paralela em C com MPI e OpenMP – Um tutorial de programação para uma linguagem específica e implementação de MPI
  • MPI: a referência completa – uma referência essencial da mesa MPI para programadores paralelos sérios.

Perguntas frequentes

O que é MPI?

MPI é uma interface de transmissão de mensagens. É um protocolo de comunicação que permite que os sistemas de computadores conversem entre si em um ambiente de computação paralela.

Quem usa MPI?

O MPI é usado por quase qualquer pessoa que cria aplicativos que tiram proveito de um sistema de computação em cluster ou paralelo.

Quem gerencia o padrão MPI?

O padrão MPI é publicado pelo Message Passing Interface Forum, um grupo aberto e em constante evolução de engenheiros e acadêmicos de ciência da computação.

Preciso aprender MPI?

Isso depende de que tipo de trabalho de desenvolvimento você faz e quais são seus objetivos.

Se você está escrevendo principalmente aplicativos da Web em linguagens de script de alto nível, como Ruby, Python ou PHP (e principalmente deseja continuar fazendo isso), o MPI não é um padrão importante a ser aprendido..

Se você deseja se envolver mais no desenvolvimento de sistemas fundamentais, especialmente em um ambiente de computação em cluster ou paralelo (como computação em nuvem, supercomputador ou big data), o MPI é uma coisa importante a saber.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map