[ 921COENPACK13 ] KV (*)Parallel Computing

(*) Leider ist diese Information in Deutsch nicht verfügbar.
Workload Ausbildungslevel Studienfachbereich VerantwortlicheR Semesterstunden Anbietende Uni
4,5 ECTS M1 - Master 1. Jahr Informatik Wolfgang Schreiner 3 SSt Johannes Kepler Universität Linz
Quellcurriculum Masterstudium Computer Science 2022W
Ziele (*)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.
Lehrinhalte (*)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
Beurteilungskriterien (*)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.
Lehrmethoden (*)Slide presentations with case studies on blackboard and live demonstrations on local computer respectively remote servers.
Abhaltungssprache Englisch
Literatur (*)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?
Lehrinhalte wechselnd? Nein
Sonstige Informationen (*)
Äquivalenzen (*)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)
Teilungsziffer -
Zuteilungsverfahren Direktzuteilung