MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

A Java Fork/Join Framework (2000) [20 citations — 1 self]

by Doug Lea
Add To MetaCart

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