CSCS
02.10.2017-04.10.2017
2017 Advanced C++ for HPC
CSCS is pleased to announce its upcoming workshop Advanced C++ for HPC to be held from Monday, October 2 to Wednesday, October 4, 2017 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.
Objective
The attendee will learn the principles of modern C++ programming for producing efficient and portable code.
Prerequisites
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.
Requirements
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.
Agenda
Monday
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
Tuesday
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
Wednesday
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
Instructors
- Mauro Bianco, Swiss National Supercomputing Centre (CSCS)
- Christopher Bignamini, Swiss National Supercomputing Centre (CSCS)
Materials presented during the workshop may be accessed here.
Logistic Details
The course starts at 10:00 on Monday, October 2, 2017.
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 22, 2017
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!