Scientific program

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.

The basics of efficient programming:

  • Modern processor architectures
  • Efficient floating-point computation
  • Tools and methodologies for improved performance
  • Efficient exploitation of modern C++
  • Managing memory usage

Parallel programming for scientific applications:

  • Heterogeneous architectures
  • Threading Building Blocks programming
  • Effective vectorization
  • GP-GPU programming with CUDA
  • Cluster computing with MPI