Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker
summary
A practical walkthrough shows concrete changes and measured results: replace naive recursion with a logarithmic “dakes for sum of squares” algorithm, parallelize Toom-Cook BigInteger multiply/square with Fork/Join, add a reserved caching entry to avoid duplicate work, and use a ManagedBlocker with the ForkJoinPool so blocked threads trigger extra workers. Runtimes drop from ~44s to ~22s to ~17s to ~8.8s on the demo machine, and peak CPU blackouts shrink (~8% wall‑time gain on the reported run).
AI-written summary · about
chapters (11)
- 0:00Intro
- 8:09ForkJoin
- 11:48Big Integer
- 16:21Multiply
- 22:28Cache
- 27:01Reserve Cache
- 35:12Phaser
- 37:55Workers
- 39:18Reserved Blocker
- 41:27Volatile Blocker
- 45:57Results
related talks
58mTurbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker
46mMake Your CPU Cores Sweat with Parallel Streams
39mThe best multicore-parallelization refactoring you've never heard of
01h 01mFrom Concurrent to Parallel
50mFrom Concurrent to Parallel
41mParallel Programming, Fork Join, and Reducers
51mFrom Linux Threads To ForkJoinPool
51mJava vs CPU — round 2
