Programação Paralela e Distribuída — Livros e Recursos Educacionais

“Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e, assim dobrando sucessivamente, até a sexagésima quarta e última casa do tabuleiro. Peço-vos, ó rei, de acordo com a vossa magnânima oferta, que autorizeis o pagamento em grãos de trigo, e assim como indiquei!” Malba Tahan, O Homem que Calculava.


Programação Paralela e Distribuída

Uma trajetória de aprendizagem em dois volumes

Esta coleção apresenta uma trajetória progressiva para o estudo da programação paralela e distribuída, desde os conceitos fundamentais e os principais modelos de programação até o desenvolvimento de aplicações para arquiteturas híbridas e heterogêneas.

O primeiro volume introduz os fundamentos da programação paralela, a avaliação de desempenho e os modelos MPI, OpenMP e OpenACC. O segundo aprofunda esses conhecimentos, abordando arquiteturas paralelas, tarefas, aceleradores, múltiplas GPUs, transferência de processamento e programação híbrida.

Os dois livros são acompanhados por programas em C, exercícios, estudos de caso, slides, notebooks de laboratório e ferramentas interativas. Esses recursos podem ser utilizados em conjunto com os livros ou selecionados individualmente por estudantes, professores e profissionais.

Programação Paralela e Distribuída com MPI, OpenMP e OpenACC

O primeiro volume constitui o ponto de entrada da coleção. Apresenta os conceitos fundamentais da programação paralela, as principais métricas de desempenho e três modelos amplamente utilizados na computação de alto desempenho: MPI, para sistemas de memória distribuída; OpenMP, para sistemas de memória compartilhada; e OpenACC, para aceleradores.
Indicado para: estudantes de graduação, profissionais que estão iniciando seus estudos em programação paralela e disciplinas introdutórias de computação de alto desempenho.
Principais temas: fundamentos da programação paralela, balanceamento de carga, avaliação de desempenho, MPI, OpenMP, OpenACC e ambientes de execução.



Programação Paralela para Arquiteturas Híbridas — Com OpenMP, OpenACC e MPI

O segundo volume amplia a trajetória iniciada no primeiro livro. Seu foco está na programação de arquiteturas paralelas modernas e heterogêneas, combinando processadores multicore, aceleradores e sistemas distribuídos. São abordados o modelo de tarefas do OpenMP, a transferência de processamento para aceleradores, recursos avançados do OpenACC, o uso de múltiplas GPUs e a construção de aplicações híbridas com MPI+OpenMP e MPI+OpenACC.
Indicado para: leitores que já conhecem os fundamentos da programação paralela ou que desejam estudar tarefas, aceleradores e modelos híbridos com maior profundidade.
Principais temas: arquiteturas paralelas, OpenMP Tasks, OpenMP Offloading, OpenACC avançado, múltiplas GPUs, MPI+OpenMP e MPI+OpenACC.

Aquisição

Para conhecer mais detalhes sobre os livros acima e adquiri-los no formato impresso ou e-book, acesse o site da editora Casa do Código.

Slides

Alguns slides de apoio para os professores estão disponíveis a seguir.

Repositórios

Ferramentas de Visualização

Colocamos disponíveis algumas ferramentas de visualização, disponíveis em português, espanhol e inglês, para auxiliar no entendimento do funcionamento da distribuição de dados e carga de trabalho entre processos/threads de uma aplicação MPI ou OpenMP.