This is an advanced topics course on building autonomous networks using data and techniques from machine learning. It covers two major application areas: Cloud Computing Systems and Mobile Wireless Networks. The course introduces the architecture of Self-Programming Networks for sensing, inferring, learning and control, consisting of (i) a "reflex layer" for inferring at line rate and at scale, and (ii) a "deliberate layer" for efficient resource scheduling and network control. Various sensing and inference algorithms for deriving insights and alerts from the sensed data will be discussed. Methods for synchronizing clocks across a large data center and using this to reconstruct the fine details of network performance (queue-depths, link utilizations and buffer and link compositions) in near real-time will be presented. Similarly, methods for inferring available bandwidth in dynamic mobile networks and using it to drive different application optimizations will be presented. Students will learn the use of neural networks and learning techniques (a) to accelerate inference and control algorithms, (b) for "workload fingerprinting", (c) for predicting wireless link capacities, and (d) for scheduling resources. Finally, the principles of creating an interactive database for detecting anomalies, raising alerts, and serving insights to the user will be discussed. The course involves a team-based project.
Important course information will be posted on this web page and announced in class. You are responsible for all material that appears here and should check this page for updates frequently.
Monday & Wednesday 11:30AM - 12:20PM at 320-106.
Balaji Prabhakar
Office Hours: Tuesday 10:00AM to 11:30AM at Packard 269.
Sachin Katti
Office Hours: Friday 4:00PM to 5:00PM at Gates 342.
Shiyu Liu
Office Hours: Thursday 1:30PM to 3:00PM at Packard 270.
You can reach us at ee392k-win1718-staff@lists.stanford.edu.