F+Mat
2003476 2 1 6.0 pt *)
Objetivos: conhecer a arquitetura de máquinas paralelas; saber distribuir, em problemas selecionados, uma tarefa computacional por um conjunto de processos independentes; saber utilizar os paradigmas da programação paralela.
Competência em resolução de problemas;
Adaptabilidade a novas situações;
Noções Básicas: Computação paralela e aus importância. Principais domínios de aplicação. Paradigmas de computação paralela: memória distribuída e partilhada. Algumas noções de supercomputador, principais arquiteturas e middleware associado. Tendências da sua evolução em hardware e software.
Paralelismo ao nível de software: threads, MPI, OpenMP. A medição da eficiência de um algoritmo paralelo: speedup e eficiência de paralelização (Lei de Amdhal).
Exemplos de programação em OpenMP. Loops paralelos, operações coletivas e barreiras. Variáveis privadas e partilhadas.
MPI. Técnicas de Paralelização de Algoritmos: Decomposição de dados e decomposição por domínio. Modelo master-slave para distribuição de dados. Formas de comunicação em MPI para partilha de dados. Comunicadores e topologias de comunicação.
Aplicações: i) álgebra linear; ii) resolução de equações diferenciais (equação de Poisson), iii) transformadas de Fourier.
Bibliotecas Paralelas.
Saber programar numa linguagem de alto nível
Avaliação Projecto: 50.0%
Relatórios de resolução de problemas : 50.0%
B. Chapman, G. Jost, R. van der Pas, Using OpenMP: Portable Shared Memory Parallel Programming, MIT Press, 2007.
W. Gropp, E. Lusk, A. Skjellum, Using MPI Portable Parallel Programming with the Message Passing Interface, segunda edição, MIT Press, 1999.
P. Pacheco, Parallel Programming with MPI, Morgan Kaufmann Publishers, 1997.
https://computing.llnl.gov/tutorials/mpi
Ensino eminentemente prático, com recurso extensivo a apresentações de slides, acesso à internet, uso de um terminal de linha de commando para exemplificação de programas e de resultados, e acesso remoto a um cluster de computadores. Todo o material relevante está também disponível na Web