Padrão MPI – Message Passing Interface

Slides:



Advertisements
Apresentações semelhantes
Paralelismo em Máquinas Multiprocessadas
Advertisements

SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Introdução aos Sistemas Distribuídos
OpenMP.
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
MPI – Comunicações Com. Colectiva esquecida Barrier não há troca de dados, apenas sincroniza os processos int MPI_Barrier( MPI_Comm, comm) T com = T lat.
MPI - Introdução Message-Passing Model Task: código + memória (uma ou várias tasks no mesmo processador) Mensagem: as tasks comunicação entre si trocando.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Processos no Unix e Linux
Arquitetura de Sistemas Operacionais
OpenMP MO801/MC972. Visão geral Biblioteca de mais alto nível para programação paralela Prevê memória compartilhada Requer suporte do compilador Exige.
Coerência de Memórias Cache e Modelos de Consistência de Memória
Message Passing Interface (MPI)
Sistemas Operacionais II
Técnicas de processamento paralelo
Interação Cliente Servidor
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
Rganização de Computadores Multiprocessadores Capítulo 9 – Patterson & Hennessy Organização de Computadores Multiprocessadores Capítulo 9 – Patterson &
Programação Concorrente
Sistemas Operacionais
Sincronização de Processos (6) - Troca de Mensagens -
Sincronização e Comunicação entre Processos
09/03/10 20:13 Claudio de Oliveira – 1/21.
Modelo OSI OSI é um modelo de referência para interligação de sistemas abertos (open systems interconection) Padrão ISO 7498, publicado em 1984 Sistemas.
NETBIOS Disciplina: Redes de Computadores
Middleware e Sistemas Distribuídos
ALMIR RIBEIRO CRISTIANO PEREIRA FABIO SALVADOR FERNANDA BONFIM JUAN CALEU RONALDO SANTOS
Prof. André Leon S. Gradvohl, Dr.
1 Tipos avançados (versão C/C++) Em C/C++ existe a possibilidade de criar novos tipos. Em C esta possibilidade só pode ser materializada com estruturas.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 27 (1) Programação com MPI Tópicos: Modelo de Programação Funções de Ambiente Funções Básicas.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 32 (1) Entrada/Saída em MPI Tópicos: Operações de E/S Sincronização de Processadores Referência:
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
Conhecendo os Sistemas Operacionais
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 35 (1) Comunicação Avançada em MPI Tópicos: Exemplo: Difusão de Dados em Anel Armazenamento.
Professor: Márcio Amador
Introdução aos Sistemas Operacionais
Sistemas Operacionais
Algoritmos - Propriedades Desejáveis (1)
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 26 (1) Troca de Mensagens Troca de Mensagens Tópicos: Características de Mensagens Implementação.
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Processos.
Sistemas Operacionais
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
SISTEMAS OPERACIONAIS I
MPI - Message Passing Interface Mestrado em Matemática Computacional 2003.
Troca de Mensagens Programação concorrente
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Modelando aspectos de Implementação
Integração de Ferramentas CASE
MPI – Message Passing Interface Algumas Funções. Funções básicas As 6 funções que permitem escrever muitos dos programas: MPI_Init -- inicia a computação.
Capítulo 4: Processos.
1 BSP no InteGrade II WorkShop do InteGrade c. 2 Objetivo O principal objetivo é permitir que aplicações BSP sejam executadas no InteGrade sem ou com.
A High Performance Java Middleware with a Real Application HUERT, Fabrice; CAROMEL, Denis; Bal, Henri E. Supercomputing 2004 Trabalho desenvolvido por:
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Multiparadigma das Comunicações em Java para Grid Computing Fernanda R. Ramos Luiz Felipe Marco Eiterer Profº Alcides Calsavara, Ph.D.
Flávia Rainone - 1 Computação Paralela com CORBA.
Algoritmos Paralelos.
Passagens de Mensagens Prof. Dr. Norian Marranghello
Sistemas Operacionais IV – Gerenciamento de E/S
Jorge Zavaleta PVM vs MPI. Introdução Objetivos do MPI Implementações e definições processos dinâmicos Contextos Operações não bloqueantes Portabilidade,heterogeneidade.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Anderson Braga de Avila 1.  Usar todos os recursos computacionais no sistema — CPUs, GPUs e outros processadores  Modelo de programação paralela eficiente.
Transcrição da apresentação:

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 Tipos de Dados Derivados Topologias Virtuais MPI-2 / MPI-3

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 Compilador ou Biblioteca Memória Compartilhada Passagem De Mensagem Dados Paralelos Multi- Programação Sistema Operacional MPI Artigo Capítulo 1 - INTRODUÇÃO

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 Ender.X PROCESSO P PROCESSO Q Ender Y Memoria Local Envia X, Q, t Receb Y, P, t Match Artigo Capítulo 1 - INTRODUÇÃO

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 Artigo Capítulo 2 - HISTÓRIA DO PADRÃO MPI

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 Artigo Capítulo 3 - USO PADRÃO MPI

Estrutura Programa MPI Início código paralelo Finalização do ambiente MPI Execução e Troca de Mensagens Inicialização do ambiente MPI Inclusão arquivo MPI Declarações, protótipos, etc Início do Programa . Código Serial Fim código paralelo Fim do Programa Alocação de Processos Criação Grupos de Processos Comunicação Ponto a Ponto Artigo Capítulo 4 - ESTRUTURA GERAL DE UM PROGRAM MPI Comunicação Coletiva Finalização de Processos

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 3 4 1 7 5 9 8 9 1 6 2 3 4 5 7 GROUP_1 GROUP_2 Artigo Capítulo 5 - GROUPS, COMMUNICATOR E RANK 8 1 9 3 2 4 6 7 5 COMM_1 COMM_2

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 blocking receive Buffered send Combined send/receive Ready send PROCESSADOR 1 PROCESS A Aplicaçao ENVIA buffer sistema dado PROCESSADOR 2 PROCESS B Aplicaçao RECEBE REDE Artigo Capítulo 6 - COMUNICAÇÃO PONTO A PONTO - Conceitos

Comunicação Ponto a Ponto Argumentos buffer data count data type destination source tag communicator status request Artigo Capítulo 6 - COMUNICAÇÃO PONTO A PONTO - Argumentos

Comunicação Coletiva Synchronization barriers Data movement broadcast scatter gather Collective computation reduction broadcast scatter 1 3 5 7 Artigo Capítulo 7 - COMUNICAÇÃO COLETIVA 16 gather reduction soma

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 Artigo Capítulo 8 - TIPOS DE DADOS DERIVADOS

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 Artigo Capítulo 9 - TOPOLOGIAS VIRTUAIS

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 Artigo Capítulo 10 e 11 - PADRÃO MPI-2 e PADRÃO MPI-3