Overview
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?
This Parallel Programming in Java course offered by Coursera in partnership with Rice University focuses on extending sequential Java programming knowledge to multicore parallelism, reflecting the reality that modern computers are multicore systems. It introduces the parallel programming paradigms enabled by Java 7 and Java 8 frameworks, including ForkJoin and Stream, which have significantly reshaped approaches to parallelism.
Through four modules, each featuring a hands-on mini-project, learners gain practical experience applying key concepts independently beyond the course. The course also provides access to instructors and mentors through online forums for individualized support.
It covers the theory of parallelism, including computation graphs, work, span, ideal parallelism, parallel speedup, Amdahl’s Law, data races, and determinism, as well as task parallelism with ForkJoin, functional parallelism using Future and Stream, loop-level parallelism with barriers and chunking, and dataflow parallelism using the Phaser framework and data-driven tasks, equipping learners to apply these concepts in multicore Java programs and build a foundation for other parallel programming systems.
Programme Structure
Course structure:
- Task Creation and Termination (Async, Finish)
- Tasks in Java's Fork/Join Framework
- Computation Graphs, Work, Span
- Multiprocessor Scheduling, Parallel Speedup
- Amdahl's Law
- ReciprocalArraySum using Async-Finish (Demo)
- ReciprocalArraySum using RecursiveAction's in Java's Fork/Join Framework (Demo)
Key information
Duration
- Part-time
- 14 days
- 10 hrs/week
Start dates & application deadlines
Language
Delivered
- Self-paced
Campus Location
- Mountain View, United States
Disciplines
Software Engineering View 330 other Short Courses in Software Engineering in United StatesWhat students do after studying
Academic requirements
We are not aware of any specific GRE, GMAT or GPA grading score requirements for this programme.
English requirements
We are not aware of any English requirements for this programme.
Other requirements
General requirements
- Intermediate level
- Some related experience required
- This course is aimed at learners with Java programming experience who want to develop skills in parallel programming to build efficient applications that leverage multicore systems.
Tuition Fees
Additional Details
Course is free for the first 7 days. After 7 days, the course can be accessed with the Coursera Plus Subscription