Tópicos Avançados de Informática
Programação Paralela
Ano Lectivo de 2003/2004
Programa
- Fundamentos
Paralelismo implícito versus explícito,
decomposição do domínio versus decomposição funcional, tipos de
partição, o problema da granularidade, padrões de comunicação,
factores limitativos de performance.
- Programação em Memória Partilhada
Mapeamento de
memória, locks, semáforos, processos, threads.
- Programação em Memória Distribuída
Topologia, partição
de dados, sincronização, scheduling, o modelo de programação
MPI.
Aulas Teóricas
Avaliação
A avaliação dos alunos faz-se por realização de um Trabalho Prático
(TP) e um Exame Final (EF). O TP não é obrigatório e a sua valorização
apenas será considerada se esta melhorar a classificação final do
aluno. A classificação final do aluno resulta da melhor das seguintes
valorizações:
Trabalho Prático
O principal objectivo do trabalho é permitir que os alunos adquiram
uma maior sensibilidade e conhecimento prático do funcionamento de um
ambiente de programação distribuído. Em particular, pretende-se que os
alunos utilizem a ferramenta de programação LAM/MPI para resolver um
problema concreto (ver descrição do problema).
O trabalho deve ser entregue pessoalmente ou por email até 9 de
Novembro de 2003, sendo a sua demonstração feita posteriormente em
horário a marcar (de 10 a 12 de Novembro de 2003).
Bibliografia
- Advanced
Linux Programming. M. Mitchell, J. Oldham, A. Samuel. New
Riders. (Biblioteca ref. 344)
- Advanced Programming in the UNIX Environment. W.R.
Stevens. Addison Wesley. (Biblioteca ref. 1796)
- Pthreads Programming. B. Nichols, D. Buttlar, J.P.
Farrell. O'Reilly. (Biblioteca ref. 201)
- Parallel Programming with MPI. P. Pacheco. Morgan
Kaufmann. (Biblioteca ref. 159)
- A User's Guide to MPI (em
formato ps.gz)
- MPI Primer/Developing With
LAM (em formato pdf.gz)
Informação Complementar