Fornecer uma visão geral do tópico extenso e amplo da computação paralela, abrangendo os seus princípios básicos, as diversas formas de paralelismo, as tecnologias e os dispositivos disponíveis atualmente para sua implementação nos diversos ambientes.
O que é computação paralela e como ela é usada; Conceitos e terminologia associados à computação paralela; Arquiteturas paralelas e modelos de programação; Projeto e execução de programas paralelos; Exemplos de como paralelizar programas seriais.
60 horas
Para o público interno, no próprio Siga, para o externo, no link abaixo:
- Para oferta de 04/05/2020 a 26/06/2020 (encerradas: 23112.008335/2020-66)
- Para oferta de 09/11/2020 a 16/01/2021 (cancelada)
- Para oferta de 03/05/2021 a 14/08/2021 (cancelada)
- Para oferta de 07/11/2022 a 17/02/2023 (encerradas: 23112.029725/2022-31)
- Para oferta de 08/05/2023 e 09/09/2023 (encerradas: 23112.004922/2023-29)
Horas | Tópico | Semana | Slides |
---|---|---|---|
2 | Introdução | 1a | [1] |
4 | Conceitos e terminologia | 2a | [2] |
4 | Arquiteturas paralelas | 3a | [3 FPGAs] [3 SIMD] |
2 | Arquiteturas paralelas | 4a | [4 GPUs] |
8 | Modelos e paradigmas | 5a-6a | [4 CUDA C/C++] [4 CUDA Python] |
8 | Modelos e paradigmas | 7a-8a | [5 OpenMP] |
4 | Modelos e paradigmas | 9a | [6 OpenCL] |
10 | Modelos e paradigmas | 10a-12a | [7 SYCL] |
4 | Modelos e paradigmas | 13a | [8 MPI] |
12 | Projetando programas paralelos | 14a-17a |
Ao final do curso os participantes deverão ser capazes de:
- Compreender os conceitos e a terminologia associados à programação paralela;
- Compreender e avaliar arquiteturas paralelas quanto ao seu desempenho;
- Aplicar os conhecimentos adquiridos na solução de problemas paralelos;
- Analisar e avaliar soluções paralelas, comparando implementações e recomendando melhorias.
- Vídeo-aulas expositivas com conceitos e exemplos;
- Leitura de textos para aprofundamento e discussão;
- Realização de exercícios para consolidação dos conhecimentos adquiridos.
- Os alunos deverão assistir às aulas, ler o material disponibilizado, participar nos fóruns de discussão, responder aos questionários e implementar os programas solicitados, incluindo um projeto final. Apresentação presencial de um projeto ao final do curso.
Ambiente virtual de aprendizado, Vídeo-aulas, textos e documentação das ferramentas usadas, ambientes de desenvolvimento C/C++ em qualquer sistema operacional.
- Introduction to Parallel Computing
- Intel(r) oneAPI Toolkits (Beta) [DevCloud]
- CUDA Toolkit Documentation v11.8.0
- Além desta referência principal, cada aula/slides/tutorial traz suas próprias referências.