CS-206 / 4 credits

Teacher(s): Kuncak Viktor, Kashyap Sanidhya

Language: English


Summary

The course introduces shared-memory concurrency, as well as parallel programming, algorithms, and data structures.

Content

Keywords

Parallelism, threads, synchronization, locks, memory models.

Learning Prerequisites

Required courses

  • Functional programming (CS-210)
  • Algorithms (CS-250)
  • Computer Architecture (CS-208)

Recommended courses

System oriented programming (CS-207)

Important concepts to start the course

Algorithms and data structures

Learning Outcomes

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

  • Construct parallel software.
  • Perform tuning of parallel software.
  • Design concurrent system

Transversal skills

  • Communicate effectively with professionals from other disciplines.

Teaching methods

Ex cathedra, labs, exercices

Expected student activities

  • Attend lectures
  • Participate in exercise hours
  • Attend labs
  • Submit solutions to labs
  • Take mid-term exam
  • Take final exam

Assessment methods

Graded labs, mid-term exam, final exam

 

Supervision

Office hours Yes
Assistants Yes
Forum Yes

Resources

Virtual desktop infrastructure (VDI)

No

Bibliography

  • Maurice Herlihy and Nir Shavit. 2012. The Art of Multiprocessor Programming, Revised Reprint (1st. ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
    (available from EPFL library)

Ressources en bibliothèque

Notes/Handbook

Copies of the slides

Websites

In the programs

  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Parallelism and concurrency
  • Lecture: 1 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Parallelism and concurrency
  • Lecture: 1 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Parallelism and concurrency
  • Lecture: 1 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Parallelism and concurrency
  • Lecture: 1 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks

Reference week

 MoTuWeThFr
8-9     
9-10     
10-11     
11-12     
12-13     
13-14     
14-15     
15-16     
16-17     
17-18     
18-19     
19-20     
20-21     
21-22