Coursera Logo

Rice University - Parallel Programming in Java 

  • Offered byCoursera

Parallel Programming in Java


19 hours

Start from

Start Now

Total fee


Mode of learning


Difficulty level


Official Website

Explore Free Course External Link Icon



Parallel Programming in Java

  • Shareable Certificate Earn a Certificate upon completion
  • 100% online Start instantly and learn at your own schedule.
  • Course 1 of 3 in the Parallel, Concurrent, and Distributed Programming in Java Specialization
  • Flexible deadlines Reset deadlines in accordance to your schedule.
  • Intermediate Level
  • Approx. 19 hours to complete
  • English Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish
Read more
Details Icon

Parallel Programming in Java
Course details

Skills you will learn
More 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).
Read more

Parallel Programming in Java

Welcome to the Course!

Course Welcome

General Course Info

Course Icon Legend

Discussion Forum Guidelines

Pre-Course Survey

Mini Project 0: Setup

1.1 Task Creation and Termination (Async, Finish)

1.2 Tasks in Java's Fork/Join Framework

1.3 Computation Graphs, Work, Span

1.4 Multiprocessor Scheduling, Parallel Speedup

1.5 Amdahl's Law

ReciprocalArraySum using Async-Finish (Demo)

ReciprocalArraySum using RecursiveAction's in Java's Fork/Join Framework (Demo)

1.1 Lecture Summary

1.2 Lecture Summary

1.3 Lecture Summary

1.4 Lecture Summary

1.5 Lecture Summary

Mini Project 1: Reciprocal-Array-Sum using the Java Fork/Join Framework

Module 1 Quiz

Functional Parallelism

2.1 Futures: Tasks with Return Values

2.2 Futures in Java's Fork/Join Framework

2.3 Memoization

2.4 Java Streams

2.5 Data Races and Determinism

ReciprocalArraySum using RecursiveTask's in Java's Fork/Join Framework (Demo)

Parallel List Processing Using Java Streams (Demo)

2.1 Lecture Summary

2.2 Lecture Summary

2.3 Lecture Summary

2.4 Lecture Summary

2.5 Lecture Summary

Mini Project 2: Analyzing Student Statistics Using Java Parallel Streams

Module 2 Quiz

Industry Professional on Parallel, Concurrent, and Distributed Programming in Java - Jim Ward, Managing Director

Industry Professionals on Parallelism - Jake Kornblau and Margaret Kelley, Software Engineers

About these Talks

Loop Parallelism

3.1 Parallel Loops

3.2 Parallel Matrix Multiplication

3.3 Barriers in Parallel Loops

3.4 Parallel One-Dimensional Iterative Averaging

3.5 Iteration Grouping/Chunking in Parallel Loops

Parallel Matrix Multiplication (Demo)

Parallel One-Dimensional Iterative Averaging (Demo)

3.1 Lecture Summary

3.2 Lecture Summary

3.3 Lecture Summary

3.4 Lecture Summary

3.5 Lecture Summary

Mini Project 3: Parallelizing Matrix-Matrix Multiply Using Loop Parallelism

Module 3 Quiz

Data flow Synchronization and Pipelining

4.1 Split-phase Barriers with Java Phasers

4.2 Point-to-Point Sychronization with Phasers

4.3 One-Dimensional Iterative Averaging with Phasers

4.4 Pipeline Parallelism

4.5 Data Flow Parallelism

Phaser Examples

Pipeline & Data Flow Parallelism

4.1 Lecture Summary

4.2 Lecture Summary

4.3 Lecture Summary

4.4 Lecture Summary

4.5 Lecture Summary

Mini Project 4: Using Phasers to Optimize Data-Parallel Applications

Exit Survey

Module 4 Quiz

Industry Professional on Concurrency - Dr. Shams Imam, Software Engineer, Two Sigma

Industry Professional on Distribution - Dr. Eric Allen, Senior Vice President, Two Sigma

Our Other Course Offerings

Parallel Programming in Java
Admission Process

    Important Dates

    May 25, 2024
    Course Commencement Date

    Other courses offered by Coursera

    – / –
    Start Now
    – / –
    – / –
    – / –
    Start Now
    – / –
    Start Now
    View Other 6713 CoursesRight Arrow Icon

    Parallel Programming in Java
    Students Ratings & Reviews

    Verified Icon1 Rating
    Aman Mukhopadhyay
    Parallel Programming in Java
    Other: 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.
    Reviewed on 19 Jul 2021Read More
    Thumbs Up IconThumbs Down Icon
    View All 1 ReviewsRight Arrow Icon

    Parallel Programming in Java

    Student Forum

    chatAnything you would want to ask experts?
    Write here...