Debugging and Optimization of Scientific Applications

Wednesday, 13 March 2024 09:00 to Friday, 15 March 2024 18:00
Laura Bellentani LauraBellentani , AndrewEmerson , DiegoMolinari , FabioAffinito , ChiaraLatini , SergioOrlandini , FedericoTesser
Provided as: 
Ordinary Course
Registrations closing: 
Monday, 26 February 2024 at 09:00

The course is FREE of charge, 

It will be held EXCLUSIVELY IN PRESENCE (No Streaming Available) and will be held in ENGLISH language. 

Laura Bellentani
LauraBellentani , AndrewEmerson , DiegoMolinari , FabioAffinito , ChiaraLatini , SergioOrlandini , FedericoTesser

The common approach to the art of programming from the point of view of a scientist only rarely permits full exploitation of computing resources to achieve optimal results in terms of performance. The basic knowledge of how a computer machine really works allows even a naif programmer to better write his own code and eventually to optimize properly any kind of scientific program. This knowledge is way more important in the field of High-Performance Computing, where the correct exploitation of modern architectures is crucial to the achievement of scientific results.

This code is addressed to C and Fortran programmers that, even without notions of computer science, have the need to learn tricks and techniques for quick debugging and optimization of codes, without rewriting these from scratch. This course is aimed to guide the user in software performance analysis and improvement, with a special focus on tools used in the HPC world. We will present profilers and debuggers to help programmers identify and resolve bottlenecks on heterogenous architectures (CPU and GPU). Typical techniques of optimization (cache reuse, unrolling, inlining, vectorization) will be presented, together with the use of compiler flags on different architectures and compilers.


By the end of the course the student will be able to:

  • manage efficiently the computer memory
  • understand and use efficiently compilers and compiler options
  • design a debugging strategy based on dedicated tools
  • use tools to profile programs and measure their performance
  • optimize programs

Target audience: 

Researchers and programmers interested in quick and efficient debugging, and a knowledge of fundamental concepts of optimization. This course is particularly suitable for people approaching for the first time the issues of computer programming in the framework of scientific calculations.


Knowledge of Fortran or C/C++. Elementary notions of Linux/Unix.


Intended for: 
Research Institutions
Tempo stimato per la fruizione in modalità e-learning: 
3 gg
Files e allegati: 

Next courses

Non sono previste edizioni di questo corso.

Any question?

For HPC and computer graphics courses, write to


Cineca is a non profit Consortium, made up of 102 Italian national institutions: Universities, Italian Research Institutions and the Italian Ministries of Universities and Education.

Today it is the largest Italian computing centre, one of the most important worldwide. With more seven hundred employees, it operates in the technological transfer sector through high performance scientific computing, the management and development of networks and web based services, and the development of complex information systems for treating large amounts of data.

It develops advanced Information Technology applications and services, acting like a trait-d'union between the academic world, the sphere of pure research and the world of industry and Public Administration. .

Visit the Cineca website