Event Detail


Sorry, the registration period for this event is over.

2016 Advanced C++ for HPC


CSCS is pleased to announce its upcoming workshop Advanced C++ for HPC to be held from Monday, September 26 to Wednesday, September 28, 2016 at CSCS in Lugano, Switzerland.

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 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. 


The attendee will learn the principles of modern C++ programming for producing efficient and portable code.


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


Attendees are required to bring their own laptops. To carry out exercises the attendees will have to have access to the following programs: git, cmake, and a recent C++ compiler (C++14 compliant is a plus). Some examples require the Boost libraries. CSCS will provide access to computing resources with the above mentioned resources if necessary.


10:00 - 12:00 Introduction
12:00 - 13:00 Lunch Break
13:00 - 15:00 Name Resolution & Initialization
15:00 - 15:30 Coffee Break
15:30 - 17:00 Templates

08:30 - 10:00 Move Semantics
10:00 - 10:30 Coffee Break
10:30 - 12:00

  • Template MetaProgramming
  • Generic Programming
  • Static Initialization

12:00 - 13:00 Lunch Break
13:00 - 15:00 Smart Pointers
15:00 - 15:30 Coffee Break
15:30 - 17:00 Exercises

08:30 - 10:00  Lambdas and Functions
10:00 - 10:30 Coffee Break
10:30 - 12:00 The constexpr Keyword
12:00 - 13:00 Lunch Break
13:00 - 15:00

  • Patterns
  • Threads

15:00 - 15:30 Coffee Break
15:30 - 17:00 STL


  • Mauro Bianco, Swiss National Supercomputing Centre (CSCS)
  • Christopher Bignamini, Swiss National Supercomputing Centre (CSCS)
  • Paolo Crosetto, ETH Zurich

Materials presented during the workshop may be accessed here.

Logistic Details
The course starts at 10:00 on Monday, September 26, 2016.

The registration fee is CHF 240, which includes lunches and coffee breaks throughout the event.

Please note that all registrations are final and fees cannot be reimbursed.

Deadline for registration: Friday, September 16, 2016

Kindly note that no parking space is available at the Swiss National Supercomputing Centre. The closest bus stop to the centre is Lugano, Stadio. From Lugano railway station, you should take bus number 4.

You are encouraged to travel by public transportation or to use the Park & Ride Resega parking lot, within five minutes walk from CSCS.

We look forward to welcoming you at CSCS!

Back to listing