High Perfomance Computing (2021/2022) - Departamento de Informática
Description

Knowledge and understanding goals:

  • Parallel architectures
  • Parallel programming paradigms
  • General parallel algorithm design methodologies
  • Problem-type specific parallel algorithmic strategies
  • Techniques to optimize the performance of parallel algorithms in the studied parallel architectures

Know how to:

  • Optimize sequential programs
  • Implement parallel algorithms to handle compute-intensive or data-intensive applications on GPU(s)(CUDA or OpenCL) and/or on distributed memory architectures (MPI or Spark).
  • Measure and analyze the performance of a parallel computation.

Soft-Skills:

  • Reason about and critically evaluate the algorithmic and technological alternatives available for solving a problem.
  • Design a solution for a problem a before going into the implementation phase.
  • Team work.
  • Structure and write project reports.

Syllabus

Motivation

Fundamentals of Parallel Computing

Parallel Computing

Data-Centric High Performance Computing

Parallel Algorithms (Putting it All Together)

The Future of High Performance Computing

Bibliography

As usual in HPC courses, there is no required textbook. There are several books that cover the fundamental concepts of HPC. A list follows:

GPU computing:

Data-intensive computing:

Prerequisites

Students should have knowledge about computer architecture, computer networks, and operating systems, and good programming skills. The exercises will use the C/C++ and Java programming languages.

Student work
  Hours per credit 28
  Hours per week Weeks Hours
Aulas práticas e laboratoriais   26.0
Aulas teóricas   26.0
Avaliação   4.0
Self study   50.0
Project   62.0
Total hours 168
ECTS 6.0