- Second cycle
- 1 semester
- Honours degree in Computer Engineering or equivalent background
- Data structures
- Computer programming – both Object-Oriented Programming and Procedural Programming
- Algorithm design and analysis
1. Introduction to High Performance Computing
- All computers are parallel now!
- Large programs require HPC
- Parallel programming is hard
- Principles of HPC
Theme 1 will establish a fundamental understanding of HPC for the discussions in later themes.
2. Parallel Programming Models and Machines
- Basics of computer architecture, memory hierarchies, and their impact on performance
- Parallel programming models and machines
Theme 2 will discuss on different types of parallel programming models and machines.
3. Parallel Languages and Libraries
- Shared memory programming and OpenMP
- Message passing and MPI
- OpenCL and CUDA for GPU and FPGA
Theme 3 will discuss popular parallel/distributed languages and libraries.
4. Implementation of distributed systems
Theme 4 will include practical exercises and projects in parallel/distributed programming and simulations.
- Lectures, exercises, obligatory project assignments.
Learning outcome – Knowledge
- Have knowledge in the principles and challenges in the development of parallel and distributed systems
- Have knowledge in the design of parallel/distributed programs
Learning outcome – Skills
- Be able to apply appropriate techniques in the programming of HPC systems
Learning outcome – General competence
- Be able to discuss and communicate the possibilities and limitations in the field of HPC
- All obligatory project assignments must be graded D or better in order to get access to the exam.
- Oral exam
- Semester assignment, semester paper, project assignment and similar
- Based on the student’s understanding of topics covered in lectures, and a demostration of mandatory (individual) exercises/projects.
- Grading A-F. Grade F is a fail