You are in: Home » Teaching » Intro Par. Prog. 2018-2019

An Introduction to Parallel Programming
A course for PhD students, Department of Computer Science and Engineering, University of Bologna, 2018/2019

[ News | About the course | Teaching material]


18/02/2019 New
The course schedule has been changed to avoid overlaps with another PhD course.
Page created.

About the course

Multi- and many-core processors, once found on expensive supercomputers, are now ubiquitous; however, parallel programming paradigms must be used to benefit from the processing power of multi- and many-core processors, but those paradigms are little known to the majority of programmers. In this course we introduce the basic techniques for programming shared-memory multi-core processors (CPUs) and graphics processing units (GPUs). For the former we will use OpenMP/C, i.e., the OpenMP extensions to the C programming language. For the latter, we will introduce programming general-purpose graphics processing units (GPGPUs) using CUDA/C, a proprietary extension of the C programming language developed by NVidia corp. for GPGPU programming.


  1. Introduction to parallel programming
    • Parallel architectures; Flynn's taxonomy
    • Programming models for parallel applications
    • Speedup and scalability of parallel programs
  2. OpenMP programming
    • Basic concepts
    • The #pragma omp parallel and #pragma omp for directives
    • Variables scoping
    • OpenMP constructs for reduction and synchronization
  3. CUDA/C programming
    • Basic concepts: kernels, threads, thread blocks
    • CUDA memory hierarchy


Teaching material

Sample code contains the programs and other sample code discussed during the lectures.


All lectures will take place at DISI, Mura Anteo Zamboni 7, Bologna.

2019-01-25, 11:00, Aula seminari 2
Additional material
2019-01-30, 11:00, Aula Busi
Parallel Programming Patterns
2019-02-06, 11:00, Aula Busi
Shared-Memory Programming with OpenMP
Additional material
2019-02-13, 11:00, Aula Busi
CUDA Programming
This page validates as XHTML 1.0 strict This page validates as CSS Check the accessibility of this page with WAVE
This page was last updated on January 23 2019 informativa sulla privacy