Faculdade de Ciências e Tecnologia

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

  1. Parallel computing: hardware, software, applications and performance theory.
  2. Programming shared-memory multiprocessors. OpenMP. Application examples.
  3. GPU computing. CUDA from Nvidia.
  4. Programming distributed-memory multiprocessors. MPI. Application examples.
  5. 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)

Courses