BCC447 - Programação Paralela - 2022-1

Carga horária da disciplina: 4 horas/aula


Professor(es) em 2022-1

Turma 11 Professor:
Joubert de Castro Lima - www | e-mail

Horários:
Terça-feira (08h20 - 10h00)
Quinta-feira (08h20 - 10h00)

Objetivos

Apresentar ao aluno diversos aspectos teóricos e práticos de programação paralela.

Ementa

Teoria do Paralelismo; arquiteturas paralelas; primitivas básicas de programação paralela: controle de tarefas, comunicação e sincronização; conceitos básicos de avaliação de desempenho e complexidade de programas paralelos; paralelização automática; vetorização; algoritmos clássicos de programação paralela; medidas de desempenho das aplicações paralelas; exploração do paralelismo em programas: implícita e explícita; paradigmas de programação paralela: trocas de mensagens e memória compartilhada; escrita de programas paralelos.

Conteúdo Programático

- Introdução a programação paralela
- Razões que influenciaram o desenvolvimento da computação paralela
- Divisão das áreas da computação paralela
- Áreas de abrangência do processamento paralelo
- Primitivas Básicas de Programação Paralela: controle de tarefas, comunicação e sincronização
- Modelos de arquiteturas paralelas
- Divisão em relação ao fluxo de dados
- Divisão quanto ao fluxo de instruções
- Divisão em relação ao mecanismo de controle
- Máquinas paralelas comerciais
- Classificação do desempenho das máquinas paralelas
- Redes de interconexão de processadores
- Medidas de desempenho das aplicações paralelas
- Obtenção de resultados de aplicações paralelas
- Custo computacional
- Speedup
- Eficiência
- Escalabilidade
- Exploração do paralelismo em programas
- Modelos de algoritmos paralelos
- Exploração implícita
- Exploração explícita
- Paradigmas de programação paralela
- Programação através de trocas de mensagens
- Programação através de memória compartilhada
- Escrita de programas paralelos

Bibliografia

- GRAMA, Ananth. Introduction to parallel computing. 2. ed. Harlow, England: Addison Wesley, 2003.
- DONGARRA, J.J. Sourcebook of parallel computing. 1. ed. Amsterdam: Morgan Kaufmann, 2003.
- HERLIHY, Maurice; SHAVIT, Nir. The art of multiprocessor programming. 1. ed. Burlington: Elsevier Morgan Kaufmann, 2008.

Bibliografia complementar

- TANIAR, David; LEUNG, Clement H. C; RAHAYU, Johanna Wenny. High-performance parallel database processing and grid databases. 1. ed. Hoboken, N.J.: Wiley, 2008.
- KLEPPMANN, Martin. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. 1. ed. Nova York: Oreilly & Assoc, 2015.
- PRASAD, Sushil K; GUPTA, Anshul; ROSENBERG, Arnold. Topics in Parallel and Distributed Computing: Enhancing the Undergraduate Curriculum: Performance, Concurrency, and Programming on Modern Platforms. 1. ed. Nova York: Springer, 2019.
- LEA, Doug. Concurrent Programming in Java: Design Principles and Patterns. 3. ed. Nova York: Addison-Wesley, 2019.
- BARLAS, Gerassimos. Multicore and Gpu Programming: An Integrated Approach. 1. ed. Nova York: Morgan Kaufmann, 2014.

Departamento de Computação  |  ICEB  |  Universidade Federal de Ouro Preto
Campus Universitário Morro do Cruzeiro  |  CEP 35400-000  |  Ouro Preto - MG, Brasil
Telefone: +55 31 3559-1692  |  decom@ufop.edu.br