Parallel Programming

When: Winter semester 2017-18

CAMPUS #: 17ws-23895

Contacts: Prof. Paolo Bientinesi

Language: English

Office hours

  • Prof. Bientinesi: Tuesdays, 11am-1pm, by appointment.
    AICES R432 (Rogowski Building - Schinkelstrasse 2)


Knowledge of the C programming language. You are supposed to know

  • the basic datatypes; how to define and use data structures (structs)
  • how to operate on pointers and memory addresses
  • how to allocate and free dynamic memory (malloc, free)
  • how to declare and call (recursive) functions
  • how to pass arguments to functions "by value" and "by address"
  • how to use library functions; this means including headers, using the provided data structures, calling functions, ...


  • Principles of parallel performance
  • Parallel architectures
  • Patterns of parallel programming
  • Processes and threads
  • Open MP
    • Execution model
    • Work sharing
    • Loop-level parallelism
    • Synchronization
  • Message Passing Interface
    • Collective communication
    • Point-to-Point communication
    • Derived data types

Lectures & Exercises