Kursthemen
-
- Informações sobre o curso
- Notação O-zão (big-O).
- Comparação de tempos bubblesort versus quicksort.
-
Revisão de alguns conceitos de organização e arquitetura de computadores
- Evolução tecnológica
- Hierarquia de memória e cache
- Entradas e saídas
- Multiprogramação
- Gerenciamento de memória
-
Continuação de revisão de arquitetura sequenciais
- Prefetch
- Pipeline de instruções
- Previsão de desvisos
- Execução superescalar
Início de apresentação de arquiteturas paralelas- Paralelismo em processadores
- SIMD versus MIMD
- Plataformas de espaço de endereçamento compartilhado. UMA versus NUMA.
- Platafomas de passagem de mensagens.
-
Continuação de apresentação de arquiteturas paralelas.
- Redes de interconexão.
- Roteamento.
- Avaliação de redes.
- Coerência de cache.
- Custos de comunicação.
- Mapeamento de grafos.
-
Semana da Pátria.
-
Programação de passagem de mensagens com MPI:
- Estrutura de programas MPI.
- Execução de programas MPI.
- Comunicação ponto-a-ponto (send+receive).
- Comunicações não-bloqueantes.
- Algumas comunicações coletivas: broadcast, gather, scatter, reduce.
-
Continuação de MPI:
- Tipos de dados
- Compatibilidade de tipos
- Structs
- Definição de novos comunicadores
- Topologias cartesianas
- Exemplo de produto matriz-vetor
- Exemplo de cálculo da fractal de Mandelbrot.
-
Capítulo 3 (Projeto de algoritmos paralelos):
- Decomposição de tarefas
- Granulosidade
- Grau de concorrência
- Tamanho de caminho crítico
- Grafo de interação de tarefas
- Técnicas de decomposição:
- Recursiva
- Por dados
- Exploratória
- Especulativa
- Híbrida
- Características de tarefas (geração, tamanho, interações)
- Mapeamento
- Por blocos
-
Continuação do capítulo 3:
- Distribuições bloco-cíclicas
- Particionamento de grafos
- Mapeamento baseado em particionamento de tarefas
- Mapeamentos hierárquicos
- Esquemas dinâmicos: centralizados e distribuídos
- Modelos de algoritmos paralelos
Exemplo de difusão de calor, versão MPI
Início do capítulo 4 (Operações de comunicação):
- Broadcast e redução
-
Feriado: Nossa Senhora
-
Outras operações coletivas:
- Broadcast e redução de todos para todos.
- Soma de prefixo (scan)
- Scatter e gather
Capítulo 5: Modelagem analítica de desempenho- Fontes de sobrecarga em sistemas paralelos
- Sobrecarga total
- Custo
- Speedup
- Eficiência
- Sistemas custo-ótimos
- Granulosidade e desemepnho
- Escalabilidade
- Isoeficiência
- Tempo mínimo e tempo mínimo com custo ótimo
- Speedup escalado (com restrição de tempo ou de memória)
- Fração serial
-
Programação com memória compartilhada usando OpenMP
-
Finados
-
Programação com memória compartilhada usando threads de C++11.
-
Recesso (após Dia da República)
-
-
Prova sobre o material do livro-texto apresentado em sala (capítulos 2 a 5)
-