[ 921COENPACK13 ] KV Parallel Computing

Workload Education level Study areas Responsible person Hours per week Coordinating university
4,5 ECTS M1 - Master's programme 1. year Computer Science Wolfgang Schreiner 3 hpw Johannes Kepler University Linz
Detailed information
Original study plan Master's programme Computer Science 2022W
Objectives Students are able to write programs for concurrent systems (multi-core processors and multi-processor architectures) using various parallel programming paradigms, both high-level (more application-oriented) and low-level (more hardware-oriented) ones. They understand and are able to overcome basic problems of concurrency such as data races and performance bottlenecks in order to write correct and scalable programs that are able to effectively utilize the resources of modern high-performance computing systems. Furthermore, students are able to experimentally evaluate the performance of their programs in a systematic way.
Subject High-level parallel programming models:

  • Java concurrency API
  • OpenMP
  • MPI

Low-level parallel programming models:

  • POSIX threads and C++ multi-threading API
  • Basic principles of parallel architectures
  • performance analysis
  • algorithms and concurrency.

Issues in shared memory programming:

  • data races
  • memory consistency models
  • synchronization
  • locks
  • lock-free data structures.

Issues in distributed memory programming:

  • bandwidth and latency
  • message encoding and decoding
  • point-to-point versus collective communication
  • blocking vs non-blocking communication
Criteria for evaluation Programming exercises performed on high-performance computing servers of the JKU and on private computers with multi-core processors; classroom presentations of solutions to these exercises.
Methods Slide presentations with case studies on blackboard and live demonstrations on local computer respectively remote servers.
Language English
Study material Lecture slides and public information about parallel programming APIs (Java, OpenMP, MPI, POSIX Threads, C++) available from the course page.

Additional literature:

  • Ian Foster: Designing and Building Parallel Programs.
  • Bertil Schmidt: Parallel Computing - Concepts and Practice.
  • Thomas Rauber and Gudula R√ľnger: Parallel Programming for Multicore and Cluster Systems.
  • Peter Pacheco: An Introduction to Parallel Programming.
  • Michael J. Quinn: Parallel Programming in C with with MPI and OpenMP.
  • Paul E. McKenney: Is Parallel Programming Hard, And, If So, What Can You Do About It?
Changing subject? No
Further information
Corresponding lecture is equivalent to INMIPKVPACO: KV Parallel Computing (4,5 ECTS) or
INMIPVOGRID: VO Grundlagen des Grid-Computing (3 ECTS) + INMIPUEGRID: UE Grundlagen des Grid-Computing (1,5 ECTS)
On-site course
Maximum number of participants -
Assignment procedure Direct assignment