Skip to content


The School program is structured along two main tracks: an introduction to the basic concepts and tools for developing efficient applications and a series of hands-on presentations of parallel programming tools and methodologies.

The first provides background notions with an introduction to the use of basic tools and it is intended to constitute a stable core to be proposed, with minor modifications, each year.

The second deals in detail with specific topics that will be selected, year by year, in order to cover with a cyclic turnaround all the major aspects.

Fundamentals of Efficient Programming:

  • Modern Processor Architectures
  • Tools and Methodologies for improving performance
  • Efficient Use of Modern C++
  • Managing Memory Usage

Parallel Programming for Scientific Applications:

  • Parallel CPU programming
  • Floating-point computation
  • GPU Programming
  • Cluster Computing with MPI
Study materials:

– introduction to C++ – LINK

– online materials – LINK