Disciplina

Área

Área Científica de Metodologia e Tecnologias da Programação > Algoritmia

Activa nos planos curriculares

Min-CED 2021 > Min-CED 2021 > Computação Paralela e Distribuída

MEEC 2021 > MEEC 2021 > 2º Ciclo > Opções Livres > Áreas Secundárias > Área Secundária - Sistemas de Computação > Computação Paralela e Distribuída

MEIC-T 2021 > MEIC-T 2021 > 2º Ciclo > Área Principal > Agrupamentos > Sistemas Distribuídos > Computação Paralela e Distribuída

MECD2019 > MECD2019 > 2º Ciclo > Opções > Computação Paralela e Distribuída

MEIC-T 2015 > MEIC-T 2015 > 2º Ciclo > Agrupamentos > Sistemas Distribuídos > Computação Paralela e Distribuída

MEIC-A 2021 > MEIC-A 2021 > 2º Ciclo > Area Principal > Agrupamentos > Sistemas Distribuídos > Computação Paralela e Distribuída

MEIC-A 2015 > MEIC-A 2015 > 2º Ciclo > Agrupamentos > Sistemas Distribuídos > Computação Paralela e Distribuída

MEEC 2006 > MEEC 2006 > 2º Ciclo > Área de Especialização > Área de Especialização Secundária > Computadores > Computação Paralela e Distribuída

MERC 2006 > MERC 2006 > 2º Ciclo > Área de Especialização Complementar > Programação em Redes > Computação Paralela e Distribuída

DEAEngCmp2007 > DEAEngCmp2007 > 3º Ciclo > Obrigatórias > Computação Paralela e Distribuída

MEIC-A 2006 > MEIC-A 2006 > 2º Ciclo > Área de Especialização Complementar > Sistemas Distribuídos > Computação Paralela e Distribuída

Nível

Exame ou testes 40%. Projecto 50%. Trabalhos de casa 10%

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

3.0 h/semana

1.5 h/semana

147.0 h/semestre

Objectivos

Compreender os modelos, técnicas, e formas de programação de algoritmos paralelos. Analisar e conceber algoritmos paralelos. Compreender os fundamentos da computação distribuída.

Programa

Modelos de computação paralela: multiprocessadores e multicomputadores; organização da memória; complexidade da comunicação. Redes de Interligação. Taxonomia de Flynn. Análise e síntese de algoritmos paralelos: divisão do problema; organização dos dados; sincronização; balanceamento e escalonamento. Programação em sistemas de passagem de mensagens: MPI. Programação em sistemas com memória distribuída partilhada: OpenMP, threads, condições de corrida, detecção de interblocagem Análise do desempenho de algoritmos paralelos. Fundamentos de computação distribuída e suas aplicações aos algoritmos paralelos. Limites da computação distribuída. Exemplos: classificação de documentos e métodos de Monte Carlo. Exemplos: multiplicação de matrizes; solução de sistemas lineares; FFT. Exemplos: algoritmos de procura.

Metodologia de avaliação

Exame ou testes 40%. Projecto 50%. Trabalhos de casa 10%

Pré-requisitos

Componente Laboratorial

Princípios Éticos

Componente de Programação e Computação

Componente de Competências Transversais

Bibliografia

Principal

Parallel Programming

Michael Quinn

2003

McGrawHill


Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers

Barry Wilkinson and Michael Allen

2005

Prentice Hall