Back to Parallel programming
École Polytechnique Fédérale de Lausanne

Parallel programming

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library. Throughout, we'll apply these concepts through several hands-on examples that analyze real-world data, such as popular algorithms like k-means clustering. Learning Outcomes. By the end of this course you will be able to: - reason about task and data parallel programs, - express common algorithms in a functional style and solve them in parallel, - competently microbenchmark parallel code, - write programs that effectively use parallel collections to achieve performance Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Program Design in Scala: https://www.coursera.org/learn/progfun2.

Status: Performance Tuning
Status: Other Programming Languages
IntermediateCourse33 hours

Featured reviews

RC

5.0Reviewed Aug 24, 2017

Superb study material. Learnt a lot during this course. I am not much into mathematical stuff, but got a hang of how to break problems and improve efficiency through parallelism.

TG

4.0Reviewed Oct 21, 2017

Really good course covering some of the fundamentals of parallel programming, though for me I was hoping it would go into some of the Scala specifics a little more

EL

5.0Reviewed Aug 13, 2016

A worthwhile course. I enjoyed the lectures a lot. Really good grounding on principles which can be applied in other languages/platforms in addition to Scala.

TH

5.0Reviewed Oct 3, 2017

Very deep. I learned a lot of useful techniques. But I know it will take me many years before I can say I have mastered subject touched in this course.

IG

5.0Reviewed Jul 4, 2016

A very good course, the theories are explained well in the lectures and the assignments cover the learned information without being too difficult

E

4.0Reviewed Oct 6, 2016

Assignments are focused on problem-solving rather than the importance of parallelism, missing the point of the lecture. It is a Scala course, so it is always fun!

AL

5.0Reviewed Apr 23, 2018

The course is fairly advanced and you would need to review the materials many times to understand the concept. The assignments are definitely fun and not as straightforward as other courses.

SN

4.0Reviewed Jul 5, 2020

I really learned to think of parallelism in different ways. My only issue was that a lot of the exercises required good spatial skills which are not my strength. Somehow though I passed.

RD

4.0Reviewed Mar 31, 2017

Its a very good course! perhaps the in the practice code, before jumping into the problems they can provide a couple of simple examples/questions such that the main ideas are learnt.

VO

5.0Reviewed Dec 18, 2016

excellent course, a good way to showcase how scala is well suited to patallel programming.The course itself is very practical and the instructors are very knowledgeable

JR

5.0Reviewed Jun 17, 2016

Week 2 assignment was very interesting, thanks. Week 4 assignment was extremely hard to debug. Could you perhaps add more unit tests to BarnesHutSite?

RW

4.0Reviewed Dec 10, 2016

Good course but scala understanding is required for this course. So please register for prior course in the certification task to easily complete this course.

All reviews

Showing: 20 of 276

Kinshuk Varshney
3.0
Reviewed Dec 16, 2017
Marcin Zabłocki
4.0
Reviewed Apr 16, 2019
Vadim Olijnyk
1.0
Reviewed Apr 2, 2018
Steve Sekowski
3.0
Reviewed Nov 16, 2017
Leitner Catalytics, S.L., ESB87366886, Spain
4.0
Reviewed Nov 21, 2017
Samir Sheriff
5.0
Reviewed Jul 19, 2020
Hessam Shafiei Moqaddam
5.0
Reviewed Feb 8, 2018
Li Zhu
5.0
Reviewed Jul 18, 2017
Rishi Khetan
5.0
Reviewed Sep 12, 2016
murmelssonic
5.0
Reviewed Aug 15, 2016
Xiongchu Wu
5.0
Reviewed Dec 6, 2016
Vital Aza
5.0
Reviewed Feb 17, 2017
Joël Vallone
5.0
Reviewed Apr 22, 2019
Massimiliano D’Acunzo
5.0
Reviewed Nov 9, 2018
Natalija Ilic
5.0
Reviewed Mar 16, 2018
Marek
5.0
Reviewed Jun 29, 2016
Roberto Santamaria
5.0
Reviewed Jun 23, 2017
Victor Arias
4.0
Reviewed Aug 11, 2018
Šejla Čebirić
4.0
Reviewed Mar 8, 2019
Ilya Babich
4.0
Reviewed Jan 20, 2019