
Computação de Alto Desempenho
Código
11165
Unidade Orgânica
Faculdade de Ciências e Tecnologia
Departamento
Departamento de Informática
Créditos
6.0
Professor responsável
Hervé Miguel Cordeiro Paulino, Pedro Abílio Duarte de Medeiros
Horas semanais
4
Total de horas
56
Língua de ensino
Português
Objectivos
Saber:
- Arquiteturas de multiprocessadores e arquiteturas heterogéneas (CPU e GPUs)
- Técnicas de decomposição de problemas
- Linguagens, bibliotecas e ferramentas necessárias para as vários fases de desenvolvimento de um programa paralelo
Saber Fazer:
- Otimização do desempenho de um programa sequencial
- Utilização de ferramentas de medida de desempenho de multiprocessadores e de clusters
- Programação de multiprocessadores usado NVIDIA CUDA e Apache Spark.
Soft-Skills:
- Raciocionar e avaliar criticamente as alternativas de solução e abordagens para a resolução de problemas.
Pré-requisitos
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++).
Conteúdo
- Computação de alto desempenho: hardware, software, aplicações e indicadores de desempenho.
- Algoritmos paralellos e a sua implementação usando GPUs.
- Programação de clusters.
Bibliografia
Principal:
- P. Pacheco, " An Introduction to Parallel Programming", Morgan Kauffman, 2011
- CUDA C Programming Guide, NVIDIA corporation
Bibliografia adicional:
- Norm Matloff, "Programming on Parallel Machines: GPU, Multicore, Clusters and More", University of California, Davis,
Método de ensino
As aulas teóricas têm por objectivo a apresentação dos principais temas e discutir as questões mais relevantes. As sessões laboratoriais têm lugar num laboratório de uso geral com acesso a PCs (que são multi-core) quer para a programação de memória partilhada quer para a de memória distribuída. Estão também acessíveis máquinas com arquitecturas heterogéneas (com CPU e GPUs Nvidia) para a programação de modelos de memória partilhada.
Método de avaliação
Elementos de avaliação
Dois testes ou exame (com peso de 60%) sem consulta.
Dois trabalhos práticos (com peso de 40%).
Frequência
Média dos trabalhos práticos >= 8.
Cálculo da nota final
NT = média dos testes ou nota de exame
NP = média das notas dos trabalhos práticos
se NT < 8 então Nota final = NT
caso contrário, Nota final = NT*0.6 + NP*0.4