Beware, this is the 2016 course. For the 2017 course,
please follow this link.
_
_
_
_
_
_
Parallelism and Concurrency - EPFL Course, Spring 2016
IMPORTANT: Grading Interface for Concurrency Assignments
Parts of this course will run through Coursera, https://www.coursera.org/learn/parprog1/
Students taking this course are requested to provide their Coursera account email by filling up this google form. Note that Coursera requires you to only have one account.
Please note that, when using Coursera, you can choose “I don't want to verify” and “Continue without verification” and you will receive assignment submission tokens that have no time limits, which will simplify the use of the system for this course.
Overview
There are three main parts of the course:
Parallelism (first four weeks): lectures as live lectures and MOOC videos, assignment submission through Coursera
Concurrency: lectures as live lectures
Big Data Analysis with Scala and Spark (last three weeks): MOOC
In any case, there will be programming assignments that you will be submitting online.
Staff
Grading
Continuous control. Components of the grade include:
written exams during the semester (midterm counting 35%, and the final counting 40% of the grade)
small programming projects during the semester (all together counting 25% of the grade)
Assignment Deadlines
Assignment Due Dates:
a) Assignment 1: 9th March.
b) Assignment 2: 19th March (the deadline was relaxed for a few students who had problems with grading infrastructure)
c) Assignment 3: 23rd March
d) Assignment 4: 6th April
e) Assignment 5: 21st April
f) Assignment 6: 4th May
g) Assignment 7: 12th May
h) Assignment 8: 3rd June
i) Assignment 9: 3rd June
Course Calendar
Course Material
Part I: Parallel Programming
Week 01, Wednesday 24 February 2016
Combined PDF Slides for Week 1
Course introduction and introduction to parallelism
JVM and parallelism
Basic parallel Construct. Array sum example
v
Example: estimating the value of pi
-
How fast are parallel programs?
v
Benchmarking parallel programs
Week 02, Wednesday 2 March 2016
Example: Merge Sort
Parallel mapping
Reductions (fold)
Associativity
Parallel scan left
Reading:
Week 03, Wednesday 9 March 2016
Data-Parallel Programming
Data-Parallel Operations I
Data-Parallel Operations II
Scala Parallel Collections
Splitters and Combiners
Week 04, Wednesday 16 March 2016
Week 05, Wednesday 23 March 2016
Wednesday 30 March - NO CLASSES
Part II: Concurrent Programming
Week 06, Wednesday 6 April 2016
Concurrency 1: Chapter 2 of Learning Concurrent Programming in Scala
Slides
Week 07, Wednesday 13 April 2016
Concurrency 2: Chapter 3 of Learning Concurrent Programming in Scala
Slides
Week 08, Wednesday 20 April 2016
Week 09, Wednesday 27 April 2016
Week 10, Wednesday 4 May 2016
Actors 2
-
-
Slides on actors are available in the google drive:
Course Slides
Part III: Big Data Analysis with Scala and Spark
Week 11, Wednesday 11 May 2016
Week 12, Wednesday 18 May 2016
Week 13, Wednesday 25 May 2016
Week 14, Wednesday 1 June 2016