Chevron Left
Back to Parallel programming

Learner Reviews & Feedback for Parallel programming by École Polytechnique Fédérale de Lausanne

4.4
stars
1,835 ratings

About the Course

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....

Top reviews

AL

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.

RC

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.

Filter by:

251 - 273 of 273 Reviews for Parallel programming

By Igor C

Sep 29, 2016

The course if good, but i believe the content should be more didactic.

By Cedric D B

Aug 8, 2017

Good but too theoretical and not very didactic.

By Evgenii S

Jun 24, 2018

For now, the worst course in Specialization.

By Lestar C

Jun 14, 2017

Not enough Scala. Akka version was better :(

By Guomao X

Aug 17, 2016

should contain more details

By Simon

Nov 23, 2018

exercise are too heavy

By Marcin H

Feb 27, 2020

I must admit I am very disappointed with this course.

First of all - provided unit tests are inadequate. To say the least. They do not cover all functionalities that are to be implemented. Of course I could write my own unit tests. If I only knew what I was supposed to do... Yep, a few times my own tests passed but tested functionality was turned down by coursera tests with a perfect message like "assertion failed". Great, I know this. But I want to know what exactly failed without having to guess and reuploading solution dozens of times. I wasn't able to max out the last assignment (I did 9/10) due to another obscure assertion message - "body not found in right sector" and have no idea what was wrong and which body were not in which sector. Message that something went wrong without any details is like no message at all. Implemented functionality is rather straightforward so I suspect something went wrong in previously implemented methods which were accepted by coursera. Moreover I was able to pass one method implementation just by simply filling the whole matrix with one specific value which proves rather poor quality of the tests.

Second thing - this is very academic course. Very. I doubt anyone will find it useful in real life unless you are a student or maybe a teacher.

Generally I feel like I wasted my time here. Sorry.

UPDATE: I am a completionist so I finally managed to max the last assignement out with some guessing and of course like I expected I had a bug in some old method (poor coursera tests had accepted it) but I am still dissapointed and can't imagine why I would need this whole stuff in the real life. What I learnt here is guessing and "hacking" coursera tests.

By Anton K

Aug 5, 2016

The course presents two core approaches to parallel programming - task and data parallelism. While these concepts are really useful, I expected more details on, for example, how to implement the _parallel_ construct used throughout the lectures. The materials were good and I can use some of the ideas straight after the lectures in my everyday coding, but the assignments were really slightly related to the topic.

Barnes Hut simulation assignment. I'd say it has nothing in common with parallel programming in Scala. It looks like the authors looked for some real-life example or use case for Combiners and this simulation model looked nice. But, really, does any developer not working in university would ever use it? It's completely impractical, the most of the time I spent reading the description of simulation model, but the coding itself was just playing with 2D coordinates and some basic recursion. I'd expect something more practical, e.g. implementing simplified form of Hadoop map-reduce or something like that so I can use it after the course. But Barnes-Hut is too specific and is pretty far from everyday problems developers encounter.

By Martin M

Feb 9, 2017

For a while, that's the worst course of scala specialization. All the parallelism is just obvious division of a one big piece on several small pieses, and perfrom parrallel tasks on it. It's enogh to write merge sort with several threads to get the main idea, which is proposed here. You don't need to watch 4 weeks of coursera video and perform tasks to get it. Maybe I'm wrong, but I expected something more than trivial division. Besides that, I don't like the tasks. And I hate the last one week. Very bad description of the problem, it made me really suffer. I'd like much more the first 2 courses. Which I rated as 5 and 4 accordingly, but this one is fail. Besides that, I like the theory about parallel and concurent programming, and all the stuff about "iron". Hope the 4th one course will be better.

By Nikita K

Nov 8, 2023

Not exactly what I was expecting from this course. I hoped for a more hands-on course explaining the concurrent primitives, how the JVM works and many tasks to do. Instead here we have more academic courses, with math theorems, theories and some abstractions, that are good to know, but hard to start using. Also, one of the biggest pains of the course is Scala 3. The new bracket-less syntax brings tons of pain. The code is not readable. You got the wrong space, catch a problem. And guess what, formatting tools won't help you, since you got a compilation error. I felt I was fighting the compiler more than solving the problem. And that is a pretty significant reason for a low rating of the course

By Jarl A H

Feb 1, 2020

I really don't liked how you are forced to implement a logic you can barely understand by looking at the minimal assignment text. I mean, what the heck. I thought this course (or courses) were supposed to teach you specific subjects like parallel programming. Not how you compute the centerX based on four quads in a fork? I mean. come one. At least explain enough so that it's at least remotely possible to implement the core logic in the start of week 4. I mean, how should I know that the size of a fork is <spoiler>? (yup, can't tell if even if you pointed a gun at me)

By Tony B

Jun 30, 2016

Excellent lectures, let down by the difficulty of the assignments.

While the tutors clearly know their stuff, I found the assignments really quite challenging and of limited educational value due to the mixture of new concepts introduced by the lectures along with new (to me) mathematics or CS that also needed to be grasped.

I'm an experienced professional programmer with the EPFL 'FP in Scala' and FRP courses under my belt, so I thought I knew what to expect but this was much more time consuming than I'd thought.

By Daniel Z

Feb 10, 2020

The course, especially the last assignment is too overloaded with math that is not really needed during everyday engineering. I understand that that particle collision simulation is classic example and we've all studied it in college. But common, all particle simulations are already implemented. Give people smth they need during their every-day engineering work.

И пожалуйста, покормите Виктора, по голосу такое ощущение, что совсем ослабел.

By antonin p

May 21, 2017

This course is definitely too low level for me, it is also very scientific computation oriented. It was an interesting parenthesis in this cursus, but not with the time taken. Lesson emphasis too much on specific implementation tricks, and are sometimes hard to follow. Also coding style differs greatly from coding style of other lessons (lots of mutability, intensive usage of explicit loops).

By Robert S

Jul 14, 2017

While some the material was useful, I was extremely disappointed with this course. The first two lectures were nearly intolerable to listen to, and the last assignment was very poorly designed and documented. I would not recommend this course to anyone unless it was significantly redesigned and updated.

By Martin R

Sep 3, 2016

The approach in this course is incorrect, I think that will be a course with more concret examples, but is a course with a lot of teory that is not applied.

By Marco G

Nov 7, 2016

It's difficult to follow the content. The way it is organized could be greatly improved.

By Manuel M

Dec 23, 2023

extremely old content

By Ivan K

Oct 9, 2016

Rather theoretical introduction to the basics of an interesting subject. Regretfully examples and assignments are frequently overly complex in areas which are unrelated to the subject. In addition, people who work with software development should expect to look further if they aim to add to their toolbox.

By Timm S

Oct 9, 2016

Some exercises need some improvement. Tests were not that helpful and the instruction to the last homework was quite bad (many open questions).

By Glendon K

May 17, 2018

The code examples in this course are extremely convoluted. In particular, please don't put multiple statements per line...

By Mikko L

Aug 7, 2016

Academical with close to no real life value.

By Kwaśniewski P

Apr 9, 2017

to much math