Área de concentração: 55134 - Ciências de Computação e Matemática Computacional
Criação: 14/06/2025
Nº de créditos: 12
Carga horária:
Teórica Por semana |
Prática Por semana |
Estudos Por semana |
Duração | Total |
3 | 1 | 8 | 15 Semanas | 180 Horas |
Docentes responsáveis:
Fabrício Simeoni de Sousa
Leandro Franco de Souza
Objetivos:
Apresentar ferramentas modernas de programação paralela aplicadas à simulação numérica de EDPs; Capacitar o aluno a projetar, implementar e otimizar códigos paralelos eficientes; Discutir estratégias práticas de paralelização em ambientes de HPC; Introduzir bibliotecas e frameworks amplamente utilizados na comunidade científica.
Justificativa:
Ferramentas de programação paralela e computação de alto desempenho são essenciais em aplicações de larga escala, especialmente as que envolvem aplicações em dinâmica de fluidos computacional.
Conteúdo:
1. Introdução à Computação de Alto Desempenho (HPC); Arquiteturas paralelas: memória compartilhada vs. memória distribuída; Modelos de paralelismo: dados, tarefas, híbridos; Medidas de desempenho: speedup, eficiência, escalabilidade;
2. Programação paralela com OpenMP; Paralelismo em memória compartilhada; Diretivas, paralelismo de laços, sincronização;
3. Programação paralela com MPI; Conceitos de comunicação entre processos; Troca de mensagens ponto a ponto e coletivas; Distribuição de dados e decomposição de domínio;
4. Estruturas de dados e paralelismo; Armazenamento e paralelização de matrizes esparsas; Ordenação de grafos e balanceamento de carga;
5. Solução de sistemas lineares esparsos com bibliotecas paralelas (PETSc, Trilinos); Métodos iterativos paralelos (GMRES, CG, Multigrid);
6. Métodos de decomposição de domínio com e sem sobreposição; Métodos de Schwarz; introdução aos métodos multiescala.
7. Estudos de caso e projetos aplicados; Implementação de códigos paralelos para modelos de difusão, advecção e escoamento incompressível; Análise de desempenho e escalabilidade.
Forma de avaliação:
Listas de exercícios, trabalhos práticos e projeto de final de curso.
Observação:
Nenhuma.
Bibliografia:
Fundamentais:
1. Gropp, W.; Lusk, E.; Skjellum, A. Using MPI: Portable Parallel Programming with the Message-Passing Interface. MIT Press, 1999;
2. Balay, S. et al. PETSc User Manual, 2025;
3. Saad, Y. Iterative Methods for Sparse Linear Systems, SIAM, 2003;
4. Smith, B.; Bjørstad, P.; Gropp, W. Domain Decomposition: Parallel Multilevel Methods for Elliptic PDEs, Cambridge University Press, 2004;
5. Dongarra, J. The Sourcebook of Parallel Computing, Elsevier Science, 2003
© 2025 Instituto de Ciências Matemáticas e de Computação