Again an important committment in the field of Education: one third of the scientific program the topical CERN School of Computing. Here you can find a description of the lectures that will be given:
Modern and performant C++
The ability to design and implement high throughput scientific applications
leveraging the features of a modern programming language is crucial. In this
lecture we focus on C++ and in particular on its latest standard, C++11.
Starting from real life and concrete examples, we review the newly introduced
semantics and constructs relevant for achieving top performance parallel
implementations. Software design principles allowing to seamlessly accommodate
such implementations are discussed. High level tools for measuring software
performance are as well introduced.
Expressing parallelism pragmatically
This lecture focuses on the problem of expressing parallelism adapting existing
scientific software and designing future applications. Design principles aiming
to the formulation of parallel programs and data processing frameworks are
presented. The concept of task oriented parallelism is introduced as well as
the difficulties of the related work partitioning. The features are explored
which the C++ language and a selection of libraries offer for concurrent
Resource protection and thread safety
A fundamental aspect of concurrent programming is the protection of thread
unsafe resources. With argumentations relying on concrete use cases, the issue
of thread safety and its possible solutions are treated. Designs aiming to
avoid contention are characterised, offering veritable patterns applicable
also in different disciplines. Different resource protection strategies are
evaluated discussing concrete examples.