PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Numerical Algorithms for HPC

01VVHYH, 01VVHNG

A.A. 2026/27

Course Language

Inglese

Degree programme(s)

Master of science-level of the Bologna process in Ingegneria Matematica - Torino

Course structure
Teaching Hours
Lezioni 40
Esercitazioni in laboratorio 20
Lecturers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Vicini Fabio   Ricercatore a tempo det. L.240/10 art.24-B MATH-05/A 30 0 0 0 1
Co-lectures
Espandi

Context
SSD CFU Activities Area context
MAT/08 6 B - Caratterizzanti Discipline matematiche, fisiche e informatiche
2026/27
Modeling complex phenomena across disciplines such as physics, engineering, and the biological and social sciences often relies on advanced numerical methods to achieve accurate representations of real-world systems. However, these approaches can be computationally demanding and time-intensive, especially when large-scale simulations are involved. To overcome these limitations, efficient parallel algorithms have been developed, delivering results comparable to their serial counterparts while significantly reducing computational cost through parallel execution. Examples of such techniques include …
Modeling complex phenomena across disciplines such as physics, engineering, and the biological sciences often relies on advanced numerical methods to achieve accurate representations of real-world systems. However, these approaches can be computationally demanding and time-intensive, particularly when large-scale simulations are involved. To address these challenges, efficient parallel algorithms have been developed that deliver results comparable to their serial counterparts while significantly reducing computational cost through parallel execution. Examples of such techniques include domain decomposition methods, parallel iterative and direct linear solvers, shared-memory and distributed-memory programming models, GPU acceleration, and mixed-precision algorithms. The course introduces the fundamental concepts of High-Performance Computing (HPC), including modern CPU and GPU architectures, performance analysis tools such as the roofline model, and strong/weak scaling metrics. Students will gain practical experience with parallel programming paradigms, including MPI, OpenMP, and GPU computing. The course also presents applications of scalable linear solvers and domain decomposition strategies in combination with numerical discretization methods such as Finite Volume and Galerkin methods.
At the end of the course, students should: - know the basic principles of ... - know the principal algorithms and structures of ... - know some specific software for ... - be able to create ... - be able to handle a ... - be able to design and run a ... Altogether, this set of knowledge and skills should allow the student to make appropriate choices about the ... for the future professional environment.
At the end of the course, students should: - know the basic principles of High-Performance Computing (HPC), including serial and parallel architectures, memory hierarchies, and CPU/GPU computing models; - know the principal programming paradigms for parallel scientific computing, including shared-memory and distributed-memory approaches based on OpenMP, MPI, and GPU programming; - know the main mathematical tools and techniques for shared-memory and distributed-memory parallel computing; - be able to create and implement parallel numerical applications for scientific and engineering problems using modern HPC techniques; - be able to handle the parallelization and optimization of computational methods, including scalable linear solvers, domain decomposition methods, and mixed-precision algorithms; - be able to design and run parallel simulations, evaluate their scalability and efficiency through strong and weak scaling analyses, and assess performance limitations using models such as the roofline model. Altogether, this set of knowledge and skills should allow the student to make appropriate choices about numerical methods, parallel programming strategies, and HPC technologies for future professional and research environments.
Basic notions about numerical methods and programming (in which language ???) are recommended. Some knowledge of numerical methods for Partial Differential equations (such as the finite element method) is helpful. However, both notions are not strictly required.
Basic knowledge of basic numerical methods (numeric linear algebra) and programming (C++/Python) is required. Familiarity with numerical methods for partial differential equations, such as the Finite Volume Method (FVM) or the Finite Element Method (FEM), is helpful. Basic understanding of computer architecture, communication network technologies, and the protocols commonly used in such networks may be beneficial. However, the latter two requirements are not mandatory.
- Introduction to High-Fidelity Solutions and ... (???h) - .... (???h) ...
- Introduction to High-Performance Computing (HPC): serial and parallel architectures; memory, CPU, and GPU performance limitations (roofline model); parallel programming concepts and performance evaluation (strong and weak scaling) (8h) - Parallel Programming: introduction to shared-memory and distributed-memory programming models, with implementation examples using MPI, OpenMP, and GPUs (8h) - Fast Linear Solvers: direct and iterative solvers for parallel computing, including parallel implementations with MPI and GPU acceleration (12h) - Domain Decomposition Techniques: introduction to numerical schemes (e.g., Finite Volume and Galerkin methods), overlapping and non-overlapping domain decomposition methods, and engineering applications such as conservation laws implemented with MPI and GPUs (20h) - Introduction to Mixed and Emulated Precision Methods: advantages and applications of mixed-precision techniques, particularly on GPUs, with practical examples such as mixed-precision iterative solvers (12h)
The course is organized as follows: - 40 hours of class lessons. This segment covers the basic concepts of ???. Students will learn how to integrate these concepts in view of the development of efficient computational tools. - 20 hours of exercises. These exercises, conducted both in the classroom and in the laboratory, involve developing codes and applying them to solve practical problems.
The course is organized as follows: - 40 hours of class lessons.Students will learn how to integrate the concepts proposed in Course topics in view of the development of efficient computational tools. - 20 hours of exercises. These exercises, conducted both in the classroom and in the laboratory, involve developing codes and applying them to solve practical problems.
Electronic material is provided by the teachers. Reference books: - ???
Electronic material is provided by the teachers. Reference books: - A. Toselli and O.B. Widlund, "Domain Decomposition Methods - Algorithms and Theory", https://doi.org/10.1007/b137868 (2005). - A. Quarteroni and A. Valli, "Domain Decomposition Methods for Partial Differential Equations", https://doi.org/10.1093/oso/9780198501787.001.0001 (1999). - G.E. Karniadakis and R.M. Kirby II, "Parallel Scientific Computing in C++ and MPI: A Seamless Approach to Parallel Algorithms and their Implementation", https://doi.org/10.1017/CBO9780511812583 (2003). - D. Göddeke, "Fast and Accurate Finite-Element Multigrid Solvers for PDE Simulations on GPU Clusters", http://dx.doi.org/10.17877/DE290R-8758 (2010). - M. Geshi, "The Art of High Performance Computing for Computational Science, Vol. 1", https://doi.org/10.1007/978-981-13-6194-4 (2019).
Slides; Dispense; Esercitazioni di laboratorio; Esercitazioni di laboratorio risolte; Strumenti di simulazione;
Lecture slides; Lecture notes; Lab exercises; Lab exercises with solutions; Simulation tools;
Modalita di esame: Prova orale obbligatoria; Elaborato progettuale in gruppo;
Exam: Compulsory oral exam; Group project;
... The oral exam consists of up to two questions on theoretical aspects and a discussion of the project. The weight of these two parts in the final grade is approximately equal. The exam lasts between 30 and 45 minutes. The evaluations are expressed out of 30, and a minimum score of 18/30 is required to pass. The highest possible grade is 30 with honors (30 lode). Concerning the theoretical questions of the exam, no reference materials are allowed. During the project discussion, students may use their project and the codes they developed for it.
Gli studenti e le studentesse con disabilita o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unita Special Needs, al fine di permettere al/la docente la declinazione piu idonea in riferimento alla specifica tipologia di esame.
Exam: Compulsory oral exam; Group project;
The oral exam consists of theoretical questions and a discussion of the project, with equal weight assigned to each part in the final grade. The exam typically lasts between 30 and 45 minutes. Grades are expressed on a 30-point scale, and a minimum score of 18/30 is required to pass. The highest possible grade is 30 cum laude (30 e lode). No reference materials are allowed during the theoretical part of the exam. During the project discussion, students may consult their project materials and the code they developed for the project.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word