Advanced Computer Architecture

CS605 • Spring 2022 • University of Cyprus

This course introduces students to advanced topics in computer architecture, with a focus on warehouse-scale computers. Warehouse-scale computers support a wide range of online services, including cloud computing, social networking, web search, video streaming, and online shopping. The first half of the course covers advanced principles of organization, operation and performance analysis of modern computer systems. The second half examines the architecture and programming of warehouse-scale computers and datacenters, covering the entire system stack from hardware through systems software to application programming frameworks, as well as cross-cutting concerns such as efficiency, reliability, privacy and security. Through lab exercises, students get practical experience with modern computer systems and reinforce the basic concepts covered in the lectures.


Lectures: Friday 6:00 pm - 9:00 pm, Room FST 01 202
Recitations: Friday 9:00 pm - 10:00 pm, Room FST 01 202
Labs: Wednesday 3:00 - 4:30 pm, Room FST 01 103


Instructor: Haris Volos

schedule

Date Lecture Readings Logistics
Wed 19/01 Lab #1:
Introduction to Unix commands and Bash scripting
[ slides ]

HW1 out

Fri 21/01 Lecture #1 :
Introduction
[ slides ]

Wed 26/01 Lab #2:
Linux monitoring utilities
[ slides ]

HW1 due 21/1 11:59pm
HW2 out

Fri 28/01 Lecture #2 :
Refresh on Computer Architecture
[ slides ]

Wed 02/02 Lab #3:
CloudLab
[ slides ]

Fri 04/02 Lecture #3 :
Instruction-level parallelism
[ slides ]
  • H&P Textbook, Ch3

Wed 09/02 Lab #4:
Web search
[ slides ]

HW2 due 9/2 11:59pm
HW3 out

Fri 11/02 Lecture #4 :
Thread-level parallelism
[ slides ]

Fri 18/02 Lecture #5 :
Advanced memory hierarchy - Part 1
[ slides ]

Wed 23/02 Lab #5:
Power Management
[ slides ]

Fri 25/02 Lecture #6 :
Advanced memory hierarchy - Part 2
[ slides ]

Wed 02/03 Lab #6:
Memory hierarchy benchmarking
[ slides ]

HW3 due 2/3 11:59pm

Fri 04/03 Lecture #7 :
Datacenter storage
[ slides ]

Wed 09/03 Lab #7:
Persistent memory
[ slides ]

HW4 out

Lecture #8 :
Virtualization
[ slides ]

Wed 16/03 Lab #8:
Docker containers
[ slides ]

Fri 18/03 Lecture #9 :
Serverless and Microservices
[ slides ]

Wed 23/03 Lab #9:
Kubernetes
[ slides ]

Fri 25/03 National Holiday - No classes

Wed 30/03 Lecture #10 :
Performance analysis
[ slides ]

Fri 01/04 National Holiday - No classes

Wed 06/04 Lab #10:
Top-down microarchitecture analysis method
[ slides ]

HW4 due 6/4 11:59pm

Fri 08/04 Lecture #11 :
Accelerators
[ slides ]

Wed 13/04 Lab #11:
NVIDIA Tensor Cores (tentative)
[ slides ]

Fri 15/04 Lecture #12 :
Security and privacy
[ slides ]

about

objectives

Students will learn: (a) current methodology for performance evaluation and comparison of computer systems; (b) basic and advanced concepts in the organization of modern microprocessors; and (c) current trends in the computer architecture area. Also, with the use of different tools, presented in the course, students will perform research projects in certain computer architecture topics.

content

Performance evaluation and comparison, as well as benchmarking programs; Basic microarchitecture concepts of modern processors; Pipelining, instruction-level parallelism, prediction, speculation, memory hierarchy, and static/dynamic instruction scheduling; Examples of modern processors; Current research projects in the area of computer architecture.

target audience

The course is aimed at early-stage postgraduate students of computer science and senior undergraduate students. 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 the CS221 (Computer Organization) and undergraduate course equivalent to the 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.

paper presentations

Each student will be assigned a paper to present during the class. You should prepare a 25-30 minute presentation on the paper, using slides (Powerpoint or Keynote). In your presentation, cover each of the following:

  • Problem: What is the paper trying to solve? How real is the problem?
  • Key idea: What is the main idea in the solution?
  • Novelty: What is different from previous work, and why? Is it a new problem, a new solution, or a new environment for an existing problem?
  • Critique: Is there anything you would change in the solution? What about in the way the authors presented or evaluated the solution?
  • Questions to the class: List a set of questions to start the class discussion on the paper. Questions can be things you wish the paper explained/tackled better, ideas on how you would expand on the work, or system implications the paper has in cloud computing overall.

bibliography

  • John Hennessy and David Patterson. Computer Architecture: A Quantitative Approach. Sixth Edition Morgan & Claypool (2016)

  • Luiz André Barroso, Urs Hölzle, and Parthasarathy Ranganatha. The Datacenter as a Computer: Designing Warehouse-Scale Machines. Third Edition Morgan & Claypool (2019).

grading

The evaluation will be based on homework assignments and exams. The grading rubric will be as follows:

  • Assignments: 40%
  • Final exam: 30 %
  • Paper presentations: 20%
  • Class participation: 10%