Programação Distribuída e Paralela
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Programação |
Ocorrência: 2007/2008 - 2S
Ciclos de Estudo/Cursos
Língua de trabalho
Português
Objetivos
Aquisição de conhecimentos úteis para desenvolver programação paralela. Construção de bases sólidas em arquitecturas paralelas, paralelização de algoritmos, modelos de programação, sincronização de processos e medidas de desempenho, por meio de desenvolvimento de programas e utilização de interfaces apropriadas para programação paralela.
Introdução à computação distribuída em ambiente Internet. Familiarizar com os modelos p2p e GRID para computação distribuída.
Programa
Introdução:
Programação Distribuída e Paralelismo, Maquinas Paralelas, Processadores, Organização de Memória
Fundamentos da Programação Paralela:
Divisão do Problema, Padrões de comunicação, Sincronização, Granularidade da paralelização, Escalonamento (distribuição do trabalho pelos processadores)
Programação de multi-computadores:
Introdução ao PVM, MPI e OpenMP.
Caracterização da Computação Paralela
Modelos de execução, Modelos de Programação, Modelos de Computação, Medidas de Desempenho e Eficiencia, Expansibilidade (Função de Isoeficiência)
Introdução à computação distribuída em ambiente Internet:
Sistemas p2p e Grid. Caracteristicas e aplicações.
Algoritmos p2p para distribuição de conteúdos.
Modelos de Grid e evolução do midleware.
Bibliografia Obrigatória
M. J. Quinn; Parallel Programming in C with MPI and OpenMP, McGraw-Hill, 2003. ISBN: 007-123265-6
Bibliografia Complementar
Foster, Ian T.;
Designing and building parallel programs. ISBN: 0-201-57594-9
Métodos de ensino e atividades de aprendizagem
Exposição das matérias programáticas com apresentação e discussão de exemplos, incluindo o desenvolvimento de alguns programas.
Tipo de avaliação
Avaliação distribuída com exame final
Obtenção de frequência
Não exceder o número limite de faltas, quando aplicável, e obter um mínimo de 6 valores em 20 na avaliação distribuída.
Fórmula de cálculo da classificação final
Nota Final = 0.4*AvD + 0.6*Ex
AvD – Avaliação Distribuída
Ex – Nota do exame
A Avaliação Distribuída é obtida por 2 trabalhos práticos, com peso de 50% para cada um.
Para obter aprovação é exigido um mínimo de 6 valores em 20 no exame final.
Avaliação especial (TE, DA, ...)
A avaliação distribuída é baseada na realização de trabalhos de programação, e é exigida a todos os alunos independentemente do regime de inscrição.
Melhoria de classificação
A melhoria da classificação obtida na componente distribuída pode ser realizada nas épocas de realização de trabalhos práticos da disciplina.
Observações
Conhecimento de Linguagem C/C++