Currículo

Computação Avançada CompAv

Contextos

Groupo: Escola de Tecnologias e Arquitetura > Optativas > Departamento de Ciências e Tecnologias da Informação > 1º Ciclo

Groupo: Escola de Tecnologias e Arquitetura > Optativas > Departamento de Ciências e Tecnologias da Informação > 1º Ciclo

ECTS

6.0 (para cálculo da média)

Objectivos

No final da cadeira, o aluno deverá ser capaz de: OA1 - Identificar e comparar arquiteturas paralelas, modelos de memória e paradigmas de programação adequados a diferentes problemas computacionais; OA2 - Decompor e mapear problemas em tarefas paralelas, considerando dependências, granularidade, balanceamento de carga, comunicação e sincronização; OA3 - Selecionar e aplicar estratégias de paralelização adequadas às características do algoritmo e da arquitetura computacional; OA4 - Desenvolver aplicações paralelas para sistemas de memória partilhada, distribuída e aceleradores GPU, utilizando OpenMP, MPI e CUDA; OA5 - Analisar e otimizar a correção e o desempenho de programas paralelos, recorrendo a métricas de desempenho, modelos de performance e princípios de escalabilidade.

Programa

CP1 - Introdução à Computação de Alto Desempenho: evolução, aplicações, sistemas computacionais e principais desafios; CP2 - Arquiteturas paralelas: modelos SIMD e MIMD, memória partilhada e distribuída e redes de interligação; CP3 - Algoritmos paralelos: decomposição em tarefas e dados, dependências, granularidade, concorrência, caminho crítico, mapeamento e balanceamento de carga; CP4 - Programação em memória partilhada com OpenMP: regiões paralelas, partilha de trabalho, tarefas, sincronização, gestão de dados e escalonamento; CP5 - Programação em memória distribuída com MPI: comunicação ponto a ponto e coletiva, comunicadores, tipos de dados e decomposição de domínio; CP6 - Computação em aceleradores GPU com CUDA: modelo de execução, organização de threads, hierarquia de memória, kernels e otimização; CP7 - Análise de desempenho: speedup, eficiência, custo, overhead, modelos Roofline e latência-largura de banda, escalabilidade forte e fraca, leis de Amdahl e Gustafson.

Método de Avaliação

A UC pode ser realizada através de 2 modalidades de avaliação: 1 - Avaliação ao longo do semestre A avaliação ao longo do semestre é composta por: + (80%) 2 testes: 1 teste realizado a meio do semestre, em data a definir, e um 2.º teste realizado na primeira data da época de exame; + (20%) 2 trabalhos realizados em grupos de 2 alunos, com datas de entrega a definir. A aprovação nesta modalidade de avaliação obriga à obtenção de uma nota mínima de 7,5 valores (em 20) em todos os testes e trabalhos. 2 - Avaliação por exame final A avaliação por exame final é composta por 1 único exame realizado em qualquer das épocas de exame disponíveis, que corresponderá a 100% da nota final.

Carga Horária

Carga Horária de Contacto -

Trabalho Autónomo - 95.0

Carga Total -

Bibliografia

Principal

  • Todos os conteúdos apresentados nas aulas estão disponíveis no sistema de e-learning do ISCTE-IUL.:

Secundária

  • - Introduction to Parallel Computing. W.P Petersen, and P. Arbenz. Oxford Press (2004) - CUDA by example: An introduction to General-Purpose GPU programming. J. Sanders, E. Kanbrot. Addison-Wesley (2011) - Introduction to Parallel Computing. A. Grama, A. Kupta, G. Karypis, V. Kumar. Addison Wesley (2003):

Disciplinas de Execução

2025/2026 - 2º Semestre

2025/2026 - 2º Semestre