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?
• 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 Parallel Programming in Java course offered by Coursera in partnership with Rice University 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).
Get more details
Visit programme websiteProgramme 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)
Check out the full curriculum
Visit programme websiteKey information
Duration
- Part-time
- 1 days
Start dates & application deadlines
Language
Delivered
Disciplines
Computer Sciences Software Engineering View 554 other Short Courses in Software Engineering in United StatesExplore more key information
Visit programme websiteAcademic 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
- No previous experience necessary
Make sure you meet all requirements
Visit programme websiteTuition Fee
-
International
FreeTuition FeeBased on the tuition of 0 USD for the full programme during 1 days. -
National
FreeTuition FeeBased on the tuition of 0 USD for the full programme during 1 days.
You can choose from hundreds of free courses, or get a degree or certificate at a breakthrough price. You can now select Coursera Plus, an annual subscription that provides unlimited access.
Funding
Coursera provides financial aid to learners who cannot afford the fee. Apply for it by clicking on the Financial Aid link beneath the "Enroll" button on the left. You'll be prompted to complete an application and will be notified if you are approved. You'll need to complete this step for each course in the Specialization, including the Capstone Project.