SFT contributed to the 2013 CERN School of computing with a series of lectures about parallelism and software design in the multi core era.
Here you can find a short description of the lectures provided by the group:
Physics and Computing Challenges to Experiment Software
Even though the miniaturization of transistors on chips continues like predicted by Moore's law, computer hardware starts to face scaling issues, so-called performance 'walls'. Probably, the best known is the 'power wall', which limits clock frequencies. Amongst others, a way of increasing processor performance remains now to integrate many cores in the same chip. At the same time, the upcoming LHC upgrade will increase the required CPU power drastically. Both problems challenge the current way of software design in high energy physics (HEP). Developers in high energy physics are forced to re-think their ways of software design and need to move to massively parallel applications. This lecture will explain the current HEP software design, the hardware and physics issues that need to be tackled, and possible approaches to achieve the required level of parallelization.
Concurrent Programming in Action I
This and the following lecture will explain the concepts behind various parallelization methodologies.
First, a theoretical introduction into threads, thread-safety and concurrent data access will be given. As the new C++ standard (C++11) now provides build-in support for parallel programming, the new features of this standard will be shown. Finally, concrete solutions for the theoretical problems will be discussed.
Concurrent Programming in Action II
The focus of this lecture lies in concurrent programming based on the 'task model', using TBB as implementation library. There will be a deeper look into concurrent data access and lock and lock-free data formats. Using the learned concepts, we will look again at the data challenges from lecture 1 and see, how a future-proof software design might look like.