Datacenter Computing

CS452 • Spring 2024 • University of Cyprus

Modern data centers drive the online services we use every day, from search engines and social media to e-commerce, video platforms, and cloud computing. The course will conduct a vertical study of data center architecture, covering all aspects from the underlying hardware to systems-level software and application frameworks. Additionally, the course will examine overarching concerns such as total cost of ownership, service level objectives, energy efficiency, reliability and availability, and privacy and security. Through lab exercises, students get practical experience with data center technologies and reinforce the basic concepts covered in the lectures.


Lectures: Tuesday and Friday, 1:30 pm - 3:00 pm, FST 01 146
Recitations: , 5:00 pm - 6:00 pm, FST 01 146
Labs: Monday, 6:00 pm - 7:30 pm, FST 01 B103


Instructor: Haris Volos
Teaching Assistant: Pyrros Bratskas

Schedule

Date Lecture Readings Logistics
Mon 22/01 Lab #1:
CloudLab
[ slides | notes ]

Tue 23/01 Lecture #1 :
Introduction: Course Overview, Warehouse-Scale Computers
[ slides ]

Wed 24/01 Lecture #2 :
Introduction: Warehouse-Scale Computers (continued), Workloads and Software Infrastructure
[ slides ]

Fri 26/01 Lecture #3 :
Introduction: Workloads and Software Infrastructure (continued)
[ slides ]

Mon 29/01 Lab #2:
Essential Tools
[ slides | notes ]

Tue 30/01 Lecture #4 :
Virtualization
[ slides ]

Wed 31/01 Lecture #5 :
Containers
[ slides ]

Fri 02/02 Lecture #6 :
Serverless Computing
[ slides ]

Mon 05/02 Lab #3:
Docker Containers
[ slides | notes ]

Tue 06/02 Lecture #7 :
Horizontal Scaling
[ slides ]

Wed 07/02 Lecture #8 :
Horizontal Scaling
[ slides ]

Fri 09/02 Lecture #9 :
Performance Modeling
[ slides ]

Mon 12/02 Lab #4:
Scaling Docker Containers
[ slides | notes ]

Tue 13/02 Lecture #10 :
Go Language
[ slides ]

Wed 14/02 Precept #1:
TCO, Workloads
[ slides ]

Fri 16/02 Lecture #11 :
Microservices
[ slides ]

Mon 19/02 Lab #5:
Go Language
[ slides | notes ]

Tue 20/02 Lecture #12 :
Microservices - RPC
[ slides ]

Wed 21/02 Precept #2:
Horizontal Scaling
[ slides ]

Fri 23/02 Lecture #13 :
Networking
[ slides ]

Mon 26/02 Lab #6:
Go Web Apps
[ slides | notes ]

Tue 27/02 Lecture #14 :
Power Management
[ slides ]

Wed 28/02 Precept #3:
Performance Modeling
[ slides ]

Fri 01/03 Lecture #15 :
Dependability
[ slides ]

Mon 04/03 Lab #7:
Go Microservices
[ slides | notes ]

Tue 05/03 Lecture #16 :
Storage
[ slides ]

Fri 08/03 Lecture #17 :
Data Services
[ slides ]

Mon 11/03 Lab #8:
Data Services
[ slides | notes ]

Tue 12/03 Lecture #18 :
Data Services
[ slides ]

Fri 15/03 Lecture #19 :
Data Services
[ slides ]

Mon 18/03 Green Monday - No Class

Tue 19/03 Lecture #20 :
Cluster Management, Orchestration
[ slides ]

Fri 22/03 Lecture #21 :
Data Analytics
[ slides ]

Mon 25/03 Greek Independence Day - No Class

Tue 26/03 Buffer

Fri 29/03 Buffer

Mon 01/04 Cyprus National Day - No Class

Tue 02/04 Lecture #22 :
Accelerators
[ slides ]

Fri 05/04 Lecture #23 :
Accelerators: Machine Learning
[ slides ]

Mon 08/04 Lab #9:
Memcached
[ slides | notes ]

Tue 09/04 Lecture #24 :
Security
[ slides ]

Fri 12/04 Lecture #25 :
Privacy
[ slides ]

Mon 15/04 Lab #10:
Apache Spark
[ slides | notes ]

Tue 16/04 Lecture #26 :
TBD
[ slides ]

Fri 19/04 Lecture #27 :
Wrap Up
[ slides ]

About

Objectives

The objective of the course is to study the key principles or/and concepts that underlie a modern data center. The course will conduct a vertical study of datacenter technology covering the entire system stack, including hardware architectures, systems software, and application programming frameworks. The course will also explore cross-cutting concerns such as total cost of ownership, service level objectives, reliability and availability, energy efficiency, and privacy and security.

Content

Topics include server design, heterogeneous hardware and accelerators, total-cost of ownership (TCO) analysis, performance analysis, data-center storage, data-center networking, cloud computing, virtualization and containers, resource management, microservices, serverless computing, side channels, trusted execution.

Target Audience

The course is aimed at senior undergraduate students and early-stage postgraduate students of computer science. The language of instruction is greek but most of the educational material (book, slides, web pages) will be in english.

Prerequisites

Basic understanding of systems and architecture concepts through undergraduate course equivalent to CS221 (Computer Organization) and undergraduate course equivalent to CS222 (Operating Systems).

Labs

Through lab exercises, students get practical experience with modern datacenter technologies and reinforce the basic concepts covered in the lectures.

Homework Assignments

Homeworks are assignments that are designed to help students develop an in-depth understanding of both the theoretical and practical aspects of ideas presented in lecture.

Bibliography

Grading

Student progress is evaluated continuously through homework assignments, group project deliverables, and exams. The final grade is based on the following formula:

  • Assignments: 30%
  • Group project: 10%
  • Participation: 5%
  • Midterm exam: 15%
  • Final exam: 40%