CME 323: Distributed Algorithms and Optimization

Spring 2017, Stanford University
Mon, Wed 10:30 AM - 11:50 AM at 200-205

Instructor: Reza Zadeh

The emergence of large distributed clusters of commodity machines has brought with it a slew of new algorithms and tools. Many fields such as Machine Learning and Optimization have adapted their algorithms to handle such clusters. The class will cover widely used distributed algorithms in academia and industry.

The course will begin with an introduction to fundamentals of parallel and distributed runtime analysis. Afterwards, we will cover parallel and distributed algorithms for:

  • Convex Optimization
  • Matrix Factorization
  • Machine Learning
  • Neural Networks
  • Numerical Linear Algebra
  • Large Graph analysis
  • Streaming algorithms

Class Format

We will focus on the analysis of parallelism and distribution costs of algorithms. Sometimes, topics will be illustrated with hands-on exercises using Apache Spark.

Pre-requisites: Targeting graduate students having taken Algorithms at the level of CME 305 or CS 261. Being able to competently program in any main-stream high level language. There will be homeworks, a midterm, and a final.

Grade Breakdown:
Homeworks: 40%
Midterm: 30%
Final: 30%

The midterm will be in class on Monday May 8th.

Required textbook: Parallel Algorithms by Guy E. Blelloch and Bruce M. Maggs [BB]

Optional textbooks:
Models of Computation by John E. Savage [S]
Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein [CLRS]
Learning Spark by Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia [KKWZ]
Convex Optimization by Boyd and Vandenberghe [BV]
Algorithm Design, by Kleinberg and Tardos [KT]


Homework 1 [pdf] [tex] Due April 19th. [soln]

Homework 2 [pdf] [tex] Due May 1st. [soln]

Homework 3 [pdf] [tex] Due May 22nd. [soln]

Homework 4 [pdf] [tex] Due June 7th.

Lectures and References

Midterm Practice Problems. [pdf] [sol hints]

Previous Years

Spring 2015: [class webpage]

Spring 2016: [class webpage]


Reza: rezab at stanford
Office hours: by appointment


Andreas Santucci: santucci at stanford
Office hours: Mondays 12-2, Wednesdays 12-1.

Wissam Baalbaki: baalbaki at stanford
Office hours: Tuesday, 3:30-5:30, Thursday 3:30-4:30.

TA office hours will be held in the Huang Engineering Center basement (in front of the ICME office)