Programming paradigms for GPU devices

Monday, 28 October 2019 (All day) to Wednesday, 30 October 2019 (All day)


Registration will open about three months before the course/school starts and will normally close 5 days before.
Please note that even if in the box above it says registration closed it might mean simply that registration hasnt yet been opened.
In this case you will be able to apply at a later date.

This course will be held in Italian.

Registration will open about three months before the course/school starts.

The course is canceled due to technical problems.

Coordinating teacher: L. Ferraro
Teachers: S. Orlandini, L. Ferraro


This course gives an overview of the most relevant GPGPU computing techniques to accelerate computationally demanding tasks on HPC heterogeneous architectures based on GPUs.

The course will start with an architectural overview of modern GPU based heterogeneous architectures, focusing on its computing power versus data movement needs. The course will cover both a high level (pragma-based) programming approach with OpenACC for a fast porting startup, and lower level approaches based on nVIDIA CUDA and OpenCL programming languages for finer grained computational intensive tasks. A particular attention will be given on performance tuning and techniques to overcome common data movement bottlenecks and patterns.


Overview of architectural trends of GPUs in HPC. GPGPU parallel programming in heterogeneous architectures. Basis of OpenACC, CUDA and OpenCL programming.


By the end of the course, students will be able to:

  • understand the strengths and weaknesses of GPUs as accelerators
  • program GPU accelerated applications using both higher and lower level programming approaches
  • overcome problems and bottlenecks regarding data movement between host and device memories
  • make best use of independent execution queues for concurrent computing/data-movement operations

Target audience: 

Researchers and programmers interested in porting scientific applications or use efficient post-process and data-analysis techniques in modern heterogeneous HPC architectures.


A basic knowledge of C or Fortran is mandatory. Programming and Linux or Unix. A basic knowledge of any parallel programming technique/paradigm is recommended.


Research Institutions

Next courses

Any question?

For HPC and computer graphics courses, write to


Cineca is a non profit Consortium, made up of 70 Italian universities, 5 Italian Research Institutions and the Italian Ministry of Education.

Today it is the largest Italian computing centre, one of the most important worldwide. With more seven hundred employees, it operates in the technological transfer sector through high performance scientific computing, the management and development of networks and web based services, and the development of complex information systems for treating large amounts of data.

It develops advanced Information Technology applications and services, acting like a trait-d'union between the academic world, the sphere of pure research and the world of industry and Public Administration. .

Visit the Cineca website