About

Due to the massive volume of data, many modern services are nowadays executed in a distributed fashion by resorting to MapReduce, Hadoop, Flume, Spark and similar (so-called) MPC frameworks. But how can one exploit the capabilities of MPC frameworks to design efficient algorithms? This course focuses on answering this question in the context of some basic combinatorial optimization problems, including maximum matching, PageRank, minimum vertex cover, maximal independent set, connected components, and clustering algorithms.

The in-class discussion will mainly focus on theoretical aspects of solving tasks in MPC, occasionally touching on practical relevance as well. The goal of this course is to equip students with tools and techniques that led to state-of-the-art results for the aforementioned problems.

Grading

Grading details will be posted on Canvas when the course begins. Tentatively, a grade will be formed based on the following:

Lecture material

Course attendance

It is not mandatory to attend lectures, except when you scribe, although attendance is highly recommended.


Prerequisites

ECS 122A and 122B, or equivalents, are required for a proper understanding of the material. Understanding of basic graph algorithms and basic probability, e.g., random variables and expectation, is highly recommended.