DEPARTAMENTO DE FÍSICA

 

Computação Avançada - F3

Ano letivo: 2017-2018
Especificação técnica - ficha curricular

Elementos especificos
código da disciplinaciclo de estudossemestre lectivocréditos ECTSlíngua de ensino
3005769116pt,en *)

*) N.B.  se houver estudantes que não falem português a língua é o inglês.

Objectivos formativos
- Reconhecer a importância e os domínios de aplicação da computação avançada
- Conhecer as principais características de hardware e software de um supercomputador
- Adquirir conhecimentos e prática de computação paralela, incluindo o uso de diretivas/bibliotecas paralelas e alguns algoritmos específicos para esse tipo de computação.
- Adquirir experiência no uso de recursos de computação avançada.

Competências a desenvolver:
Competência em análise e síntese;
Competência em resolução de problemas;
Uso da internet como meio de comunicação e fonte de informação;
Capacidade de decisão;
Competência em raciocínio crítico;
Competência em aprendizagem autónoma;
Adaptabilidade a novas situações.
Competência em investigar.
Programa genérico mínimo
Sistemas de computação avançada: HPC vs. HTC.
Arquiteturas de hardware: clusters, MPP, arquiteturas híbridas.
Software de sistema usado em HPC: filesystems, bibliotecas, gestão de recursos e de trabalhos. Tendências da evolução do HPC.

Computação paralela e sua importância. Principais domínios de aplicação. Paradigmas de computação paralela: memória distribuída e partilhada. Eficiência de um algoritmo paralelo: speedup e eficiência de paralelização (Lei de Amdhal).

OpenMP. Modelo fork and join. Loops paralelos, operações coletivas e barreiras. Variáveis privadas e partilhadas. Problema da competição por dados partilhados (data race).
MPI. Paralelização de Algoritmos: decomposição de dados e decomposição de domínio. Modelo master-slave para distribuição de dados. Tipos de comunicações em MPI. Operações coletivas - dados e cálculo. Comunicadores e topologias de comunicação. Definição de novas estruturas de dados.
Aplicações a álgebra linear e resolução da equação de Poisson.
Pré-requisitos
Experiência em programação numa linguagem de alto nível (Fortran ou C))
Competências genéricas a atingir
. Competência em análise e síntese;
. Conhecimento de uma língua estrangeira;
. Conhecimentos de informática relativos ao âmbito do estudo;
. Competência para resolver problemas;
. Competência em raciocínio crítico;
. Competência em aprendizagem autónoma;
. Competência em investigar;
. Competência em organização e planificação;
. Competência em comunicação oral e escrita;
. Competência em gestão da informação;
. Adaptabilidade a novas situações;
. Criatividade;
(por ordem decrescente de importância)
Horas lectivas semestrais
aulas teóricas30
orientação tutorial15
total horas lectivas45

Método de avaliação
Resolução de problemas50 %
Projecto50 %

Bibliografia de referência
Using MPI, 2nd Edition
William Gropp, Ewing Lusk and Anthony Skjellum, MIT Press

Using MPI-2
William Gropp, Ewing Lusk and Rajeev Thakur, MIT Press

Using OpenMP
Barbara Chapman, Gabriele Jost and Ruud van der Pas, MIT Press

Parallel Programming with MPI, P. Pacheco, Morgan Kaufmann Publishers, 1997.

Numerical Linear Algebra on High-Performance Computers
Jack J. Dongarra, Iain S. Duff , Danny C. Sorensen, Hank A. van der Vorst

The Sourcebook of Parallel Computing
Jack Dongarra , Geoffrey Fox , Ken Kennedy , Linda Torczon , William Gropp , Ian Foster (Editor), Andy White (Editor)

http://www.openmp.org

https://computing.llnl.gov/tutorials/mpi
Método de ensino
Ensino eminentemente prático, com recurso extensivo a apresentações de slides com matéria teórica e prática, acesso à internet.

Faz-se uso de um terminal de linha de comando usando compiladores da GNU e a implementação mpich do MPI (Windows/Linux/MacOS) para os exercícios práticos, que consistem em elaboração de programas paralelos. Disponibiliza-se acesso remoto a um cluster de computadores para as avaliações práticas.
Recursos específicos utilizados

Acesso a computadores e a um sistema de computação avançada