Lecture Distributed and Parallel Programming


VAK 04IN2052 / 432052
Category: Lecture+Lesson, 4 SWS
Master Course
ECTS: 6, Sommer Semester
University of Koblenz-Landau
Lecturer: PD Dr. Stefan Bosse

Learning content

  1. Introduction of multiprocess models with process algebra and process flow diagrams based on Hoare's CSP model
  2. Expansion of the CSP model with competition and shared resources; conflict resolution
  3. Introduction of parallels and distributed programming languages ​​(OCCAM, Functional Programming, Multi-threading, MPI, JavaScript)
  4. Synchronization and inter-process communication; Errors like deadlocks and starvation; Properties of parallel and distributed systems
  5. Synchronization Objects and their application in Programming {Mutex, Semaphore, Monitor, Event, Queue, Barrier, Channel}
  6. Computer Architectures for Parallel and Distributed Systems (MultiCore, GPU, Cluster)
  7. Possibilities of parallelization and distribution of common algorithms and programs
  8. Formal foundations of parallel systems; metrics; efficiency; scaling
  9. Election, Leader, consensus algorithms and group communication

Goals / competences

The students acquire / win / learn

  1. Understanding the basic principles and architectures of distributed (VS) and parallel systems (PS) and the ability to transfer to technical systems
  2. Understanding and ability of programmatic application of synchronization and communication in VS and PS
  3. Understanding the problems and operation of parallel systems versus sequential systems (efficiency, blocking, scaling, resource requirements)
  4. Practical knowledge of programming PS and VS using programming exercises with JavaScript and node.js
  5. Insights into the limits and possibilities of parallelization and distribution and the ability to develop efficient systems