| Date |
Reading |
Lead |
|
1/8
|
Course Introduction and the History of Virtualization
|
Yiying
Slides
|
|
1/10
|
Virtualization Overview and Virtualizing CPU
Comet Book Chapter on Virtual Machine Monitors
and
A Comparison of Software and Hardware Techniques for x86 Virtualization (ASPLOS'06)
Questions
- Why is x86 un-virtualizable with trap-and-emulate? Give one example.
- How are jump instructions translated?
- With hardware virtualization extensions (e.g., Intel VT), do we still need binary translation? Why or why not?
Additional Readings
- Formal Requirements for Virtualizable Third Generation Architectures (Comm ACM 1974)
- Disco: Running Commodity Operating Systems on Scalable Multiprocessors (TOCS'97)
- Scale and Performance in the Denali Isolation Kernel
- Software Techniques for Avoiding Hardware Virtualization Exits
- Embra: Fast and Flexible Machine Simulation
- Fast Dynamic Binary Translation for the Kernel
- Enabling Intel Virtualization Technology Features and Benefits
|
Yiying
Slides
|
|
1/17
|
Virtualization CPU ctd. and Virtualizing Memory
Performance Evaluation of Intel EPT Hardware Assist
and
Memory Resource Management in VMware ESX Server (OSDI'02)
Questions
- List at least one pro and one con for software MMU
- List at least one pro and one con for hardware MMU
- What is the double paging problem and what caused it?
- What is the benefit of keeping a "hint" entry for each scanned (but unshared) page (as compared to not maintaining anything for the page)
Additional Readings
- Difference Engine: Harnessing Memory Redundancy in Virtual Machines
|
Yiying
Slides
|
|
1/22
|
Virtualizing I/O
First three sections of virtio: Towards a De-Facto Standard For Virtual I/O Devices
and
first three sections of High Performance Network Virtualization with SR-IOV
and
Network Virtualization Overview
Questions
- Is virtio a full virtualization or a paravirtualization technique? What's its main benefit?
- List at least one limitation of SR-IOV
- What are the similarities and differences between network virtualization and traditional server virtualization?
Additional Readings
- vIC: Interrupt Coalescing for Virtual Machine Storage Device IO
- ELI: Bare-Metal Performance for I/O Virtualization
- Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor (ATC'01)
- Network Virtualization in Multi-tenant Datacenters (NSDI'14)
- The Design and Implementation of Open vSwitch (NSDI'15)
|
Yiying
Slides
|
|
1/24
|
Cloud Computing
Above the Clouds: A Berkeley View of Cloud Computing
Quiz 1
Questions
- Why do you think cloud computing has been a huge success and gained majority of IT market?
- What challenges mentioned in the Bekerley cloud paper do you think still remain today?
- If you could change one thing about the cloud with a magic wand, what would you change?
Additional Readings
|
Yiying
Slides
|
|
1/29
|
Container Basics
Understanding and Hardening Linux Containers
(mainly Ch 2 to Ch 5; you can ignore many of the details in these chapters. Read Ch 1 for more background on virtualization. Read other chapters if you are interested in security.)
Questions
- What types of isolations does Linux containers achieve?
- Can one Linux container affect the performance of another Linux container on the same machine (i.e., performance isolation)? Why or why not?
- Why do you think containers are less "secure" than virtual machines?
Additional Readings
- LXC/LXD
- Docker
- Understanding Security Implications of Using Containers in the Cloud
- Container Security: Issues, Challenges, and the Road Ahead
- Slacker: Fast Distribution with Lazy Docker Containers
|
Yiying
Slides
|
|
1/31
|
Kubernetes and gVisor
Kubernetes
and
gVisor
Questions
- What is a Kubernetes Pod? How do you think it is useful in container orchestration?
- What does Kubernetes use etcd for? Why is having a consistent, atomic key-value store important for Kubernetes' control plane?
- Vulnerabilities in the Linux kernel makes it unsafe for containers to call Linux system calls. How does gVisor solve this problem?
Additional Readings
- Borg, Omega, and Kubernetes (Google)
- The True Cost of Containing: A gVisor Case Study
- Container Isolation at Scale (Introducing gVisor) - Dawn Chen & Zhengyu He, Google
- Nabla Containers
|
Yiying
Slides
|
|
2/5
|
Serverless Computing Basics
Pages 3 to 8 of
Cloud Programming Simplified: A Berkeley View on Serverless Computing
and briefly about
Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider (ATC'20)
Questions
- Today's serverless functions are stateless. How do you think different functions can share data and communicate?
- Can you think of any security threats of serverless computing? Bonus points if you can outline a real threat/attack.
- Can you think of any other ways to reduce or avoid cold start for serverless computing (other than what the ATC'20 paper talks about).
Additional Readings
- Amazon Lambda
- Google Cloud Functions
- Azure Functions
- Serverless Computing: Current Trends and Open Problems
- Serverless Workflows with Durable Functions and Netherite
- Serverless Computing: One Step Forward, Two Steps Back
-
ORION and the Three Rights: Sizing, Bundling, and Prewarming for Serverless DAGs
- Occupy the Cloud: Distributed Computing for the 99% (PyWren)
- Encoding, Fast and Slow: Low-Latency Video Processing Using Thousands of Tiny Threads
- SAND: Towards High-Performance Serverless Computing
- Encoding, Fast and Slow: Low-Latency Video Processing Using Thousands of Tiny Threads
- A Case for Serverless Machine Learning
- Archipelago: A Scalable Low-Latency Serverless Platform
- Cloudburst: Stateful Functions-as-a-Service
|
Yiying
Slides
|
|
2/7
|
Resource Disaggregation
LegoOS: A Disseminated, Distributed OS for Hardware Resource Disaggregation (OSDI'18)
Questions
- List two to three pros of resource disaggregation
- List two to three cons of resource disaggregation
- What is the benefit of using virtual regions in LegoOS?
Additional Readings
- Clio: A Hardware-Software Co-Designed Disaggregated Memory System
- Mira: A Program-Behavior-Guided Far Memory System
- Make It Real: An End-to-End Implementation of A Physically Disaggregated Data Center
- Hermit: Low-Latency, High-Throughput, and Transparent Remote Memory via Feedback-Directed Asynchrony
- Canvas: Isolated and Adaptive Swapping for Multi-Applications on Remote Memory
- Disaggregating Persistent Memory and Controlling Them Remotely: An Exploration of Passive Disaggregated Key-Value Stores
|
Yiying
Slides
|
|
2/12
|
Next-Generation Serverless Computing
Resource-Centric Serverless Computing
Questions
- What are some of the benefits of using Resource Graphs? Be brief.
- Briefly describe how Zenix performs adaptive materialization.
- What applications do you think fit FaaS and resource-based serverless? List at least one for each.
Additional Readings
|
Yiying
Slides
|
|
2/14
|
New Cloud Infrastructure
Amazon Nitro (esp. the video talk on that page)
Quiz 2
Questions
- With Amazon Nitro, virtualization functions are mostly offloaded to hardware. Do we still need a hypervisor (or an OS)? Can everything just run in user space and interact with Nitro cards directly?
- Can you think of a drawback of offloading tasks to hardware (i.e., Nitro's approach)?
Additional Readings
- Intel Unveils Infrastructure Processing Unit
|
Yiying
Slides
|
|
2/21
|
KVM and QEMU
kvm: the Linux Virtual Machine Monitor,
and
QEMU, a Fast and Portable Dynamic Translator (It's OK to not fully understand Section 2)
Questions
- What is the implication of KVM forwarding I/O requests to the user space?
- What is the benefit of QEMU first translating the source instructions (guest) into micro-operations implemented in C and their compiled object files and then translating the object files into the target instructions (host)?
- Can you think of some good use cases for QEMU+KVM?
Additional Readings
- KVM Documentation
|
Yiying
Slides
|
|
2/26
|
Security
When Virtual is Harder than Real: Security Challenges in Virtual Machine Based Computing Environments (HotOS'05)
and
Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds (CCS'09)
Questions
- Can you think of some drawback of enforcing security mechanisms at the hypervisor level (compared to at the guest OS or above)?
- When a zone and/or an instance type are used more frequently (i.e., having higher loads from more tenants), do you think the co-location attack would be come easier or harder? Why?
- Do you think a similar co-location attack exist with serverless computing (i.e., one function attacking another function on the same physical machine)? Does serverless computing make such attacks harder or easier and why?
Additional Readings
- Secure Container Isolation: Problem Statement & Solution Space
- When Virtual Is Better Than Real (HotOS'01)
- Secure Pods: Sandboxing workloads in Kubernetes
- TrustVisor: Efficient TCB Reduction and Attestation
- SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSes (SOSP'07)
- Breaking Up is Hard to Do: Security and Functionality in a Commodity Hypervisor (SOSP'11)
- InkTag: Secure Applications on an Untrusted Operating System (ASPLOS'13)
- Overshadow: A Virtualization-Based Approach to Retrofitting Protection in Commodity Operating Systems
- VirtuOS: An Operating System with Kernel Virtualization
- SCONE: Secure Linux Containers with Intel SGX
- Understanding Security Implications of Using Containers in the Cloud (ASPLOS'08)
- Container Security: Issues, Challenges, and the Road Ahead
|
Yiying
Slides
|
|
2/28
|
Next-Generation Cloud
User-Defined Cloud (HotOS'21)
and
From Cloud Computing to Sky Computing (HotOS'21)
Questions
- Other than the examples given in the UDC paper, can you think of another cloud usage case that could benefit from UDC? and how exactly it can benefit from UDC?
- What do you think is the biggest obstacle for cloud users to adopt sky computing? for cloud providers to adopt it?
Additional Readings
|
Jiaying Yang and
Shiv Mulchandani
UDC Slides,
Sky Slides
|
|
3/4
|
Systems for (Scalable) Machine Learning - Training
PipeDream: Generalized Pipeline Parallelism for DNN Training (SOSP'19)
and Alpa: Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning (OSDI'22)
Questions
- By making the pipeline more smooth (less pipeline bubbles), what tradeoff does PipeDream make? i.e., in what aspect is GPipe better than PipeDream?
- What type of parallelism do you think is most widely adopted in practice? Why?
- Try to come up with an alternative approach to automatically figure out a parallelism plan (instead of Alpa's way). Is it better/worse than Alpa?
Additional Readings
- GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism
- Scaling Distributed Machine Learning with the Parameter Server
|
Yiying
Slides
|
|
3/6
|
Systems for (Scalable) Machine Learning - Serving and Agents
Efficient Memory Management for Large Language Model Serving with PagedAttention
and LLM Powered Autonomous Agents
Questions
- List at least two reasons why GPU memory for KV cache is wasted without PagedAttention.
- What are the tradeoffs of using larger/smaller block sizes in PagedAttention?
- Can you come up with a practical case that needs multiple agents operated as a taskflow (or a DAG) to solve a task?
Additional Readings
- FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness
- FasterTransformer
- DeepSpeed Inference: Enabling Efficient Inference of Transformer Models at Unprecedented Scale
- Orca: A Distributed Serving System for Transformer-Based Generative Models (OSDI'22)
- AlpaServe: Statistical Multiplexing with Model Parallelism for Deep Learning Serving (OSDI'23)
- Ray Serve: Scalable and Programmable Serving
- FlexGen: High-Throughput Generative Inference of Large Language Models with a Single GPU
- DeepSpeed Ulysses: System Optimizations for Enabling Training of Extreme Long Sequence Transformer Models
- Ring Attention with Blockwise Transformers for Near-Infinite Context
- Large Language Model based Multi-Agents: A Survey of Progress and Challenges
- APIServe: Efficient API Support for Large-Language Model Inferencing
- Efficiently Programming Large Language Models using SGLang
- LangChain
- ReAct: Synergizing Reasoning and Acting in Language Models
- Gorilla: Large Language Model Connected with Massive APIs
- Guidance: A guidance language for controlling large language models
|
Yiying and Bei Pei
Slides
|
|
3/11
|
Course Summary
Hints for Computer System Design - Butler Lampson
Quiz 3
Questions
Read the "Hints for Computer System Design" paper and summarize what you have learned over the course.
Feel free to write about anything else you want to comment on the course.
|
Yiying
Slides
|
|
3/13
|
Project Presentations
|
|