CME 323: Distributed Algorithms and OptimizationSpring 2018, Stanford University
Tue, Thu 12:00 PM - 1:20 PM at 260-113 (04/02/2018 - 06/06/2018)
Instructor: Reza Zadeh
Computer Science is evolving to utilize new hardware such as GPUs, TPUs, CPUs, and large commodity clusters thereof. Many subfields such as Machine Learning and Optimization have adapted their algorithms to handle such clusters.
Topics include distributed and parallel algorithms for: Optimization, Numerical Linear Algebra, Machine Learning, Graph analysis, Streaming algorithms, and other problems that are challenging to scale on a commodity cluster. The class will focus on analyzing programs, with some implementation using Apache Spark and TensorFlow.
The course will be split into two parts: first, an introduction to fundamentals of parallel algorithms and runtime analysis on a single multicore machine. Second, we will cover distributed algorithms running on a cluster of machines.
Pre-requisites: Targeting graduate students having taken Algorithms at the level of CME 305 or CS 161. Being able to competently program in any main-stream high level language. There will be homeworks, a midterm, and a final exam.
The midterm will be in class.
Lectures and References
Spring 2015: [class webpage]
Spring 2016: [class webpage]
Spring 2017: [class webpage]