Course Info
Lectures | Tuesdays 10:15 - 12:00 in CE 1 4, Thursdays 10:15 - 12:00 in CM 1 4 |
---|---|
Labs | Fridays 10:15 - 12:00 in CM 011 & CM 012 |
Web Page | http://parsa.epfl.ch/course-info/cs302/ |
Moodle | http://moodle.epfl.ch/course/view.php?id=14561 |
Instructor | Basu Arkaprava |
arkaprava.basu /at/ epfl.ch | |
Office | INJ 237 |
Office Hours | By appointment |
Instructor | Babak Falsafi |
Email, URL | babak.falsafi /at/ epfl.ch, http://parsa.epfl.ch/~falsafi |
Office | INJ 233 |
Office Hours | By appointment |
Phone | +41 21 693 81 39 |
Assistant | Ayan Chakraborty |
Email, URL | ayan.chakraborty /at/ epfl.ch, http://people.epfl.ch/ayan.chakraborty |
Office | INJ 215 |
Office Hours | By appointment |
Assistant | Yuanlong Li |
Email, URL | yuanlong.li /at/ epfl.ch, http://people.epfl.ch/yuanlong.li |
Office | INJ 215 |
Office Hours | By appointment |
Assistant | Pooria Poorsarvi Tehrani |
Email, URL | pooria.poorsarvitehrani /at/ epfl.ch, http://people.epfl.ch/pooria.poorsarvitehrani |
Office | INJ 215 |
Office Hours | By appointment |
Admin. Assistant | Stephanie Baillargues |
stephanie.baillargues /at/ epfl.ch | |
Office | INJ 234 |
Parallelism and Concurrency in Software
From sensors, to smart phones, to the world's largest datacenters and supercomputers, parallelism & concurrency is ubiquitous in modern computing. There are also many forms of parallel & concurrent execution in modern platforms with varying degrees of ease of programmability, performance & efficiency.Course content:
The goal of this course is to provide a deep understanding of the fundamental principles and trade-offs involved in constructing efficient parallel or concurrent software.- Performance vs. efficiency
- Forms of parallelism
- Communication models
- Memory models
- Functional parallelism
- Domain-specific languages
- Throughput parallelism
- Data parallelism
- Distributed Data parallelism
- Forms of concurrency
- Asynchronous programming
- Coroutines and futures
Learning outcomes
By the end of the course, the student must be able to:- Construct parallel software
- Construct concurrent software
- Construct efficient software
- Design software for various platforms including CPUs, accelerators and clusters
Learning prerequisites
Required courses
- CS-200 Computer architecture
- CS-214 Software construction
Recommended courses
- CS-202 Computer systems
Grading
A tentative breakdown of grade is given below. All grades will be available through an automated system accessible online through the class web page.
Homework Projects Midterm Final |
20% 30% 20% 30% |