Back to Parallel Programming in Java
Rice University

Parallel Programming in Java

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

Status: Distributed Computing
Status: Dataflow
IntermediateCourse19 hours

Featured reviews

RA

5.0Reviewed Dec 27, 2017

Very relevant concepts, explained beautifully by a very experienced professor. The assignments were good, but they could involve more programming for more practice!

AB

4.0Reviewed Jan 28, 2018

Instructor is awesome. However instead of sharing ready libraries for parallelism (like forall loop) in section 3, native codes should be used for forall loops etc.

JC

4.0Reviewed Jun 26, 2020

Great introduction to parallel programming. Lectures were clear, summaries were helpful, quizzes were not trivial, discussion forum is good, but the assignments' grading system could be improved.

SB

5.0Reviewed Sep 2, 2020

I like the course very much. I am a working software engineer and I believe it will be helpful in my work. Prof Vivek is so clear in explanation and pretty to the point.

V

4.0Reviewed Nov 7, 2017

Very useful course about parallel programming theory and practice.Could be less examples with custom libraries instead of standard java features looking to practical usage at work.

SP

5.0Reviewed May 17, 2020

I found this course very useful. I can see the utilisation of parallel computing in many fields of software development industry. So it's really useful for developers.

KK

4.0Reviewed Jun 19, 2018

Excellent Course.I always wanted a good course on java concurrency and parallel programming.And finish->async, isolated, forAsync constructs are awesome.I have learnt much from this course.

NK

4.0Reviewed Jul 5, 2020

Explanation of theory was best. But Assignments lacked clarity. For example, we might expect little more clarification about threads In order to use them effectively

JL

5.0Reviewed Dec 14, 2019

It was actually quite fun. I particularly enjoyed the Two Sigma interviews, which gave me a better understanding about how the course concepts are applied in business.

SR

4.0Reviewed Aug 30, 2017

Introduction to theoretical concepts was good, but not very deep. The exercises didn't really contribute much to my understanding of the course material in general.

YE

4.0Reviewed Feb 28, 2019

This course explain the concepts in a great way but the exercises needs to be more rich with problems to enhance our understanding to the concepts.

FJ

5.0Reviewed Oct 14, 2020

great course over here it has been great interacting with a simplified course where every complex thing has been narrowed down to easily understandable concepts

All reviews

Showing: 20 of 265

Felipe Reis
2.0
Reviewed Mar 11, 2018
Oleksandr Vasko
2.0
Reviewed Mar 15, 2019
Pavel Bazin
2.0
Reviewed Nov 19, 2017
Rongpeng Li
4.0
Reviewed Nov 12, 2018
Roman Hrushchak
5.0
Reviewed Oct 25, 2021
Brij Raj Kishore
5.0
Reviewed Jul 20, 2020
RAHUL KHATOLIYA
3.0
Reviewed Jul 20, 2021
Pratik Sawant
5.0
Reviewed Apr 15, 2021
Talgat Manglayev
5.0
Reviewed Apr 22, 2018
Samujjal Barman
5.0
Reviewed Sep 2, 2020
Julie Lollis
5.0
Reviewed Dec 15, 2019
Nikita Skybytskyi
4.0
Reviewed Mar 5, 2022
Pushkar Shrestha
4.0
Reviewed May 3, 2021
Anton Malmygin
3.0
Reviewed Apr 19, 2020
Manmeet Dhaliwal
3.0
Reviewed Jan 31, 2022
Vladislav Lipianin
3.0
Reviewed Mar 19, 2021
Jakob Ullmann
2.0
Reviewed Mar 15, 2021
Riccardo Pasquini
2.0
Reviewed Jul 27, 2019
David Lin
5.0
Reviewed Aug 28, 2017
Ryan Bird
5.0
Reviewed Sep 19, 2017