Datacenter Computing

CS452 • Fall 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: Monday and Thursday, 3:00 pm - 4:30 pm, FST 01 146
Recitations: , 2:00 pm - 3:00 pm, FST 01 202
Labs: Tuesday, 1:30 pm - 3:00 pm, FST 01 B103


Instructor: Haris Volos
Teaching Assistant: Pyrros Bratskas

Schedule

Date Lecture Readings Logistics
Thu 05/09 Lecture #1 :
Introduction: Course Overview, Warehouse-Scale Computers
[ slides ]

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

Tue 10/09 Lab #1:
CloudLab
[ slides | notes ]

Wed 11/09 Lecture #3 :
Introduction: Workloads and Software Infrastructure (continued)
[ slides ]

Thu 12/09 Lecture #4 :
Virtualization
[ slides ]

Mon 16/09 Lecture #5 :
Virtual Machines
[ slides ]

Tue 17/09 Lab #2:
Essential Tools
[ slides | notes ]

Wed 18/09 Precept #1:
TCO
[ slides ]

Thu 19/09 Lecture #6 :
Containers
[ slides ]

Mon 23/09 Lecture #7 :
Containers (continued) and Serverless Computing
[ slides ]

Tue 24/09 Lab #3:
Docker Containers
[ slides | notes ]

Wed 25/09 Precept #2:
Docker Security
[ slides ]

Thu 26/09 Lecture #8 :
Horizontal Scaling
[ slides ]

Mon 30/09 Lecture #9 :
Horizontal Scaling
[ slides ]

Tue 01/10 National Holiday - No Class

Wed 02/10 Precept #3:
Horizontal Scaling
[ slides ]

Thu 03/10 No Class

Mon 07/10 Lecture #10 :
Performance Modeling
[ slides ]

Tue 08/10 Lab #4:
Scaling Docker Containers
[ slides | notes ]

Wed 09/10 Precept #4:
Performance Modeling
[ slides ]

Thu 10/10 Lecture #11 :
Go Language
[ slides ]

Mon 14/10 Lecture #12 :
Microservices
[ slides ]

Tue 15/10 Lab #5:
Go Language
[ slides | notes ]

Thu 17/10 Lecture #13 :
Microservices - RPC
[ slides ]

Mon 21/10 Midterm Exam

Tue 22/10 Lab #6:
Go Web Apps
[ slides | notes ]

Thu 24/10 Lecture #14 :
Networking
[ slides ]

Mon 28/10 National Holiday - No Class

Tue 29/10 Lab #7:
Go Microservices
[ slides | notes ]

Thu 31/10 Lecture #15 :
Power Management
[ slides ]

Mon 04/11 Lecture #16 :
Dependability
[ slides ]

Tue 05/11 Lab #8:
Datacenter Storage
[ slides | notes ]

Thu 07/11 Lecture #17 :
Datacenter Storage
[ slides ]

Mon 11/11 Lecture #18 :
Datacenter Storage
[ slides ]

Tue 12/11 Lab #9:
Memcached
[ slides | notes ]

Thu 14/11 Lecture #19 :
Datacenter Storage
[ slides ]

Mon 18/11 Lecture #20 :
Cluster Management
[ slides ]

Tue 19/11 Lab #10:
Apache Spark
[ slides | notes ]

Lecture #21 :
Wrap Up
[ slides ]

Thu 21/11 Lecture #22 :
Post-Moore Datacenters
[ slides ]

Mon 25/11 Lecture #23 :
Post-Moore Datacenters: Machine Learning
[ slides ]

Thu 28/11 Lecture #24 :
Security
[ slides ]

Mon 02/12 Lecture #25 :
Privacy
[ 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 and exams. The final grade is based on the following formula:

  • Assignments: 30%
  • Midterm exam: 25%
  • Final exam: 45%