Computação Paralela
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Programação |
Ocorrência: 2010/2011 - 2S
Ciclos de Estudo/Cursos
Língua de trabalho
Português - Suitable for English-speaking students
Objetivos
Aquisição de conhecimentos conducentes à utilização simultânea de várias unidades de processamento num sistema de computação, utilizando técnicas e tecnologias da programação paralela.
As competências a adquirir incluem:
o projecto e implementação de algoritmos paralelos em consonância com as possíveis arquitecturas de multi-processamento;
a escolha apropriada dos modelos de programação e a previsão de desempenho;
a utilização fluente do MPI e OpenMP;
identificação e resolução de possíveis problemas de sincronização.
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 e multi-processadores:
- Utilização de MPI e OpenMP.
- Outros frameworks e ferramentas.
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).
Bibliografia Obrigatória
Quinn, Michael J.;
Parallel programming in C with MPI and openMP. 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 do material teórico com apresentação e discussão de exemplos. Desenvolvimento de alguns programas e exercícios práticos. Projecto e desenvolvimento de trabalhos de maior dimensão.
Software
Visual Studio 2008 Professional (C#/C/C++)
MPI
Palavras Chave
Ciências Tecnológicas > Tecnologia > Tecnologia de computadores > Tecnologia de software
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Descrição |
Tipo |
Tempo (Horas) |
Peso (%) |
Data Conclusão |
Participação presencial (estimativa) |
Participação presencial |
42,00 |
|
|
Exercíos |
Teste |
16,00 |
|
|
Projecto de programação |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
60,00 |
|
|
Exame |
Exame |
2,00 |
|
|
|
Total: |
- |
0,00 |
|
Componentes de Ocupação
Descrição |
Tipo |
Tempo (Horas) |
Data Conclusão |
Estudo teórico |
Estudo autónomo |
42 |
|
|
Total: |
42,00 |
|
Obtenção de frequência
Realizar e apresentar os trabalhos práticos.
Fórmula de cálculo da classificação final
Nota Final = 0.5*AvD + 0.5*Ex
AvD – Avaliação Distribuída
Ex – Nota do exame
A Avaliação Distribuída é obtida por 2 a 3 trabalhos práticos, com peso idêntico cada um.
Avaliação especial (TE, DA, ...)
A avaliação distribuída é baseada na realização de trabalhos práticos de programação ao longo do semestre, 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 na próxima ocorrência da unidade curricular.
A componente de Exame pode ser melhorada nas épocas previstas na FEUP.
Observações
Conhecimento de Linguagem C/C++