Save for later

Parallel Programming in Java

Parallel, Concurrent, and Distributed 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).

Get Details and Enroll Now

OpenCourser is an affiliate partner of Coursera and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.3 based on 141 ratings
Length 5 weeks
Effort Four weeks of study, 4-8 hours/week depending on past experience with sequential programming in Java
Starts Jun 26 (44 weeks ago)
Cost $79
From Rice University via Coursera
Instructor Vivek Sarkar
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Software Development

Get a Reminder

Send to:

Similar Courses

What people are saying

introduction to parallel programming

I may say this course "A good introduction to parallel programming".I hope the next course in this specialization will get much better.

This course is a good introduction to parallel programming.

Excellent introduction to parallel programming in Java.

Great introduction to parallel programming in Java.

This course is a very nice introduction to parallel programming in Java.

Read more

highly recommend this course

I highly recommend this course for an introduction to parallel programming.

I highly recommend this course.

Read more

mini projects

Lectures were adequate to understand the basic concepts/syntax and where and how to use them, but did not go deep into the underlying working.The mini projects weren't that helpful since the assignments were the same examples as shown in the lecture, and the TODOs were generally just a couple of lines, leaving us with with little to do.By the end of the course, I got to know the different Java util classes to use to for parallelism.

it'll be perfect if mini projects can deeper test what we've learned in the class.

One of the problems is that the lectures are overly basic, and the mini projects are not challenging, at least not in a helpful way (quizzes are sometimes challenging due to some concepts not covered in the lectures at all).

The first and second mini projects were of average difficulty, but the third and fourth mini projects were too trivial.

Read more

too easy

i was disappointed by Week's 3 and 4's assignment task, they were too easy, nevertheless learned a great lot of information.

The mini-project for week 3 is too easy.

The exercises were a bit too easy in my opinion.

On the whole, this course was just too short and too easy.

Read more

'd like

I'd like to suggest to have more concrete examples to explain many concepts like SPAN, signal and put, etc.

It was useful and interesting course, however, I'd like to see more complicated practical tasks Excellent lecture videos.

Read more

same code

Then I just had to keep submitting the same code over and over again until the tests finally all pass.

It's nice the number of times you can submit is unlimited, but having to submit the same code just to pass a certain speedup threshold is not the best use of time.Overall, I learned a great deal, and appreciate all of the hard work that went behind putting together a course like this.

Read more

Careers

An overview of related careers and their average salaries in the US. Bars indicate income percentile.

International Programming Coordinator $45k

Interactive Programming Coordinator $46k

Programming Acquisitions $61k

Video Programming/AOL Music Editor $66k

Test Programming Technician $68k

Advanced Program Integration Support (Planning and Programming Oversite) $70k

Assistant Digital Campaigns and Programming Social Action Writer/Coordinator $76k

Bank Programming Tech Support Specialist $80k

Sys Anlys and Programming-Spec (Lab IT) $81k

IT and Programming Specialist $122k

FPGA/ASIC Design Engineer u2013 Accelerated Parallel Computing $131k

Assistant Adjunct Professor - Multimedia Programming $133k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.3 based on 141 ratings
Length 5 weeks
Effort Four weeks of study, 4-8 hours/week depending on past experience with sequential programming in Java
Starts Jun 26 (44 weeks ago)
Cost $79
From Rice University via Coursera
Instructor Vivek Sarkar
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Software Development

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now