Select Academic Year:     2017/2018 2018/2019 2019/2020 2020/2021 2021/2022 2022/2023
First Semester 
Teaching style
Lingua Insegnamento

Informazioni aggiuntive

Course Curriculum CFU Length(h)
[60/65]  MATHEMATICS [65/20 - Ord. 2012]  Applicativo 6 48


1. Knowledge and understanding.
The objective of this course, aimed at students of the Master's degree course in Mathematics, is to enable them to acquire sufficient mastery of the entire computational flow for the numerical analysis of applicative problems of scientific, technological and industrial interest.
Since the focus is on large-scale problems, we particularly address parallel computing and its main paradigms, in view of the specifications of most popular scientific hardware platforms.
2. Ability to apply knowledge and understanding.
Ability to identify appropriate mathematical models and apply them to problem solving in real world physics. Capability to define the most suitable parallel approach (depending both on the problem at hand and the hardware platform at disposal), as well as the practical strategy to implement a high performance solver and run it on a parallel cluster.
3. Autonomy of judgement.
After the course, students will be able to evaluate the feasibility of the numerical analysis of an application problem according to the available computing resources, selecting the most appropriate methodology for the problem under study. They will enjoy the capability to define the specifications of a "minimal" hardware platform able to perform the numerical analysis of the problem of interest.
4. Communication skills.
Students will be able to illustrate the main problems and reasonable expectations inherent in the numerical simulation of a precise technical or industrial application, using - depending on the situation - technical or informative terms, necessary for example in interaction with stakeholders from different sectors. They will be able to perform simple feasibility studies concerning a given computational analysis.
5. Learning ability.
The course will provide students with the ability to benefit from specific technical literature, stimulating to attend the scientific community in the field and accustoming to teamwork with experts from other disciplines. The knowledge of parallel programming fundamentals will enable the students to study and understand innovative message-passing schemes based on either OpenMP or MPI and possibly adapt such solutions to their HPC solvers or other scientific and technical parallel applications.


1. Knowledge. A good knowledge of the fundamentals of linear algebra, mathematical analysis and general physics is required. It is advisable to have followed a basic course of numerical analysis, in which the fundamental algorithms, both direct and iterative, for the resolution of linear systems were treated. Students also need the elementary knowledge of a high-level compiled language optimized for scientific computing (preferably C, otherwise Fortran 90). Knowledge of scientific English is highly desirable.
2. Skills and competences. Students will be expected to be able to apply the methodologies learned during the Bachelor program. In particular: calculation of derivatives and integrals, manipulation of matrix and vector expressions, programming of algorithms in one of the languages of the previous point.
3. Preparatory courses. No preparatory courses are required.


1. Numerical simulation as a decision support tool (4 hours). Understanding the role of numerical simulation and its potential in the analysis of application problems of scientific, technological and industrial interest, also by means of examples. Knowledge of the historical evolution of the discipline and of the landscape of recent computational technology. Definition of the role of the mathematician as "computational scientist". Awareness of the importance of the multidisciplinary approach.
2. The basic mathematical tools for computational analysis (18 hours). Achieving an appropriate level of mathematical technology for the complete flow of numerical analysis of an application problem that can be formulated in terms of a linear partial differential equation (PDE). Classification of the fundamental PDEs of mathematical physics, familiarity with 3D grid-generation techniques through public domain or proprietary tools, mastery of methods for spatio-temporal discretization, knowledge of communication protocols on distributed-memory machines, ability to interface with libraries for parallel linear algebra and optimized I/O, experience of use of tools for visualization and post-processing.
3. Design and implementation of an optimized workflow for numerical simulation (18 hours).
Analysis of computational complexity and cost-effectiveness as a function of available computing resources, design and generation of the computational grid, identification of the optimal parallel computing algorithm, definition of I/O requirements and post-processing tools.
4. Laboratory (12 hours).
Implementation of applications for numerical simulation of medium-scale problems, inherent to typical issues of the applied sciences. Advanced programming using one of the languages specified in the "Prerequisites" and optimized implementation of parallel solvers.

Teaching Methods

The course will consist of 40 hours of standard lectures (equivalent to 5 credits) plus 3 laboratories of 4 hours each (total 12 hours, 1 credit).
A few times, students will be asked to bring their own PC (one every 2-3 students) to execute the procedure illustrated from the teacher on his PC.
Computer laboratory classes will be preferably carried on students' PC (at least one each 2-3 persons), equipped with Linux OS, GCC compiler suite and other scientific software indicated from the teacher. Should this solution be unfeasible, students will use the PCs of one of the University laboratories.

Verification of learning

The effective gain of the expected expertise will be tested by means of different methods. First, the outcome of the three labs will be used as an index of the mastery of ideas and concepts illustrated during the lectures, along with the ability to adapt such knowledge to low/medium difficulty applications. During the labs, the teacher will also evaluate each participant's attitude to collaborate with coworkers to develop solution to novel problems (or, at least, to problems which have been only partially discussed during the lectures) .
Before the final exam the students will perform, working in groups of 2-3 persons, a full numerical simulation of a large scale application, including the implementation of a parallel code and its run and assessment on the CRS4 computer cluster: a detailed report on such study will be delivered before the exam. This document will be the base for the following oral discussion during which, starting from the practical steps of the numerical simulation, some of the major ideas illustrated during the lectures will be debated.


1) S. Seatzu, C. Van der Mee, P. Contu. "Matematica Applicata - Un secondo corso", SIMAI e-Lecture Notes, 2017, http://cab.unime.it/journals/index.php/lecture/article/view/1663/0

2) A. Quarteroni, A. Valli. "Numerical Approximation of Partial Differential Equations", Springer-Verlag Berlin Heidelberg, 1994

3) W. Gropp, E. Lusk and A. Skjellum. "Using MPI, Third Edition",
The MIT Press, Cambridge (USA), London (UK), 2014

4) B. Chapman, G. Jost and R. van der Pas. "Using OpenMP", The MIT Press, Cambridge (USA), London (UK), 2008

5) notes written and distributed from the teacher (PFD format)

6) manuals of software used during the course (e.g; GMSH, Metis, PlotMTV, etc)

Please note:
a) for non Italian speakers, reference 1 can be replaced by an introductory textbook on numerical mathematics
b) references 4 and 5 may be replaced by similar textbooks/tutorials which can be found on the Web

More Information

During the lectures the teacher will distribute notes prepared by himself (PDF format), and written HowTos with partial suggestion about the workflow of numerical simulations to be performed in the labs (however, such documents will require a significant contribution work from the students).
Last, the teacher will highlight a few among the most significant critical contributions in the recent literature, to trigger reflection around HPC issues and new trends (e.g. : "HPC is dying, and MPI is killing it" by J. Dursi)

More information on the rationale behind the course and its contents are available in this document

Questionnaire and social

Share on:
Impostazioni cookie