Português English
Contato

Lista de Disciplinas | CMP157

Programação Paralela e Distribuída

Responsável: Cláudio Fernando Resin Geyer
Pré-Requisitos: –
Carga Horária: 60 hs
Créditos: 4
Semestres Oferecidos: Segundo semestre
Matrícula de Graduandos: A matricula deverá ser feita como Aluno Especial
Página da Disciplina: –

SÚMULA

Na parte de algoritmos paralelos, será dada ênfase ao estudo da complexidade dos algoritmos e ao aumento de desempenho com relação ao algoritmo seqüencial. Na parte de algoritmos distribuídos, será usada uma abordagem baseada nos paradigmas de comunicação e sincronização, e serão estudados principalmente os algoritmos de sistemas.

Na parte de técnicas de implementação, serão abordados principalmente os tópicos em estudo nos diversos projetos do grupo de processamento paralelo e distribuído do CPGCC, como por exemplo, protocolos de difusão confiável, escalonamento de programas paralelos, paralelização automática de linguagens e interfaces gráficas de programação e visualização.

OBJETIVOS

A disciplina tem dois objetivos principais: (i) o estudo de algoritmos paralelos e distribuídos e (ii) o estudo de técnicas atuais de implementação de ambientes de programação paralela e distribuída.

PROGRAMA

• Algoritmos distribuídos:
– paradigmas de comunicação e sincronização: síncrono, assíncrono, RPC, rendezvous, dados compartilhados;
– classes e exemplos de algortitmos distribuídos: mestre-escravo, cliente-servidor, pares;
– ondas, consistência de objetos, relógio global, difusão
• Algoritmos paralelos:
– máquinas abstratas: PRAM
– conceitos básicos de complexidade: speedup, eficiência
– classes e exemplos de algoritmos paralelos; operações sobre matrizes, sort
• Implementação de ambientes de programação:
– análise de dependências;
– protocolos de comunicação: difusão confiável, grupos, …;
– máquinas abstratas paralelas;
– escalonamento dinâmico: centralizado, distribuído e hierárquico; heurísticas;
– interfaces gráficas de programação

BIBLIOGRAFIA

• JAJA, J. An Introduction to Parallel Algorithms. Addison-Wesley, 1992
• ANDREWS, G. R. Concurrent Programming – Principles and Practice. The Benjamin/Cunnings, Redwood City, 1991
• LYNCH, N. Distributed Algorithms.
• KUMAR, V. et alii. Introduction to Parallel Computing: Design and Analisys of Parallel Algorithms.
• FOSTER, I. Designing and Building Parallel Programs. Addison-Wesley, 1995.
• WOLFE, M. High Performance Compilers for Parallel Computing.
• LEWIS and EL-REWINI. Task Scheduling in Parallel and Distributed Systems. Prentice-Hall.
• Artigos, dissertações e teses recentes.