Programação em Memória Distribuída com o MPI
A especificação MPI, troca explícita de mensagens, protocolos de
comunicação, tipos derivados e empacotamento de dados, comunicações
coletivas, comunicadores, topologias.
Programação em Memória Partilhada com Processos
Processos, segmentos de memória partilhada, mapeamento de ficheiros em
memória partilhada, spinlocks, semáforos.
Programação em Memória Partilhada com o Pthreads
Processos multithreaded com o Pthreads, mutexs, variáveis de condição,
chaves, implementações do Pthreads.
Programação em Memória Partilhada com o OpenMP
A especificação OpenMP, diretivas de compilação, construtores de
work-sharing, construtores de sincronização, funções básicas, funções
de locking, variáveis de ambiente, remoção de dependências nos dados.
Programação Híbrida com o MPI e o OpenMP
Estratégias de combinação do MPI com o OpenMP em clusters
multiprocessador/multicore. Executar o MPI com suporte para
multithreading.
Memórias Cache em Arquiteturas Multiprocessador e Multicore
A importância das caches em arquiteturas multiprocessador/multicore:
localidade espacial e temporal, sincronização com barreiras e com
exclusão mútua.
Métricas de Desempenho
Medidas de speedup, eficiência, redundância, utilização e qualidade
duma aplicação paralela. Lei de Amdahl. Lei de
Gustafson-Barsis. Métrica de Karp-Flatt. Métrica de isoeficiência.
Algoritmos Paralelos
Paralelização de algoritmos de ordenação, de algoritmos de procura, de
algoritmos baseados em métodos de Monte Carlo, e de algoritmos para
multiplicação de matrizes.
Parallel Programming in C with MPI and OPenMP
Michael J. Quinn. McGraw-Hill.
Advanced Linux Programming
M. Mitchell, J. Oldham and A. Samuel. New Riders.
Pthreads Programming
B. Nichols, D. Buttlar and J.P. Farrell. O'Reilly.
Parallel Programming in OpenMP
R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald and R. Menon. Morgan Kaufmann.
Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers
B. Wilkinson, M. Allen. Prentice Hall.
Writing Message Passing Parallel Programs with MPI
A Hands-On Introduction to OpenMP
Exercises to Support Learning OpenMP