C++ is a very powerful programming language, used worldwide to develop complex and performance critical applications. It is then an important candidate for developing HPC applications. Mastering the power of the language requires substantial effort but pays off as projects scale up in size and complexity, and, as the hardware architectures become more and more diverse and complex, C++ allows the implementation of the proper abstractions to make applications sustainable in the future. Specifically, C++ allows the development of type safe, flexible and portable functionalities, with no runtime overhead. 

The course aims at providing the fundamental tools for effective C++ programming in the context of high-performance computing. The tools include generic programming techniques, API development, and specific recent C++ constructs. Starting from a basic knowledge of C++, the attendee will be able to start using C++ language to engineer durable abstractions to develop and optimize applications. Example usage of modern C++ concepts and features taken from scientific applications used by the HPC community will be discussed, giving the attendees the opportunity to see the presented tools in action in real world cases. 

Pre-requisites: The attendee is expected to be familiar with C++ syntax and the object-oriented features of the language. Basic familiarity with templates is not expected but encouraged. 

Instructors:

  • Mikael Simberg, HPC Application Engineer (CSCS)
  • Hannes Vogt, Software Engineer (CSCS)
  • Alberto Invernizzi, Software Engineer (CSCS)
  • Peter Kardos, Scientific Programmer (C2SM)
  • Fawzi Roberto Mohamed, Senior Software Engineer (CSCS)
  • Fabian Boesch, Software Engineer (CSCS)
  • John Biddiscombe, Senior HPC Application Engineer (CSCS) 

Course Fee: CHF 240.00 

Deadline for registration: Sunday, September 24, 2023.

Further details and link to the registration form can be found in the CSCS Events webpage > 

We look forward to welcoming you at CSCS!