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.
Saber:
Saber Fazer:
Soft-Skills:
Principal:
Bibliografia adicional:
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++).
Horas por crédito | 28 | ||
Horas p/ semana | Semanas | Horas | |
Aulas práticas e laboratoriais | 28.0 | ||
Aulas teóricas | 28.0 | ||
Avaliação | 5.0 | ||
Estudo | 42.0 | ||
Projectos e trabalhos | 64.0 | ||
Total de Horas | 167 | ||
ECTS | 6.0 |