HiPerCH 14 - Module 2

HiPerCH 14 - Module 2

Aspects of modern C++ for HPC


 

Content

Keywords: Interface design, SOLID principles, Move semantics, RAII, Smart pointers, STL containers, Iterators, STL algorithms, Lambda expressions

Starting with the C++11 standard, the way to program C++ applications has evolved dramatically, enabling to write more maintainable and performant software for HPC. Researchers and code developers at univerities often cannot afford to explore the most recent developments of the C++ programming language.

In this course we provide a primer to HPC-related aspects of modern C++ such as ...

  • ... modern class design (including move semantics, RAII, and smart pointers),
  • ... leveraging recent advances of the STL, in particular algorithms.

Additionally, we will discuss good practices from modern software design such as the SOLID principles.

We expect participants to be familiar with basic C++ (Writing classes, syntax, manual memory management), build systems such as GNU Make, and version control using Git.


Agenda

  • 09:00-12:00 Morning session
    • Classes
      • What are interfaces?
      • SOLID principles (quick overview)
      • Ctors, special member functions
      • Move semantics, RAII
      • Inheritance
      • Back to SOLID: In-depth
    • Ownership semantics: Smart pointers
  • 12:00-13:00 Lunch Break
     
  • 13:00-17:00 Afternoon session
    • ​​STL containers
    • Iterators
      • Range-based for loops
    • STL algorithms
    • Lambda expressions
    • Templates

Further breaks as required


Trainer(s)

  • Dr.Marcel Giar (HKHLR)
  • Dr. Christian Iwainsky (HKHLR)

 

 

Participating Universities