Código: | CC4014 | Sigla: | CC4014 | Nível: | 400 |
Áreas Científicas | |
---|---|
Classificação | Área Científica |
OFICIAL | Ciência de Computadores |
Ativa? | Sim |
Unidade Responsável: | Departamento de Ciência de Computadores |
Curso/CE Responsável: | Mestrado em Ciência de Computadores |
Sigla | Nº de Estudantes | Plano de Estudos | Anos Curriculares | Créditos UCN | Créditos ECTS | Horas de Contacto | Horas Totais |
---|---|---|---|---|---|---|---|
E:BBC | 0 | PE_Bioinformática e Biologia Computacional | 1 | - | 6 | 42 | 162 |
M:A_ASTR | 0 | Plano de Estudos oficial desde_2013/14 | 1 | - | 6 | 42 | 162 |
2 | |||||||
M:BBC | 0 | Plano estudos a partir de 2018 | 2 | - | 6 | 42 | 162 |
M:CC | 10 | PE a partir do ano letivo de 2014 | 1 | - | 6 | 42 | 162 |
M:DS | 4 | Plano Oficial a partir de 2018_M:DS | 1 | - | 6 | 42 | 162 |
MI:ERS | 2 | Plano Oficial desde ano letivo 2014 | 4 | - | 6 | 42 | 162 |
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.
Ao completarem esta unidade curricular, os estudantes deverão ser capazes de:
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.
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.
Designação | Peso (%) |
---|---|
Exame | 70,00 |
Trabalho laboratorial | 30,00 |
Total: | 100,00 |
Designação | Tempo (Horas) |
---|---|
Estudo autónomo | 70,00 |
Frequência das aulas | 39,00 |
Trabalho laboratorial | 49,00 |
Total: | 158,00 |
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%.
A melhoria de classificação incide apenas sobre o exame final.