15–20 Jun 2014
Europe/Zurich timezone

Session

Programming for Concurrency

18 Jun 2014, 09:00

Presentation materials

There are no materials yet.

  1. Danilo Piparo (CERN)
    18/06/2014, 09:00
    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...
    Go to contribution page
  2. Danilo Piparo (CERN)
    18/06/2014, 10:00
    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...
    Go to contribution page
  3. Danilo Piparo (CERN)
    18/06/2014, 11:45
    Simple exercises not necessarily involving programming are proposed at the beginning to make sure that the main concepts discussed in the lectures have been properly acquired. Real performance driven development of concurrent software then starts, considering small programs and the modification thereof. The power of the new semantics will be illustrated.
    Go to contribution page
  4. Danilo Piparo (CERN)
    19/06/2014, 08:30
    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...
    Go to contribution page
  5. Danilo Piparo (CERN)
    19/06/2014, 09:30
    Exercises aiming to better understand the concepts of data and task parallelism are proposed. Simple parallelisation is achieved using different programming models: pure C++11, openMP and TBB. The measurement of software performance is explored. The final exercise is a small project for additional development experience.
    Go to contribution page
  6. Danilo Piparo (CERN)
    19/06/2014, 11:00
    In these exercises the concepts behind resource protection are put to a good use. The opportunity is offered to design and develop different solutions for thread safety issues. The pre-digested solutions offered by widely known libraries and toolkits are compared. The student is also invited to test her knowledge using different programming languages.
    Go to contribution page
Building timetable...