
High Perfomance Computing
Code
11165
Academic unit
Faculdade de Ciências e Tecnologia
Department
Departamento de Informática
Credits
6.0
Teacher in charge
Maria Cecília Farias Lorga Gomes, Pedro Abílio Duarte de Medeiros
Weekly hours
4
Total hours
56
Teaching language
Inglês
Objectives
Knowledge and understanding goals
- Multiprocessor and heterogeneous architectures (CPUs and GPUs)
- Techniques for problem decomposition
- Languages, libraries and tools needed for all the development cycle of a parallel program
Know-how goals
- Performance optimization of a sequential program
- Ability to use tools for measuring the performance of symmetric multiprocessors and clusters
- Multiprocessor programming using C/C++ OpenMP, MPI and CUDA from Nvidia
Soft-Skills:
- Critical reasoning and evaluation on alternative solutions and approaches for problem solving.
Prerequisites
Students should have knowledge about computer architecture, computer networks, and operating systems, and good programming skills.
Subject matter
- Parallel computing: hardware, software, applications and performance theory.
- Programming shared-memory multiprocessors. OpenMP. Application examples.
- GPU computing. CUDA from Nvidia.
- Programming distributed-memory multiprocessors. MPI. Application examples.
- Structured Parallel Programming -- parallel patterns examples.
Bibliography
Main:
- P. Pacheco, " An Introduction to Parallel Programming", Morgan Kauffman, 2011
Complementary:
- Norm Matloff, "Programming on Parallel Machines: GPU, Multicore, Clusters and More", University of California, Davis,
Teaching method
Lectures are intended to support the instructor’s presentation of fundamental issues.
Laboratory sessions take place in a general-purpose laboratory with PC-based multi-core nodes for shared memory and distributed-memory programming. Access to machines with heterogeneous architectures (CPus and GPUs Nvidia) for shared memory programming.
Evaluation method
Two intermediate tests (60 % of the final grade). The minimum grade for the theoretical evaluation is 8.5 points (out of 20).
Three programming assignments (40% of the final grade)