Xavier Teruel 's talk

Heterogeneous Parallel Programming with OmpSs

Venue: Event date: Speaker(s): Xavier Martorell & Xavier Teruel

This tutorial will show Heterogeneous Parallel Programming using the OmpSs Programming Model. It will be based on both teaching and laboratory sessions.


OmpSs is a programming model developed at BSC that we use as a forerunner for OpenMP. Like OpenMP, it is based on compiler directives. It is the base platform where we have developed OpenMP tasking, support for dependences, priorities, task reductions, and it also includes support for heterogeneous devices.

We will introduce the OmpSs basic concepts related to task-based parallelism for the SMP cores and then quickly move to the support for heterogeneous devices. OmpSs allows to leverage existing OpenCL and CUDA kernels without the burden to have to deal with data copies to/from the devices. Data copies are just triggered automatically by the OmpSs runtime, based on the task dependence annotations.

OmpSs is currently being extended for FPGA devices, in the context of the AXIOM European Project. We will also show how the same directives are being used to outline code that can be compiled and run on FPGA devices.

The tutorial will include two laboratory sessions. We will provide student accounts to attendees in our Minotauro machine (Intel-based with NVidia GPUs), and several exercises will be provided to be completed online (cholesky, matrix multiplication, nbody, 3d-stencil, merge-sort, histogram…), and learn better the details of the OmpSs support for both the SMP and heterogeneous architectures.


External references

Follow me at:

News & Events

OpenMP F2F 2018-2

A good week in Bordeaux, France focused on closing different open topics in the specification and many of those who have been discussed during past weeks have been shaping up and they are in good condition to go through the committee’s votes.

OpenMP tasking at ISC 2018

An advanced tutorial using the tasking model of the OpenMP standard. This course includes recent addition of OpenMP 4.5, being all the lecturers part of the OpenMP language committee.


Last Face to Face meeting before the end of the project and we have report the work progress for the different work packages and several technical sessions in a one-and-a-half-day meeting in Stockholm, Sweden.

PATC (May, 2017)

The tutorial will motivate the audience on the need for portable, efficient programming models that put less pressure on program developers while still getting good performance for clusters and clusters with GPUs.

OpenMP F2F 2018-1

We have done a very good progress towards the future of the OpenMP 5.0 specification. We have discussed many issues and voted several tickets that finally have already been included in the specification (or will do in the short term).

OmpSs demos at SC 2017

Two short demos at the exhibition center showing the basic concepts of the OmpSs programming model. See you in the BSC booth (#1975).