15-18 September 2015
Hotel Schweizerhof, Saas-Fee
Europe/Zurich timezone

Explicitly Data-Parallel Programming with C++

17 Sep 2015, 09:45
Hotel Schweizerhof, Saas-Fee

Hotel Schweizerhof, Saas-Fee

Haltenstrasse 10 Saas-Fee
Presentation Presentations Presentations


Mr Matthias Kretz (GSI Helmholtzzentrum für Schwerionenforschung)


Computing hardware is steadily increasing the attainable operations executed per second. However, this increase is only accessible through “proper” parallelization of our software. While the multi-core/multi-thread issue has seen a lot of research and solutions in recent years, the intrinsic parallelism per CPU core (SIMD) has widely been neglected. A look at current hardware shows that our software should take SIMD execution seriously. Starting from a quick introduction to data-parallelism, I will present how this common software property can be translated to SIMD instructions and thus a considerable speedup of the software. This leads to the underlying programming problem: Our programming languages are still unable to express synchronously data- parallel (e.g. SIMD) execution. I will present the current options of the C++ committee for solving the issue. Vector types, as one of the solutions, allow explicit data-parallel programming via the type system. I will focus on SIMD programming with the Vc library, which is available as part of ROOT. The last part of the talk will cover examples of possible applications and upcoming features for the Vc 1.0 release.

Primary author

Mr Matthias Kretz (GSI Helmholtzzentrum für Schwerionenforschung)

Presentation materials