Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker

A session at JAX Finance 2017

Fork/Join is a framework for parallelizing calculations using recursive decomposition, also called divide and conquer. These algorithms occasionally end up duplicating work, especially at the beginning of the run. We can reduce wasted CPU cycles by implementing a reserved caching scheme. Before a task starts its calculation, it tries to reserve an entry in the shared map. If it is successful, it immediately begins. If not, it blocks until the other thread has finished its calculation. Unfortunately this might result in a significant number of blocked threads, decreasing CPU utilization. In this talk we will demonstrate this issue and offer a solution in the form of the ManagedBlocker. Combined with the Fork/Join, it can keep parallelism at the desired level.

About the speaker

This person is speaking at this event.
Heinz Kabutz

Heinz fiddles around with Java and publishes his weird discoveries on his Java Specialists' Newsletter. Not for the faint hearted. He lives on Crete, Greece. bio from Twitter

Sign in to add slides, notes or videos to this session

Tell your friends!

View the schedule


See something wrong?

Report an issue with this session