Open MPI
Open Source High Performance Computing
Open Source High Performance Computing
Histórico: MPI -> Open MPI
Início: Supercomputing no ano de 1992 em empresas como IBM, Cray e Intel
1995: MPI-1.1 / 1997: MPI-1.2 / 1998: MPI-2
Início: Supercomputing no ano de 1992 em empresas como IBM, Cray e Intel
1995: MPI-1.1 / 1997: MPI-1.2 / 1998: MPI-2
Principais Implementações:
MPICH - Argonne National Laboratory (www.mcs.anl.gov/mpi/mpich/)
MPICH - Argonne National Laboratory (www.mcs.anl.gov/mpi/mpich/)
Conceito
· MPI é a sigla para Message Passing Interface, é um padrão para comunicação de dados em computação paralela. O MPI oferece diversas abstrações que facilitam e padronizam o desenvolvimento de aplicações paralelas. Por exemplo, você pode programar para vários processadores, nós de um cluster, supercomputadores ou Internet utilizando a mesma infraestrutura transparentemente. MPI é uma biblioteca (conjunto de funções) padrão para troca de mensagens (Conjunto de bits), não é uma linguagem ou compilador.
Programação paralela
· É o modelo em que o mesmo programa é carregado e roda simultaneamente em vários computadores. O programa é feito especialmente com o propósito de rodar em vários computadores e utiliza funções de comunicação entre os computadores (MPI). Dado um algoritmo, paralelizá-lo é reescrevê-lo de forma que o algoritmo gere o mesmo resultado no final, porém rodando em vários computadores simultaneamente. A vantagem é um menor tempo de execução.
O que é Open MPI?
O projeto Open MPI é uma implementação open source do MPI. Open MPI (Open Source High Performance Computing) é a combinação de vários projetos MPI já existente, com o objetivo de disponibilizar uma única implementação MPI integrando funcionalidades destes projetos.
Para que serve?
· O Open MPI é focada no suporte a programação distribuída em vários nós de um cluster, oferecendo uma solução robusta para este tipo de abordagem, sendo um projeto open source baseado no MPI-2 que é suportado por um consórcio de pesquisadores, indústria e universidades.
Arquitetura
· A arquitetura de Open MPI consiste em três camadas de abstração que, combinadas, provêm todas as suas funcionalidades. A camada mais superior é a OMPI (Open MPI layer), que provê a interface MPI para as aplicações. Logo abaixo, encontra-se a camada ORTE (Open Run-Time Environment), que provê um ambiente de execução paralelo independente das capacidades do sistema. Por fim, a camada OPAL (Open Portable Access Layer) abstrai as peculiaridades específicas do sistema a fim de aumentar a portabilidade das camadas superiores. Abaixo da camada OPAL, está o sistema operacional e os outros serviços que executam no nó local. Tradicionalmente suportado por compiladores de C, C++ e Fortran
Como Funciona?
A principal forma que ela é usada é a de iniciar um programa a partir do nó mestre e especificar quantos processos você deseja usar, então inicia para cada um desses processos se este é na mesma máquina ou em várias máquinas. Os processos se comunicam usando a biblioteca MPI. Uma das máquinas será o nó mestre, esta é a máquina da qual você irá controlar o cluster e executar seus programas. Os outros nós serão conhecidos como escravos.
Razões para usar MPI
Padronização: MPI é um "padrão por consenso"
Funcionalidade: mais de 300 rotinas
Disponibilidade: virtualmente todas as plataformas (Sistema Operacionais)
Portabilidade: não necessita alterar o código para cada plataforma
Escalabilidade
Performance
Quem usa Open MPI?
Usado em laboratórios de universidades, para estudos e pesquisas variadas.
Usada na maioria dos 500 maiores supercomputadores do mundo, incluindo o Roadrunner (EUA) e o K Computer (JP)
Consórcio das empresas participantes do Projeto K – Computer
Referências
l www.open-mpi.org
OK Equipe#4!
ResponderExcluirVocês colocaram o material da apresentação e incluíram as respostas das perguntas que eu fiz.
Obrigado!
PS: o post anterior, que continha um anexo, foi excluído, ok? ;-)
Pessoal, pesquisei mais um pouco sobre Open MPI e encontrei um universo de informações para acrescentar no post:
ResponderExcluirMuitas implementações do MPI, têm sido desenvolvidas para suportar
plataformas de computação de diferentes propósitos, muitas das quais de
código-aberto. Algumas implementações populares de caráter portável são: MPICH
[30], OpenMPI [23], e LAM-MPI [10]. Também existem versões de especificações do
MPI em linguagens não suportadas oficialmente, tais como: Boost.MPI [21] (C++),
MPI.NET [25] (C#) e MPJ [4] (Java) .
O MPI fórum suporta atualmente duas versões oficiais, para Fortran e C: MPI-1
e MPI-2. MPI-2 é uma extensão do MPI-1 com muitas inovações propostas pela
comunidade de usuários do MPI.Centenas de subrotinas são suportadas, com diferentes propósitos, tais como:
I comunicação ponto-a-ponto (MPI-1);
I comunicação coletiva (MPI-1);
I escopos de comunicação (MPI-1);
I topologias de processos (MPI-1);
I tipos de dados (MPI-1);
I comunicação unilateral (MPI-2);
I criação diânmica de processos (MPI-2);
I entrada e saída paralela em arquivos (MPI-2).I comunicação ponto-a-ponto (MPI-1);
I comunicação coletiva (MPI-1);
I escopos de comunicação (MPI-1);
I topologias de processos (MPI-1);
I tipos de dados (MPI-1);
I comunicação unilateral (MPI-2);
I criação diânmica de processos (MPI-2);
I entrada e saída paralela em arquivos (MPI-2).
Legal!
ResponderExcluirMais informação é sempre bom!
:-)