نظرة عامة على البرنامج
HIGH PERFORMANCE COMPUTING
Course Description
The HIGH PERFORMANCE COMPUTING course is designed to provide an introduction to the architecture of parallel processing systems and programming paradigms essential for exploiting them. Parallel programming is no longer a niche field, but a requirement for most applications, as performance gains are now fueled by hyperthreading, multicore, and cache size.
Aims and Content
Learning Outcomes
The course aims to teach the main aspects of modern, heterogeneous high-performance computing systems and basic programming skills for high-performance computing. By the end of the course, students will be able to:
- Understand why and how the compiler is one of the most important tools for HPC
- Identify program hotspots and possible strategies to improve execution time
- Modify code to vectorize it, if possible, by interacting with the compiler and profiling tools
- Parallelize simple programs using OpenMP, MPI, and CUDA
- Evaluate and discuss the performance of parallel programs
- Start thinking in parallel
Prerequisites
Basic knowledge of computer architecture and fair programming skills in C/C++ or Fortran are required.
Teaching Methods
The course will consist of lessons, practicals, and a final project.
Syllabus/Content
The course syllabus includes:
- The Processor Architecture: Performance of a pipeline system, pipeline hazards, and reducing hazards.
- Multiprocessor Computers: Purpose, limits, and types of parallel computers.
- High-Level Parallel Programming on Shared Address Space: OpenMP directives and practicals.
- Message-Passing MIMD Computers: Cooperation among processes, message-passing communication, and synchronization.
- High-Level Parallel Programming with Message-Passing: SPMD paradigm and MPI standard.
- SIMD Parallel Computers: Vector processors and modern descendants.
- GPU Programming with CUDA.
- Architecture of Large-Scale Computing Platforms.
Teachers and Exam Board
- Teacher: Daniele D'Agostino
- Exam Board:
- Daniele D'Agostino (President)
- Annalisa Barla
- Giorgio Delzanno (President Substitute)
- Nicoletta Noceti (Substitute)
Lessons
- Lessons Start: According to the calendar approved by the Degree Program Board.
- Class Schedule: Available on the Portale EasyAcademy.
Exams
Exam Description
The exam consists of a written test on key theoretical topics and the discussion of a project made individually or in a small group.
Assessment Methods
- Written Exam: Focuses on the effective acquisition of theoretical concepts (40% of the final mark).
- Project: Evaluated on the basis of achievable performance, code analysis, adopted parallelization strategies, and presentation (60% of the final mark).
Exam Schedule
- Dates and Times:
- 15/01/2026, 10:00, GENOVA
- 11/02/2026, 10:00, GENOVA
- 03/06/2026, 10:00, GENOVA
- 29/06/2026, 10:00, GENOVA
- 09/09/2026, 10:00, GENOVA
Further Information
For further details, refer to the course's AulaWeb module or contact the instructor.
