Programming Principles of Distributed Systems
Content
This seminar covers emerging topics in parallel and distributed computing. The scope spans from tightly coupled high performance computing systems to loosely coupled cloud and edge computing systems. Special emphasis is placed on advanced system architectures with heterogeneous processor and memory technologies.
During the seminar, students will work together in a small group to reproduce the results of a previously published research paper from the above mentioned scientific domain. Relevant publications must have been peer-reviewed by a major conference or in a journal and feature an open source codebase (see the literature below for examples of representative papers). To build/run and produce the results of the paper, both local and remote resources can be used, which are provided by the seminar lecturer as needed. Optionally the students are even capable to improve or optimize the proposed solution in the chosen paper.
We are planning to send students who have demonstrated outstanding quality and dedication to a European Reproducibility Challenge if sufficient interest is expressed.
Learning Objectives
There will be seminars with all participants over the course of the semester to discuss general issues and progress but also more in-depth discussions with individual participants or groups covering similar topics as needed. Students will learn to understand and analyse scientific research papers and link them to related topics. Furthermore will the students learn how to technically reproduce scienific results and and derive new insights from them.
Knowledge Requirements
There are no formal requirements for participation in the course. Knowledge of the fundamental principles of computer architecture, concurency and network programming is, however, advantageous.