CS307: Introduction to Multiprocessor Architecture (Fall 2019)
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 |