Parallel Programming in Java

This course is part of Parallel, Concurrent, and Distributed Programming in Java Specialization

Instructor: Vivek Sarkar

Skills you'll gain

  •   Distributed Computing
  •   Algorithms
  •   Programming Principles
  •   Performance Tuning
  •   Java
  •   Application Frameworks
  •   Computer Science
  •   Scalability
  •   Functional Design
  •   Java Programming
  • There are 7 modules in this course

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

    Task Parallelism

    Functional Parallelism

    Talking to Two Sigma: Using it in the Field

    Loop Parallelism

    Data flow Synchronization and Pipelining

    Continue Your Journey with the Specialization "Parallel, Concurrent, and Distributed Programming in Java"

    Explore more from Software Development

    ©2025  ementorhub.com. All rights reserved