Modern C++, with its support for procedural, objected oriented, generic and functional programming styles, offers many powerful abstraction mechanisms to express complexity at a high level while remaining very efficient. It is therefore the language of choice for many scientific projects. However, achieving high performance on contemporary computer hardware, with many levels of parallelism, requires understanding C++ code from a more performance centric viewpoint.
In this course, the participants will learn how to write C++ programs which better utilize typical HPC hardware resources of the present day. The course is geared towards scientists and engineers, who are already familiar with C++14, and wish to develop maintainable and fast applications. They will learn to identify and avoid performance degrading characteristics, such as unnecessary memory operations, branch mispredictions, and unintentionally strong ordering assumptions. Two powerful open source libraries to help write structured parallel applications will also be introduced:
- Intel (R) Threading Building Blocks
- NVIDIA Thrust
Prerequisites: Good working knowledge of C++, especially the C++14 standard.
Please check with these questions whether your C++ knowlegde fulfills the requirements.
Registrations are only considered until 25 May 2018 due to available space, the maximal number of participants is limited. Applicants will be notified, whether they are accepted for participitation.
Instructors: Dr. Sandipan Mohanty, JSC
For any questions concerning the course please send an e-mail to firstname.lastname@example.org
Accomodation in Jülich:
Participants are responsible for booking their own hotel accommodation.
Hotel suggestions can be found on the webpage "Travel information and access to Jülich Supercomputing Centre" at JSC.