Chevron Left
Back to Parallel Programming in Java

Parallel Programming in Java, Rice University

485 ratings
102 reviews

About this Course

This course teaches learners (industry professionals and students) the fundamental concepts of parallel programming in the context of Java 8. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple processors at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as ForkJoin, Stream, and Phaser) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices, while also learning about their theoretical foundations including computation graphs, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism. Why take this course? • All computers are multicore computers, so it is important for you to learn how to extend your knowledge of sequential Java programming to multicore parallelism. • Java 7 and Java 8 have introduced new frameworks for parallelism (ForkJoin, Stream) that have significantly changed the paradigms for parallel programming since the early days of Java. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. • During the course, you will have online access to the instructor and the mentors to get individualized answers to your questions posted on forums. The desired learning outcomes of this course are as follows: • Theory of parallelism: computation graphs, work, span, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism • Task parallelism using Java’s ForkJoin framework • Functional parallelism using Java’s Future and Stream frameworks • Loop-level parallelism with extensions for barriers and iteration grouping (chunking) • Dataflow parallelism using the Phaser framework and data-driven tasks Mastery of these concepts will enable you to immediately apply them in the context of multicore Java programs, and will also provide the foundation for mastering other parallel programming systems that you may encounter in the future (e.g., C++11, OpenMP, .Net Task Parallel Library)....

Top reviews


Dec 13, 2017

This is a great course in parallel programming. The videos were very clear, summaries reinforced the video material and the programming projects and quizzes were challenging but not overwhelming.


Aug 28, 2017

Great course. Introduces Parallel Programming in Java in a gentle way.\n\nKudos to Professor Vivek Sarkar for simplifying complex concepts and presenting them in an elegant manner.

Filter by:

101 Reviews

By Jaime Fernando Ortega Culaciati

Dec 11, 2018

This is a very good course, but I think that it needs more visual elements and more challenging homeworks. However, this course doesn't just offer a "how you can do this in Java", since it will first show you the theory. Great course.

By tarun n

Dec 09, 2018

The concepts like thinking about work,span,cp.amhdals law very very helpful. Although i believe there should be more examples wit code as in quiz.

By Sonu Mishra

Dec 03, 2018

I liked the course material and the relevant assignments and projects. It is of right difficulty level: gives you knowledge and makes you comfortable with the concepts and tools without making you slog for weeks. I feel students will be able to retain the gained knowledge longer than traditional classes.

By Rongpeng Li

Nov 12, 2018

Please make the course more difficult.

By Mehul Singhal

Nov 08, 2018

Very informative course.

By Sudharaka Palamakumbura

Nov 06, 2018

Great course!!!

By Arun Kumar

Nov 03, 2018

The fundamental core concepts are lucidly setforth by the teacher.

By Light0617

Nov 02, 2018



Oct 24, 2018

This course is a very nice introduction to parallel programming in Java. It highlights the key libraries to explores for production use. On thing I didn't like is that the programming assignments are a copy paste of the demonstration videos in the course. All in all I enjoyed taking this course!

By Grigory Neginsky

Oct 24, 2018

The course is good!