May 14 – 15, 2014
BSC, Barcelona UPC, Campus Nord
CET timezone

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.

More specifically, the tutorial will:

  • Introduce the hybrid MPI/OmpSs parallel programming model for future exascale systems
  • Demonstrate how to use MPI/OmpSs to incrementally parallelize/optimize:
    • MPI applications on clusters of SMPs, and
    • Leverage CUDA kernels with OmpSs on clusters of GPUs

Learning Outcomes:

The students who finish this course will be able to develop benchmarks and simple applications with the MPI/OmpSs programming model to be executed in clusters and clusters of GPUs.


INTERMEDIATE: for trainees with some theoretical and practical knowledge; those who finished the beginners course

ADVANCED: for trainees able to work independently and requiring guidance for solving complex problems

  • Good knowledge of C/C++
  • Basic knowledge of CUDA/OpenCL
  • Basic knowledge of Paraver/Extrae

Material for practical sessions will be provided during the course, and it is also interesting that students can provide their own application(s) for session 4, free hands-on.

You are expected to come with your own laptop with either linux, windows or MacOS operating system.

BSC, Barcelona UPC, Campus Nord
Vertex Building, VS219
For details go to
Course Outline

Day 1

Session 1 / 9am:

Introduction to OmpSs

Session 1 / 11:30am – 1pm:

OmpSs single node programming hands-on

Lunch Break 1pm to 2pm

Session 2 / 2 pm- 3 pm:

More on OmpSs: GPU/CUDA programming

Session 2 / 3 pm- 6 pm:

OmpSs single node programming hands-on with GPUs

Day 2

Session 3/ 9am- 10 am:

Introduction  to MPI/OmpSs

Session 3/ 10am- 1 pm:

MPI/OmpSs hands-on

Lunch Break 1pm to 2pm

Session 4/ 2pm- 6 pm:

Free hands-on: Students use OmpSs environment with prepared examples, except in the free hands-on session were they can bring their own application.