Saltar para:
Logótipo
Você está em: Início > CC4014
Mapa das Instalações
FC6 - Departamento de Ciência de Computadores FC5 - Edifício Central FC4 - Departamento de Biologia FC3 - Departamento de Física e Astronomia e Departamento GAOT FC2 - Departamento de Química e Bioquímica FC1 - Departamento de Matemática

Computação Paralela

Código: CC4014     Sigla: CC4014     Nível: 400

Áreas Científicas
Classificação Área Científica
OFICIAL Ciência de Computadores

Ocorrência: 2017/2018 - 1S

Ativa? Sim
Página Web: http://www.dcc.fc.up.pt/~fds/aulas/CP/1718/
Unidade Responsável: Departamento de Ciência de Computadores
Curso/CE Responsável: Mestrado em Ciência de Computadores

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
E:BBC 2 PE_Bioinformática e Biologia Computacional 1 - 6 42 162
M:CC 9 PE a partir do ano letivo de 2014 1 - 6 42 162
MI:ERS 4 Plano Oficial desde ano letivo 2014 4 - 6 42 162

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

Dotar os estudantes do conhecimento teórico e prático dos modelos de computação orientados para arquiteturas paralelas e distribuídas. Será dada ênfase ao desenvolvimento de competências de programação para memória distribuída com o MPI, e de programação em memória partilhada com processos, threads e OpenMP.

Resultados de aprendizagem e competências

Ao completarem esta unidade curricular, os estudantes deverão ser capazes de:

  • conhecer os principais modelos, paradigmas, ambientes e ferramentas de programação paralela
  • entender e aferir conceitos relativos à estrutura, funcionamento e desempenho de programas paralelos
  • formular soluções nos principais paradigmas de programação paralela, nomeadamente MPI, Pthreads e OpenMP

Modo de trabalho

Presencial

Programa

Fundamentos:
Programação paralela, concorrência e paralelismo. Taxonomia de Flynn. Metodologia de programação de Foster. Principais modelos e paradigmas de programação paralela.

Programação em Memória Distribuída com o MPI:
A especificação MPI, troca explícita de mensagens, protocolos de comunicação, tipos derivados e empacotamento de dados, comunicações colectivas, comunicadores, topologias.

Programação em Memória Partilhada com Processos:
Processos, segmentos de memória partilhada, mapeamento de ficheiros em memória partilhada, spinlocks, semáforos.

Programação em Memória Partilhada com o Pthreads:
Processos multithreaded com o Pthreads, mutexs, variáveis de condição, chaves, implementações do Pthreads.

Programação em Memória Partilhada com o OpenMP:
A especificação OpenMP, directivas de compilação, constructores de work-sharing, constructores de sincronização, funções básicas, funções de locking, variáveis de ambiente, remoção de dependências nos dados, desempenho, combinando o OpenMP com o MPI.

Métricas de Desempenho:
Medidas de speedup, eficiência, redundância, utilização e qualidade duma aplicação paralela. Lei de Amdahl. Lei de Gustafson-Barsis. Métrica de Karp-Flatt. Métrica de isoeficiência.

Algoritmos Paralelos:
Estratégias de escalonamento e balanceamento de carga. Paralelização de algoritmos de ordenação, de algoritmos de procura, de algoritmos baseados em métodos de Monte Carlo, e de algoritmos para multiplicação de matrizes.

Bibliografia Obrigatória

Michael J. Quinn; Parallel Programming in C with MPI and OPenMP, McGraw-Hill.
P. Pacheco.; Parallel Programming with MPI, Morgan Kaufmann
B. Nichols, D. Buttlar and J.P. Farrell; Pthreads Programming, O'Reilly
R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald and R. Menon; Parallel Programming in OpenMP, Morgan Kaufmann
M. Mitchell, J. Oldham and A. Samuel; Advanced Linux Programming, New Riders
B. Wilkinson, M. Allen.; Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers , Prentice Hall.

Métodos de ensino e atividades de aprendizagem

Aulas Teórico-Práticas: exposição e discussão dos conceitos sobre modelos de programação paralela e distribuída; resolução de exercícios e apoio no desenvolvimento de trabalhos práticos de programação ilustrativos dos vários modelos de programação paralela.

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 70,00
Trabalho laboratorial 30,00
Total: 100,00

Fórmula de cálculo da classificação final

A avaliação dos alunos faz-se por realização de 2 trabalhos práticos e de um exame final escrito. Cada trabalho prático terá um peso total de 3 em 20 valores na classificação final da unidade curricular e o exame final escrito terá um peso de 14 em 20 valores na classificação final da unidade curricular. A classificação mínima no exame é de 40%.

Melhoria de classificação

A melhoria de classificação incide apenas sobre o exame final.

Recomendar Página Voltar ao Topo
Copyright 1996-2025 © Faculdade de Ciências da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2025-06-14 às 09:54:32 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias