RGL
EPFL Logo

CS307: Introduction to Multiprocessor Architecture (Fall 2019)

CM3
Lecture:
Tuesday: 15:15-17:00
Exercise (in INF3):
Tuesday: 17:15-18:00
Wenzel Jakob
Instructor
Arash Pourhabibi
Teaching Assistant
Siddharth Gupta
Teaching Assistant

General information

Multiprocessors are a core component in all types of computing infrastructure, from phones to datacenters. This course will build on the prerequisites of processor design and concurrency to introduce the essential technologies required to combine multiple processing elements into a single computer.

Course content:

  • Forms of parallelism
  • Parallel programming models
  • Cache coherence
  • Memory consistency
  • Synchronization
  • Interconnection networks
  • Software efficiency & optimization
  • GPU architecture & programming

Learning outcomes

By the end of the course, the student must be able to:

  • Detect and address inefficiencies in parallel software
  • Design and evaluate software for multiple parallel platforms
  • Design and evaluate hardware for shared memory
  • Compare and contrast hardware design choices in parallel platforms
  • Demonstrate and describe the operation of snooping and directory coherence protocols

Learning prerequisites

Required courses

  • CS-206 Concurrency
  • CS-208 Computer architecture / Architecture des Ordinateurs

Office hours

All course staff (Arash, Siddarth & Wenzel) offer office hours by appointment. Please send us an email with your availabilities, and we would be happy to meet with you discuss any course-related questions and feedback.

Grading

A tentative breakdown of grade is given below. Grades will be posted on Moodle.

Programming Assignments
Midterm
Final
Participation & Discussion
35%
25%
40%
Counts

Schedule

Date Lecturer Contents
17.09.2019 Wenzel Jakob

Lecture: Logistics & Introduction

24.09.2019 Wenzel Jakob

Lecture: Parallel Computing

01.10.2019 Wenzel Jakob

Lecture: Cache Coherence

08.10.2019 Wenzel Jakob

Lecture: Software Optimizations

15.10.2019 Wenzel Jakob

Lecture: Memory Consistency I

22.10.2019 Wenzel Jakob

Lecture: Memory Consistency II

29.10.2019 Wenzel Jakob

Midterm exam

05.11.2019 Wenzel Jakob

Lecture: Synchronization

12.11.2019 Wenzel Jakob

Lecture: Transactional Memory

19.11.2019 Yunho Oh

Lecture: Multi-threaded processors

26.11.2019 Wenzel Jakob

Lecture: GPUs I

03.12.2019 Yunho Oh

Lecture: GPUs II

10.12.2019 Wenzel Jakob

Lecture: Scaling trends & multi-node

17.12.2019 Wenzel Jakob

Final exam