Special offers now — see discounted courses.
day
:
hour
:
min
:
sec
See special offers
Parallel and Concurrent Programming with Java 2

Parallel and Concurrent Programming with Java 2

2h 14mAdvanced2019-07-30

Authors

Barron Stone

Barron Stone

Electrical Engineer

Olivia Chiu Stone

Olivia Chiu Stone

Programmer, Engineer

Course details

With parallel computing, you can leverage multiple compute resources to tackle larger problems in a shorter amount of time. In this course, the second in the Parallel and Concurrent Programming with Java series, take a deeper dive into the key mechanisms for writing concurrent and parallel programs. Instructors Olivia and Barron Stone make these (often abstract) concepts down-to-earth, demonstrating key ideas using common kitchen activities. Learn all about synchronization, thread pools, asynchronous tasks, evaluating parallel performance, designing parallel programs, and more. Upon wrapping up this course, you'll have a solid understanding of how to parallelize a sequential program.

Learning objectives
Using a condition variable
Using a semaphore
Preventing a race condition
Use cases for a Barrier vs. a CountDownLatch
Drawing a directed acyclic graph
Using a future
Steps in a divide-and-conquer algorithm
Evaluating parallel performance
Designing parallel programs

Skills covered

JavaProgramming FoundationsOracleProgramming LanguagesSoftware DevelopmentDeep Dive (X:Y)

Concepts

0. Introduction

  • 01 - Learn parallel programming basics
  • 02 - What you should know
  • 03 - Exercise files

1. Synchronization

  • 04 - Condition variable
  • 05 - Condition variable - Java demo
  • 06 - Producer consumer
  • 07 - Producer consumer - Java demo
  • 08 - Semaphore
  • 09 - Semaphore - Java demo

2. Barriers

  • 10 - Race condition
  • 11 - Race condition - Java demo
  • 12 - Barrier
  • 13 - Barrier - Java demo
  • 14 - CountDownLatch - Java demo

3. Asynchronous Tasks

  • 15 - Computational graph
  • 16 - Thread pool
  • 17 - Thread pool - Java demo
  • 18 - Future
  • 19 - Future - Java demo
  • 20 - Divide and conquer
  • 21 - Divide and conquer - Java demo

4. Evaluating Parallel Performance

  • 22 - Speedup, latency, and throughput
  • 23 - Amdahl's law
  • 24 - Measure speedup
  • 25 - Measure speedup - Java demo

5. Designing Parallel Programs

  • 26 - Partitioning
  • 27 - Communication
  • 28 - Agglomeration
  • 29 - Mapping

6. Challenge Problems

  • 30 - Welcome to the challenges
  • 31 - Challenge - Matrix multiply in Java
  • 32 - Solution - Matrix multiply in Java
  • 33 - Challenge - Merge sort in Java
  • 34 - Solution - Merge sort in Java
  • 35 - Challenge - Download images in Java
  • 36 - Solution - Download images in Java

Conclusion

  • 37 - Next steps
  • 38 - Additional resources

About us

LyndaKade is a leading learning platform that helps people learn business, software, technology, and creative skills to achieve personal and professional goals.

Phone numberAparat ChannelTelegram SupportTelegram ChannelInstagram Page

All rights to this site belong to LyndaKade.

Terms of Service|Privacy Policy

نماد الکترونیک enamad در صورت اتصال با آی‌پی داخل کشور، نمایش داده خواهد شد.
logo-samandehi - لوگو ساماندهی
Zarinpal
Zibal