Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso MPI - Módulo 6 Grupos e Comunicadores Topologias Virtuais Carla Osthoff Grupo • Um grupo é um conjunto ordenado de processos. • Cada processo em um grupo é associado a um único rank. • Um processo sempre está associado a um objeto comunicador Apostila pg.31Apostila pg.31 Grupo • Os valores dos rank começam em zero vão até N-1, onde N é o número de processos no grupo. • No padrão MPI um grupo é representado no sistema de memória como um objeto. Comunicador • Engloba um grupo de processos que podem se comunicar. • Todas as mensagens MPI devem especificar um comunicador. • O comunicador é um extra "tag" que deve ser incluído às chamadas MPI Comunicador • Assim como grupos, os comunicadores só são acessíveis ao programador através de um "handler". • MPI_COMM_WORLD é um handler Comunicador • Do ponto de vista do programador, um comunicador e um grupo são iguais. • As rotinas do grupo rotinas são utilizadas principalmente para especificar quais processos devem ser usados para construir um comunicador – Permitem organizar processos baseadas em funcionalidades em grupos de processo. – Implementam operações de comunicações coletivas través de um subconjunto de processos relacionado. Apostila pg.32Apostila pg.32 –Fornecem a base para a implementação de aplicações com topologias virtuais definidas pelo usuário –Possibilitam a implementação de comunicações seguras. Considerações e Restrições sobre Programação com MPI • Os Grupos e os comunicadores são dinâmicos; eles podem ser criados e destruídos durante a execução do programa. Apostila pg.32Apostila pg.32 • Os Processos podem pertencer a mais de um grupo e de um comunicador. • Eles possuirão um único rank dentro de cada grupo e comunicador. • O padrão MPI fornece mais de 40 rotinas relacionadas aos grupos, comunicadores, e topologias virtuais. Programa com rotina de Grupo e de Comunicador- Teste10.c • Cria dois grupos de processos distintos para troca de comunicação coletiva. Necessita da criação de novos grupos de comunicação. Apostila pg.33Apostila pg.33 Topologias Virtuais • Em termos de MPI, uma topologia virtual descreve a ordenação de um mapeamento de processos MPI em uma forma geométrica. • Os principais tipos de topologias MPI são o cartesiano (malha) e o gráfico. Apostila pg.34Apostila pg.34 Topologias Virtuais • As topologias MPI são virtuais - pode não haver relação entre a estrutura física da máquina, e os processos paralelos da topologia. Topologias Virtuais • Topologias virtuais são construídas sobre os comunicadores e os grupos MPI. • Devem ser "programadas" pelo desenvolvedor da aplicação Por que utilizá-las? • As Topologias Virtuais podem ser úteis para aplicações com padrões de comunicação específicos. Exemplo: • Uma topologia cartesiana é conveniente para uma aplicação que possui um padrão de comunicação de envio de dados para 4 vizinhos em uma malha. • Algumas arquiteturas de hardware podem necessitar comunicações entre nós muito distantes. • Um execução particular pode otimizar o processo de mapeamento baseada em características físicas de uma determinada máquina paralela. Programa com Topologia Virtual • O mapeamento dos processos em uma topologia virtual MPI é dependente da implementação MPI, e pode ser totalmente ignorado Topologia Virtual Apostila pg.34Apostila pg.34 Programa com Topologia Virtual Teste11.c • Exemplo de rotina que gera uma topologia Cartesiana de 4 x 4 para 16 processadores onde cada processo envia o número do seu rank para os seus vizinhos. Apostila pg.35Apostila pg.35 Curso MPI - Módulo 6 Grupo Grupo Comunicador Comunicador Comunicador Slide Number 7 Slide Number 8 Slide Number 9 Considerações e Restrições sobre Programação com MPI Slide Number 11 Programa com rotina de Grupo e de Comunicador- Teste10.c Topologias Virtuais Topologias Virtuais Topologias Virtuais Por que utilizá-las? Exemplo: Slide Number 18 Slide Number 19 Programa com Topologia Virtual Topologia Virtual Programa com Topologia Virtual�Teste11.c
Compartilhar