Computação de Alto Desempenho (2017/2018) - Departamento de Informática
Descrição

A disciplina introduz metodologias e técnicas que permitem explorar arquiteturas hardware com múltiplos processadores e heterogéneas, tendo como principal objectivo fornecer competências na área de "High Performance Computing". Em particular, a disciplina estuda como diminuir os tempos de execução de programas com necessidade de recursos de computação elevados.
Para tal, são apresentadas as arquitecturas de multiprocessadores e heterogéneas existentes e são descritas técnicas de decomposição de problemas adequadas a essas arquitecturas alvo. Na vertente aplicada e experimental da disciplina, há atividades laboratoriais utilizando linguagens comuns de programação de multiprocessadores e ambientes heterogéneos (CPUs e GPUs Nvidia), bem como ferramentas de medida de desempenho de multiprocessadores e de clusters.

Objectivos

Saber:

Saber Fazer:

Soft-Skills:

Programa
  1. Computação de alto desempenho: hardware, software, aplicações e indicadores de desempenho.
  2. Programação de multiprocessadores de memória partilhada. .
  3. Computação usando GPUs.
  4. Programação de clusters.
Bibliografia Principal

Principal:

Bibliografia adicional:

Requisitos Prévios

Supõe-se que os estudantes conhecem conceitos básicos de arquitetura de computadores, redes de comunicação e sistemas de operação, e assume-se proficiência em programação (tem sido utilizada a linguagem C ou C++).

Esforço do Aluno
  Horas por crédito 28
  Horas p/ semana Semanas Horas
Aulas práticas e laboratoriais 2 14 28.0
Aulas teóricas 2 14 28.0
Avaliação   5.0
Estudo   42.0
Projectos e trabalhos   64.0
Total de Horas 167
ECTS 6.0