A Java Fork/Join Framework (2000) [20 citations — 1 self]
Abstract:
This paper describes the design, implementation, and performance of a Java framework for supporting a style of parallel programming in which problems are solved by (recursively) splitting them into subtasks that are solved in parallel, waiting for them to complete, and then composing results. The general design is a variant of the work-stealing framework devised for Cilk. The main implementation techniques surround efficient construction and management of tasks queues and worker threads. The measured performance shows good parallel speedups for most programs, but also suggests possible improvements. 1. INTRODUCTION Fork/Join parallelism is among the simplest and most effective design techniques for obtaining good parallel performance. Fork/join algorithms are parallel versions of familiar divideand -conquer algorithms, taking the typical form: Result solve(Problem problem) { if (problem is small) directly solve problem else { split problem into independent parts fork new subtas...
Citations
| 1446 | The Java Language Specification – Gosling, Joy, et al. |
| 142 | K.H.: The implementation of the Cilk-5 multithreaded language – Frigo, Leiserson, et al. - 1998 |
| 90 | Plaxton. Thread scheduling for multiprogrammed multiprocessors – Arora, Blumofe, et al. - 1998 |
| 58 | An efficient meta-lock for implementing ubiquitous synchronization – Agesen, Detlefs, et al. - 1999 |
| 53 | Garbage collection and local variable type-precision and liveness in Java(TM) virtual machines – Agesen, Detlefs, et al. - 1998 |
| 25 | Concurrent Programming in Java T M Second Edition – Lea - 2000 |
| 16 | StackThreads/MP: Integrating Futures into Calling Standards – Taura, Tabata, et al. - 1999 |
| 12 | Space efficient execution of deterministic parallel programs – Burton, Simpson - 1994 |
| 3 | Hood: A user-level threads library for multiprogrammed multiprocessors – Blumofe, Papadopoulos - 1999 |

