AboutDue to the massive volumes of data, many modern services are executed in memory-restricted settings, i.e., in setups where the processed data cannot be stored on a single computing unit. This state of affairs led to the development of several computational models, with massively parallel (MPC) and streaming computation being among the most prominent ones.
In this course, we will study several basic algorithmic questions inspired by MPC and streaming. In particular, we will see how specific graph partitioning and filtering techniques can yield faster algorithms. In the streaming context, we will touch on hashing and linear sketching, which are perhaps the most influential techniques in handling big volumes of data when the available memory is extremely scarce. The material will be presented at an introductory level.
The in-class discussion will mainly focus on theoretical aspects, occasionally touching on practical relevance. This course aims to introduce students to basic tools and techniques that led to state-of-the-art results for the aforementioned problems. This course can be seen as an advanced version of ECS 122A with an emphasis on algorithmic techniques for large graphs. Analysis of developed methods will require a mixture of basic applied mathematics and algorithm design akin to that seen in ECS 122A.
GradingGrading details will be posted on Canvas when the course begins. Tentatively, a grade will be formed based on two-three homework sets, two-three quizzes and an exam.
- Week 1: Connected components in MPC (super-linear regime)
- Week 2: Connected components in MPC (sub-linear regime)
- Week 3: Maximal independent set in MPC (sub-linear regime)
- Week 4: Maximal matching in MPC (super-linear regime)
- Week 5: Approximate maximum matching in MPC (sub-linear regime)
- Week 6: (Semi-)Streaming algorithms warm-up (maximal matching, majority element, sampling)
- Week 7: Problem set and material revision
- Week 8: 3-vertex coloring of cycle graphs
- Week 9: Connected components in turnstile semi-streaming