Introduction to build systems and package managers in HPC

Wednesday, 5 June 2024 09:00 to Friday, 7 June 2024 18:00
TommasoGorni TommasoGorni , MichaelRedenti , MandanaSafari , FrancescoCola , OrlenysNataliTroconis
Provided as: 
Ordinary Course
Registrations closing: 
Wednesday, 22 May 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.

TommasoGorni , MichaelRedenti , MandanaSafari , FrancescoCola , OrlenysNataliTroconis

Automatizing the compilation of source codes becomes a necessity when a code base grows larger than a couple of files, but it is also a prerequisite to make the code portable and available in the form of a source package. Moreover, the development and building phases are strongly intertwined in HPC codes, with the need of managing and testing different installations at the same time (different compilers/flags, different libraries, ...). This three-day course provides an introduction to the most widely-used build systems and package managers for C/C++ and Fortran codes, both from the user's and the maintainer's point of view. After a brief reminder of command-line compilation, the course will first show how to write simple makefiles by hand to automatize the compilation and the testing phases, then how to use GNU Autotools and CMake to the same end. The last day will be devoted to Spack, a package manager specifically designed for HPC systems which allows an easy and consistent management of the installation of binaries.


By following this course the participants are expected to learn 
- The basic steps in the compilation and installation of C/C++ and Fortran source codes.
- How to write a Makefile.
- How to use and configure GNU Autotools (./configure).
- How to use and configure CMake.
- How to use and configure Spack to manage source-code packages.

Target audience:

The course is mainly meant for junior developers of scientific software written in a compiled language, willing to deepen their knowledge of the installation, testing and distribution phases of their codes.


Some programming experience in C/C++ or Fortran and feeling at ease within a Unix shell.

Intended for: 
Research Institutions

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