October 23, 2019 - by CSCS
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, specific C++-11/14/17 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.