Engineering Papers⌕ Search

DOE OSTI · 1178511

Optimizing Data Locality for Fork/Join Programs Using Constrained Work Stealing

Abstract

We present an approach to improving data locality across different phases of fork/join programs scheduled using work stealing. The approach consists of: (1) user-specified and automated approaches to constructing a steal tree, the schedule of steal operations and (2) constrained work stealing algorithms that constrain the actions of the scheduler to mirror a given steal tree. These are combined to construct work stealing schedules that maximize data locality across computation phases while ensuring load balance within each phase. These algorithms are also used to demonstrate dynamic coarsening, an optimization to improve spatial locality and sequential overheads by combining many finer-grained tasks into coarser tasks while ensuring sufficient concurrency for locality-optimized load balance. Implementation and evaluation in Cilk demonstrate performance improvements of up to 2.5x on 80 cores. We also demonstrate that dynamic coarsening can combine the performance benefits of coarse task specification with the adaptability of finer tasks.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Lifflander, Jonathan, Krishnamoorthy, Sriram, Kale, Laxmikant. 2014-11-16. Optimizing Data Locality for Fork/Join Programs Using Constrained Work Stealing. https://doi.org/10.1109/sc.2014.75

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related reports

CilkSpec: Optimistic Concurrency for Cilk

Recursive parallel programming models such as Cilk strive to simplify the task of parallel programming by enabling a simple divide-and-conquer model of programming. This model is effective in re- cursively partitioning work into smaller parts and combining their results. However, recursive work partitioning can impose additional constraints on concurrency than is implied by the true dependences in a program. In this paper, we present a speculation-based approach to alleviate the concurrency constraints imposed by such recursive parallel programs. We design a runtime infrastructure that supports speculative execution and a predictor to accurately learn and identify opportunities to relax extraneous concurrency constraints. Experimental evaluation demonstrates that speculative relaxation of concurrency constraints can deliver gains of up to 1.6× on 30 cores over baseline Cilk.

cilk↗