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.

IntermediateCourse33 hours

Featured reviews

MK

4.0Reviewed Jun 21, 2016

Very good. Only things I wish were better is more comments in some assignments and more prepared tests. Also I miss not having "Statement of Accomplishment" like some other Scala courses :-(.

YS

4.0Reviewed May 16, 2017

The assignment could be optimized and avoid to be more academic since it may make student lost focus and spend too much time on the question itself rather than the parallel programming

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.

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.

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.

SG

4.0Reviewed Sep 16, 2016

Good explanations, relevant assignments. But too small, too little graded assignments as for subject. Be better if the assignments has less starter code.

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

DL

4.0Reviewed Jun 1, 2018

Very challenging course, the assignments are more about practising using parallel programming, would be better to design an assignment to implement the parallel programming.

BP

4.0Reviewed Dec 19, 2016

Very good course overall on the basics of parallel programming in scala. Would have been nice to talk a bit more on the low level setup (parallel and task construct code).

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.

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