Transmitir aos alunos conceitos sobre computação de alto desempenho, considerando seus aspectos de hardware e software, com vistas ao desenvolvimento de aplicações paralelas.
Introdução à computação paralela; Hardware paralelo para computação de alto desempenho; Software para computação de alto desempenho; Desenvolvimento de aplicações paralelas; Avaliação de desempenho de sistemas computacionais de alto desempenho; Teste de programas paralelos.
Introdução à computação paralela: contexto e conceitos básicos. Hardware paralelo para computação de alto desempenho: arquiteturas paralelas, organizações de hardware que impactam o desempenho (processadores, memórias e redes de interconexão). Projeto de software para computação de alto desempenho: modelos de programação para aplicações paralelas, ferramentas para o desenvolvimento de aplicações paralelas (compiladores, bibliotecas e padrões), escalonamento de processos. Desenvolvimento de aplicações paralelas: estudos de caso. Avaliação de desempenho de sistemas computacionais de alto desempenho: métricas e metodologias. Teste de programas paralelos: conceitos, técnicas e ferramentas para o teste de programas paralelos.
Livro Texto RAUBER, T.; RÜNGER, G. Parallel programming: for multicore and cluster systems. Springer, 2010. ISBN-10: 364204817X ou ISBN-13: 978-3642048173. PACHECO, P.S. An introduction to parallel programming. Morgan Kaufmann. Elsevier Science, 2011. ISBN: 978-0-12-374260-5 Bibliografia Complementar GRAMA,A.; KUMAR, U.; GUPTA,A.; KARYPIS, G. Introduction to Parallel Computing, 2nd Edition, 2003, ISBN: 0201648652. QUINN, M.J. Parallel Programming in C with MPI and OpenMP, McGraw-Hill,Published 2003, ISBN: 0072822562. QUINN, M.J. Parallel Programming in C with MPI and OpenMP, McGraw-Hill,Published 2003, ISBN 0072822562. FOSTER, I. Designing and Building Parallel Programs, Addison-Wesley Publishing Company, 1994. STALLINGS, W. Arquitetura e Organização de Computadores: projeto para o desempenho, 5ª ed., Prentice-Hall, Inc., São Paulo, 2002.