RGL
Realistic Graphics Lab
EPFL Logo

CS307: In­tro­duc­tion to Mul­ti­pro­cessor Ar­chi­tec­ture (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

Mul­ti­pro­cessors are a core com­pon­ent in all types of com­put­ing in­fra­struc­ture, from phones to data­cen­ters. This course will build on the pre­requis­ites of pro­cessor design and con­cur­rency to in­tro­duce the es­sen­tial tech­no­lo­gies re­quired to com­bine mul­tiple pro­cessing ele­ments in­to a single com­puter.

Course con­tent:

  • Forms of par­al­lel­ism
  • Par­al­lel pro­gram­ming mod­els
  • Cache co­her­ence
  • Memory con­sist­ency
  • Syn­chron­iz­a­tion
  • In­ter­con­nec­tion net­works
  • Soft­ware ef­fi­ciency & op­tim­iz­a­tion
  • GPU ar­chi­tec­ture & pro­gram­ming

Learn­ing out­comes

By the end of the course, the stu­dent must be able to:

  • De­tect and ad­dress in­ef­fi­cien­cies in par­al­lel soft­ware
  • Design and eval­u­ate soft­ware for mul­tiple par­al­lel plat­forms
  • Design and eval­u­ate hard­ware for shared memory
  • Com­pare and con­trast hard­ware design choices in par­al­lel plat­forms
  • Demon­strate and de­scribe the op­er­a­tion of snoop­ing and dir­ect­ory co­her­ence pro­to­cols

Learn­ing pre­requis­ites

Re­quired courses

  • CS-206 Con­cur­rency
  • CS-208 Com­puter ar­chi­tec­ture / Ar­chi­tec­ture des Or­din­ateurs

Of­fice 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.

Grad­ing

A tent­at­ive break­down of grade is giv­en be­low. Grades will be pos­ted on Moodle.

Pro­gram­ming As­sign­ments
Midterm
Fi­nal
Par­ti­cip­a­tion & Dis­cus­sion
35%
25%
40%
Counts

Schedule

Date Lecturer Contents
17.09.2019 Wenzel Jakob

Lec­ture: Lo­gist­ics & In­tro­duc­tion

24.09.2019 Wenzel Jakob

Lec­ture: Par­al­lel Com­put­ing

01.10.2019 Wenzel Jakob

Lec­ture: Cache Co­her­ence

08.10.2019 Wenzel Jakob

Lec­ture: Soft­ware Op­tim­iz­a­tions

15.10.2019 Wenzel Jakob

Lec­ture: Memory Con­sist­ency I

22.10.2019 Wenzel Jakob

Lec­ture: Memory Con­sist­ency II

29.10.2019 Wenzel Jakob

Midterm ex­am

05.11.2019 Wenzel Jakob

Lec­ture: Syn­chron­iz­a­tion

12.11.2019 Wenzel Jakob

Lec­ture: Trans­ac­tion­al Memory

19.11.2019 Yunho Oh

Lec­ture: Multi-threaded pro­cessors

26.11.2019 Wenzel Jakob

Lec­ture: GPUs I

03.12.2019 Yunho Oh

Lec­ture: GPUs II

10.12.2019 Wenzel Jakob

Lec­ture: Scal­ing trends & multi-node

17.12.2019 Wenzel Jakob

Fi­nal ex­am