Computação Paralela 2020.1

Links importantes:

Objetivo

Em Computação Paralelas, os alunos aprendem a explorar o paralelismo inerente às arquiteturas modernas através da compreensão de como modelar algoritmos para execução com maior desempenho em programas paralelos. Ao final, além de maior velocidade na resolução de problemas computacionais, os alunos terão conhecimento das técnicas de engenharia de software para melhor organização e reutilização do código.

Metodologia

Essa cadeira apresenta os paradigmas da computação paralela, envolvendo aspectos de hardware e software, com ênfase no último. Portanto, a metodologia consiste em aproveitar o conhecimento anterior dos alunos em disciplinas que tratam da interface hardware-software e prepará-los para tirar o máximo de desempenho de arquiteturas paralelas. Temos então um aspecto prático acentuado, visto que a teoria já se encontra parcialmente coberta. Dada a necessidade de adaptação da disciplina para a modalidade remota, adotamos os seguintes métodos:

O horário dos encontros será definido com a turma.

Avaliação

Os alunos serão avaliados por atividades escritas. As atividades liberadas semanalmente, sendo que a cada 3 ou 4 atividades, uma nota será definida. Ao total, teremos quatro notas (ou quatro conjuntos de atividades), valendo de 0 a 10. Ao final, a média será definida pela média aritmética das três maiores notas.

Material

Programa

Data Assunto Comentários Vídeos Atividades Notas
30/06/2020 Introdução a Computação Paralela Motivação da Disciplina 1ª Nota: Introdução e OpenMP
06/07/2020 Visão Geral de Computação Paralela História, Modelos de Computação e Multiprocessadores Atividade 01
07/07/2020 Visão Geral de Computação Paralela Impacto da Comunicação e Complexidade Paralela
13/07/2020 Visão Geral de Computação Paralela Leis Gerais e Exercícios Atividade 02
14/07/2020 Programação Memória Compartilhada Modelo de Memória Compartilhada e OpenMP
20/07/2020 Programação Memória Compartilhada Continuação da Paralelização de Laços e apresentando o Jogo da Vida. Computação Paralela 16/03/2020 Atividade 03
21/07/2020 Programação Memória Compartilhada Redução em Laços, duas maneiras de calcular o Pi. Computação Paralela 17/03/2020
27/07/2020 Programação Memória Compartilhada Escalonamento de iterações em laços paralelos e Introdução a Tarefas. Computação Paralela 23/03/2020 Atividade 04
28/07/2020 Programação Memória Compartilhada Tarefas no OpenMP e como usar a Nuvem. Computação Paralela 24/03/2020
03/08/2020 Exemplo de Computação Científica Iterações de Jacobi Computação Paralela 30/03/2020 Atividade 05 2ª Nota: MPI
04/08/2020 Programação por Troca de Mensagens Introdução ao MPI Computação Paralela 31/03/2020
10/08/2020 Programação por Troca de Mensagens Operações Básicas e Ponto a Ponto e Criação de Cluster na AWS Computação Paralela 06/04/2020 Atividade 06
11/08/2020 Programação por Troca de Mensagens Comunicação Coletiva Computação Paralela 07/04/2020
17/08/2020 Programação por Troca de Mensagens Cálculo do Pi e Modo de Comunicação Padrão Computação Paralela 13/04/2020 Atividade 07
18/08/2020 Programação por Troca de Mensagens Outros Modos de Comunicação e Topologia em Anel Computação Paralela 14/04/2020
24/08/2020 Programação por Troca de Mensagens Finalizando MPI, discutindo Comunicadores. Computação Paralela 20/04/2020 Atividade 08
25/08/2020 Processadores Massivamente Paralelos Introdução a Programação Massiva Paralela. Computação Paralela 27/04/2020
31/08/2020 Processadores Massivamente Paralelos Anatomia de uma GPU Computação Paralela 28/04/2020 Atividade 09 3ª Nota: OpenCL
01/09/2020 Processadores Massivamente Paralelos Configuração do Ambiente Computação Paralela 04/05/2020
07/09/2020 Processadores Massivamente Paralelos Visão do Programador Computação Paralela 05/05/2020 Atividade 10
08/09/2020 Processadores Massivamente Paralelos Recuperação de Informações sobre Dispositivos OpenCL Computação Paralela 11/05/2020
14/09/2020 Processadores Massivamente Paralelos Exemplo de Programação em OpenCL - Soma de Vetores Computação Paralela 12/05/2020 Atividade 11
15/09/2020 Processadores Massivamente Paralelos Exemplo de Programação em OpenCL - Soma de Vetores Arbitrários Computação Paralela 18/05/2020
21/09/2020 Processadores Massivamente Paralelos Produto Escalar em OpenCL Computação Paralela 19/05/2020 Atividade 12
22/09/2020 Processadores Massivamente Paralelos Multiplicação de Matrizes em OpenCL Computação Paralela 25/05/2020
28/09/2020 Processadores Massivamente Paralelos Exercícios e Projetos Atividade 13 4ª Nota: Computação Científica
29/09/2020 Computação Paralela do Número Pi Solução em OpenMP e MPI
05/10/2020 Computação Paralela do Número Pi Solução em OpenCL Atividade 14
06/10/2020 Solução da Dispersão de Calor 1D Solução em OpenMP e MPI
12/10/2020 Redimensionamento de Imagens Resolução na CPU e GPU Atividade 15
13/10/2020 Cálculo de Movimento de Partículas Sistema Gravitacional de N Corpos
19/10/2020 Cálculo de Movimento de Partículas Solução em MPI e OpenMP Atividade 16
20/10/2020 Cálculo de Movimento de Partículas Solução em OpenCL