Parallel and Distributed Algorithms

Faculty

Faculty of Engineering and Computer Science

Version

Version 1 of 09.02.2026.

Module identifier

11M1220

Module level

Master

Language of instruction

German

ECTS credit points and grading

5.0

Module frequency

only winter term

Duration

1 semester

 

 

Brief description

Parallel and distributed algorithms are used in many areas where large amounts of data need to be processed or where high computing power is required. Some examples are:

  • Scientific simulations: Parallel algorithms are often used in science to perform complex simulations, e.g. in physics, chemistry, biology or geology. Such simulations often require the processing of large amounts of data and the solution of complex equations that can be distributed across multiple processors.
  • Image and signal processing: Parallel algorithms are also used in image and signal processing, e.g. to compress, encrypt or analyse images. Such applications often require the processing of large amounts of data in real time, which is only possible with parallel algorithms.
  • Database applications: Parallel algorithms can also be used in database applications, e.g. to quickly search or sort large amounts of data. Such applications often require the processing of large amounts of data in a short time, which is only possible with parallel algorithms.
  • Artificial intelligence and machine learning: Parallel algorithms are also used in artificial intelligence and machine learning, for example to train neural networks or recognise patterns in data. Such applications often require the processing of large amounts of data and the solution of complex optimisation problems, which can be distributed across multiple processors.

Distributed algorithms are often used in applications that are distributed across multiple computers or networks. Some examples are:

  • Cloud computing: Distributed algorithms are often used in cloud computing applications, for example to store, process or analyse data. Such applications often require the cooperation of several computers or servers connected to each other via a network.
  • Internet of Things: Distributed algorithms are also used in the Internet of Things, for example to collect, process or analyse sensor data. Such applications often require the cooperation of several devices or sensors connected to each other via a network.
  • E-commerce: Distributed algorithms can also be used in e-commerce applications, for example to process orders or analyse customer profiles. Such applications often require the cooperation of several servers or databases connected to each other via a network.

Teaching and learning outcomes

  1. Introduction
  2. Fundamentals
  3. Algorithms
  4. Programming parallel algorithms
  5. Selected topics in parallel algorithms

Overall workload

The total workload for the module is 150 hours (see also "ECTS credit points and grading").

Teaching and learning methods
Lecturer based learning
Workload hoursType of teachingMedia implementationConcretization
15LecturePresence-
15SeminarPresence-
15Learning in groups / Coaching of groupsPresence-
Lecturer independent learning
Workload hoursType of teachingMedia implementationConcretization
25Preparation/follow-up for course work-
70Creation of examinations-
10Study of literature-
Graded examination
  • Project Report, written or
  • Written examination
Ungraded exam
  • Field work / Experimental work
Recommended prior knowledge

Classic algorithms and data structures

Knowledge deepening

Students at Osnabrück University of Applied Sciences who have successfully completed this module will be familiar with key parallel and distributed algorithms. They will be able to design parallel and distributed algorithms based on typical parallel computer architectures. Students will acquire detailed knowledge of the current state of research in a specific topic.

Literature

  1. Uelschen, Michael: Software Engineering Paralleler Systeme, Springer, 2019
  2. Robey, Robert und Yuliana Zamora: Parallel and High Performance Computing, Manning, 2020
  3. Kumar, Vipin; Grama, Ananth: Introduction to Parallel Computing, Pearson Higher Education 2003
  4. Breshears, Clay: The Art of Concurrency, O'Reilly, 2009
  5. Bengel, Günther; Baun, Christian; Kunze, Marcel; Stucky, Karl-Uwe: Masterkurs Parallele und Verteilte Systeme, Vieweg+Teubner, 2015
  6. Herlihy, Maurice; Shavit, Nir: The Art of Multiprocessor Programming, Morgan Kaufmann, 2012
  7. McCool et al: Structured Parallel Programming: Patterns for Efficient Computation, Morgan Kaufmann, 2012

Applicability in study programs

  • Computer Science
    • Computer Science M.Sc. (01.09.2025)

  • Mechatronic Systems Engineering
    • Mechatronic Systems Engineering M.Sc. (01.09.2025)

    Person responsible for the module
    • Uelschen, Michael
    Teachers
    • Morisse, Karsten
    • Uelschen, Michael
    • Thiesing, Frank