CCO - 129 - 7 - Introdução à Computação de Alto Desempenho
Quantidade de créditos: 8
Total de horas de aulas teóricas: 60
Total de horas de aulas de exercícios, seminários ou estudos dirigidos : 60
Objetivo
Apresentar uma introdução à computação de alto desempenho, com foco na escalabilidade de algoritmos paralelos e sua implementação eficiente em computadores modernos. A escalabilidade em foco se refere com dois aspectos, que são manter a eficiência quando o tamanho do problema aumenta e manter a eficiência quando a quantidade de recursos (medida pelo número de núcleos de processamento) aumenta. O curso cobre aspectos básicos do projeto de algoritmos e da sua implementação utilizando os principais estilos de programação paralela: paralelismo de dados, e paralelismo de tarefas em memória compartilhada e em memória distribuída.
Ementa
- Arquiteturas paralelas, programação paralela, desempenho e escalabilidade
- Princípios de projeto de algoritmos paralelos. Decomposição de problemas.
- Programação com memória compartilhada. Processos, comunicação e sincronização
- Programming with distributed memory. Message Passing (MPI). Other models
- Programming GPUs
- Understanding computing in Clusters, Supercomputers, Clouds
Bibliografia Principal
- Grama, A.; Gupta, A.; Karypis, G.; Kumar, V. Introduction to Parallel Computing. Adisson-Wesley, 2003.
- Foster, I. Designing and Building Parallel Programs. MIT Press 1999. Disponível em: www-unix.mcs.anl.gov/dbpp.
Bibliografia Complementar
- William Gropp, Ewing Lusk, Anthony Skjellum. Using MPI, third edition: Portable Parallel Programming with the Message-Passing Interface, 3 rd edition. The MIT Press, 2014. ISBN-10: 0262527391.
- Timothy G. Mattson, Yun He, Alice E. Koniges. The OpenMP Common Core: Making OpenMP Simple Again, 2019. The MIT Press. ISBN-10: 0262538865.
- Ruud Van Der Pas, Eric Stotzer, Christian Terboven. Using OpenMP-The Next Step: Affinity, Accelerators, Tasking, and SIMD. The MIT Press, 2017. ISBN-10 : 0262534789.
- Andrews, G. Foundations of Multithreaded, Parallel, and Distributed Programming, Addison Wesley, 2000. MPDbook.
- Chapman, B.; Jost, G. and van der Pas, R. Using OpenMP: Portable Shared Memory Parallel Programming. MIT Press, 2007.
- David B. Kirk, Wen-mei W. Hwu. Programming Massively Parallel Processors: A Hands-on Approach, 3rd Edition. Morgan Kaufmann, 2016. ISBN-10: 0128119861.