Disciplina Curricular

Computação em Sistemas Paralelos e Heterogéneos CSPH

Mestrado Bolonha em Engenharia Eletrotécnica e de Computadores - MEEC 2021

Contextos

Grupo: MEEC 2021 > 2º Ciclo > Opções Livres > Áreas Secundárias > Área Secundária - Sistemas de Computação

Período:

Grupo: MEEC 2021 > 2º Ciclo > Área Principal > Áreas de Especialização Principais > Área de Especialização Principal de Sistemas de Computação > Arquiteturas e Computação

Período:

Peso

6.0 (para cálculo da média)

Pré-requisitos

Noções básicas de arquitetura de computadores e conhecimentos fundamentais ao nível da programação

Objectivos

Compreender os princípios de desenvolvimento de programas paralelos escaláveis, de forma a tirar partido das capacidades de computação dos sistemas heterogéneos modernos, p. ex., sistemas com CPUs com múltiplos núcleos, aceleradores e coprocessadores (GPUs, TPUs ou FPGAs). Adquirir competências de índole prática na aceleração de aplicações reais em diferentes ambientes paralelos e heterogéneos, com especial ênfase na utilização de modelos de programação e APIs modernos, na otimização de aplicações e no escalonamento e distribuição do trabalho pelos diversos elementos de computação. Familiarizar com as tendências mais recentes de computação paralela, com tecnologias emergentes de memória, e com técnicas avançadas para a gestão eficiente, o processamento e a análise de diversas aplicações (p. ex., aplicações que operam sobre grandes volumes de dados).

Programa

- Introdução à computação e arquiteturas paralelas: concepção dos sistemas paralelos, desafios para paralelização de código, métricas e modelos de desempenho e eficiência - Formas de paralelismo e subsistema de memória: multi-núcleos, SIMD, multi-tarefas, caches, latência e largura de banda - Modelos de programação paralela: implementações em HW/SW, espaço de memória partilhada, localidade e comunicação - Programação para arquiteturas paralelas massivas: paralelismo de dados, arquitetura GPU, modelos e abstrações de programação - Coerência e consistência de memória, primitivas de sincronização e transactional memory - Paralelismo heterogéneo, distribuição de carga, escalonamento e computação com eficiência energética - Análise, caracterização e otimização de aplicações paralelas - Tópicos emergentes em computação paralela e heterogénea: especialização em hardware, processamento com redes neuronais e near-memory computing

Metodologia de avaliação

50% avaliação contínua; 50% avaliação não contínua

Componente de Competências Transversais

A UC abarca o desenvolvimento de competências transversais em Pensamento Crítico e Inovador, Competências Interpessoais e Intrapessoais (oral, organizacional e trabalho em equipa, autodisciplina, perseverança, auto-motivação) e Literacia da Informação e dos media (capacidade de localizar e aceder a informações) na componente laboratorial. A percentagem de avaliação associada a essas competências deverá ser da ordem dos 20% 

Componente Laboratorial

A componente de laboratório engloba trabalhos de projeto, desenvolvidos ao longo do período, e envolvendo diferentes tópicos do programa da UC. A avaliação destes trabalhos envolve a demonstração, discussão e ainda um relatório (por trabalho), o qual deverá descrever sucintamente os objetivos, técnicas aplicadas e resultados obtidos

Componente de Programação e Computação

A unidade curricular exercita diversos componentes das sistemas paralelos e heterogéneos (i.e., sistemas com CPUs com múltiplos núcleos e aceleradores, p. ex., GPUs) com ligação à componente de programação imperativa, permitindo a identificação e compreensão dos limites de desempenho das aplicações (núcleo, caches, memória, etc), o impacto no consumo de potencia e energia, e ainda na escolha e escalonamento de tarefas e aplicações com vista à programação de elevado desempenho, paralela e heterogénea. Estas competências são avaliadas através dos mini-projetos (percentagem > 80%) e do exame (percentagem >50%).

Princípios Éticos

Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.

Disciplinas Execução

2023/2024 - 1º semestre

2022/2023 - 1º semestre

2021/2022 - 1º Semestre