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

  1. Grama, A.; Gupta, A.; Karypis, G.; Kumar, V. Introduction to Parallel Computing. Adisson-Wesley, 2003.
  2. Foster, I. Designing and Building Parallel Programs. MIT Press 1999. Disponível em: www-unix.mcs.anl.gov/dbpp.

Bibliografia Complementar

  1. 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.
  2. Timothy G. Mattson, Yun He, Alice E. Koniges. The OpenMP Common Core: Making OpenMP Simple Again, 2019. The MIT Press. ISBN-10: 0262538865.
  3. 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.
  4. Andrews, G. Foundations of Multithreaded, Parallel, and Distributed Programming, Addison Wesley, 2000. MPDbook.
  5. Chapman, B.; Jost, G. and van der Pas, R. Using OpenMP: Portable Shared Memory Parallel Programming. MIT Press, 2007.
  6. David B. Kirk, Wen-mei W. Hwu. Programming Massively Parallel Processors: A Hands-on Approach, 3rd Edition. Morgan Kaufmann, 2016. ISBN-10: 0128119861.