Leonardo supercomputer at CINECA, image courtesy of CINECA
Leonardo supercomputer, image courtesy of CINECA.

Course Overview

This course provides a broad introduction to … Programming models for parallel systems: vectorial instruction, multi-threading, heterogeneous computing, GPU programming Parallel programming patterns Rewrite program to exploit parallelism Optimization: code and compiler optimization, profiling and tools Applications Discussion Forum and Projects. It is possible to use the discussion forum on the e-learning course website to post about general issues. A list of projects will be available on the e-learning course website. It is also possible to propose a new project to be discussed with the professor.

Instructor

Class Time and Location

Summer semester (February-June, 2025).
Lecture: Monday 15:30-17:30, Tuesday 9:00-11:00
Room P6, Building F3, Campus Fisciano
Campus Fisciano Map, room P6

Office Hours

Biagio Cosenza: 14:00-15:30 Mondays (office)
TA: 11:00-12:00 Tuesdays (Isislab/P6)
TA: 11:00-12:00 Fridays (Isislab)
We recommend to send an email to fix an appointemnt.

Grading

The final grade follows Italian academic grading measured in thirtieths (0-30 scale), the minimum grade is 18/30 and the maximum grade is 30/30. The final grade is made up of 50% of the written examination mark and 50% of the project mark.

HPC Hardware Access

Students can run their code on ISISLab's machines and the UNISA HPC cluster. For the projects, depending on the topic, students will have access to the following cluster infrastructures:
  • Intel Tiber IA Cloud
  • Leonardo supercomputer at CINECA
  • Galileo supercomputer at CINECA
We thanks Intel and CINECA for their sponsor and support!
Lecture Date Title Download Code Reading
124/02/2025 Course info [slides]
24/02/2025 Introduction to HPC [slides] [code]
2 25/02/2025A View from the Top: Optimizing Matrix Multiplication [slides]
25/02/2025Exercise set 1: Matrix Multiplication [assignment]
303/03/2025 Multicore: Architecture, OpenMP fundamentals [pdf] [code]
4 04/03/2025 Multicore: Loop parallelism [slides]
510/03/2025 Multicore: Task
611/03/2025 Multicore: NUMA
11/03/2025 Exercise set 2: Multicore
717/03/2025 Vectorization: Architectural Considerations and SIMD fundamentals in AVX2
818/04/2025 Vectorization
924/04/2025 Vectorization
1025/03/2025 Autovectorization and programming models for SIMD.
Vector Length Agnostic Programming for RVV and SVE.
25/03/2025 Exercise set 3: Vectorization
1131/03/2025 Introduction to GPU Architecture.
Introduction to SYCL.
31/03/2025 Debugging SYCL with MemSanitizer.
1201/04/2025 GPU Threading Model. SYCL: ND-range, work and subgrop, group algorithms.
01/04/2025 Profiling with Intel VTune and NVIDIA Nsight.
1307/04/2025 GPU Memory Model. SYCL: Local memory in SYCL. Matrix multiplication in SYCL.
1408/04/2025 GPU Optimization: Reduction and prefix sum. SYCL Optimizations showcase.
08/04/2025 Exercise set 4: GPU Programming in SYCL
1514/04/2025 GPU programming models beyond SYCL:
OpenCL, vendor-based (CUDA, HIP, LevelZero), OpenMP acceleration.
Performance Portability Metrics
High-level frameworks: Celerity, Kokkos, RAJA, Legion
[Celerity] [Kokkos] [Legion]
[Pennycook's PP metric]
14/04/2025 Exercise set 5: CUDA to SYCL Porting
16 15/04/2025 Project presentation and assignment
21/04/2025 Easter holiday break! No lecture!
1715/04/2025 Roofline Model
01/04/2025 Roofline with Intel Advisor
1828/04/2025 Benchmarking
1929/04/2025 Compilers and HPC
2005/05/2025 Scheduling
2106/05/2025 What in a Loop? An Overview of Loop Optimizations
06/05/2025 Exercise set 6: Loop optimization
2212/05/2025 Energy Efficient Computing
2313/05/2025 HPC for AI and oneDNN.
Approximate Computing.
2419/05/2025 Project work with TA
2520/05/2025 Project work with TA
26 26/05/2025 Project Review

FAQ

Is the course given in English?
Yes. You can, however, fell free to write emails or ask questions in Italian, if you feel more condident. You can as well use any language spoken by the instructors (Italian, English, German, Spanish, Persian).
Can I take this course if I am not in the cloud curriculum?
Yes. The course can be choosen as an optional one from master students enrolled in other curricula.
Can I audit or sit in?
In general we are very open to sitting-in guests. Out of courtesy, we would appreciate that you first email us or talk to the instructor to be added to the class list.
Is there a textbook for this course?
The instructor provides course notes, publications and code that cover the material thoroughly. However, we do recommend some textbooks for this course:
  • openmp.
  • patterns
  • sycl
Can I work in groups for the Project?
Yes, in groups of up to three people.
What is the best way to reach the course staff?
For general questions please use the forum on the elearning platform, so that other students may benefit from your questions and our answers. If you have a personal matter, email us at the class instructors.
Can I combine the Project with another course?
Yes, you may. There are a couple of courses concurrently offered with HPC in the cloud curriculum, such as XXX and XXX. Speak to the instructors if you want to combine your final project with another course.

HPC Project Hall of Fame

This is a list of the best student projects from previous year course.
Semester Project Title Students Report Code
2024
2023
2022