Programação Distribuída e Paralela
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciências e Tecnologia da Programação |
Ocorrência: 2007/2008 - 2S
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
PRODEI |
1 |
Plano de estudos Oficial |
1 |
- |
7,5 |
70 |
200 |
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 paralela: 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 estático e dinâmico.
Programação de multi-computadores (CLUSTERS): Introdução ao PVM, MPI e OpenMP. Análise e implementação de problemas: produto matriz-vector, matriz-matriz, Eliminação Gaussiana e “the sieve of Eratosthenes”.
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
Quinn, Michael J.;
Parallel programming in C with MPI and openMP. ISBN: 007-123265-6
Foster, Ian T.;
Designing and building parallel programs. ISBN: 0-201-57594-9
Métodos de ensino e atividades de aprendizagem
Aulas Teóricas: exposição das matérias programáticas com apresentação e discussão de exemplos.
Aulas Teórico-Práticas: resolução e discussão de problemas, incluindo o desenvolvimento de alguns programas.
Software
Microsoft Visual C++
OpenMP
MPI
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Descrição |
Tipo |
Tempo (Horas) |
Peso (%) |
Data Conclusão |
Aulas da disciplina (estimativa) |
Participação presencial |
0,00 |
|
|
|
Total: |
- |
0,00 |
|
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