Table of Contents

Distributed and Parallel Programming (CS3DP19)

The official module description. Additional information to this page is provided in RISIS and your timetable.

The module is taught online due to COVID-19, I make the lecture videos available on YouTube as well.

Summary module description

This module introduces concepts, principles, tools, techniques, and algorithms for distributed systems and parallel computing, and examines the deployment of relevant applications in the Cloud, big data analytics, and massive-parallel environment. In this context, this module covers the topic ranging from hardware and software architectures and algorithms in the development of distributed systems, MapReduce program paradigm and Hadoop ecosystems, and in-memory and stream computing tools such as Spark, Storm, and Flink; to parallel programming paradigms for relevant hardware and software applications, such as OpenMP and MPI, and massive parallelism provided by GPUs. Talks from academia and industry will be incorporated in teaching for value-adding in learning.

Aims

The module provides students with fundamentals of distributed systems and parallel computing and state-of-the-art tools that enable students to understand the concepts and principles underpinning distributed systems and utilize industry-standard tools. Students are then prepared to specialize further in the field of distributed systems and parallel computing, e.g., in big data analytics or as a scientific programmer.

This module also encourages students to develop a set of professional skills, such as creativity, software design and development, teamwork, self-reflection, and global outlook.

Content

Slides