Reducers and other Cilk++ hyperobjects

  • Authors:
  • Matteo Frigo;Pablo Halpern;Charles E. Leiserson;Stephen Lewin-Berlin

  • Affiliations:
  • Cilk Arts, Burlington, MA, USA;Cilk Arts, Burlington, MA, USA;Cilk Arts, Burlington, MA, USA;Cilk Arts, Burlington, MA, USA

  • Venue:
  • Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper introduces hyperobjects, a linguistic mechanism that allows different branches of a multithreaded program to maintain coordinated local views of the same nonlocal variable. We have identified three kinds of hyperobjects that seem to be useful -- reducers, holders, and splitters -- and we have implemented reducers and holders in Cilk++, a set of extensions to the C++ programming language that enables "dynamic" multithreaded programming in the style of MIT Cilk. We analyze a randomized locking methodology for reducers and show that a work-stealing scheduler can support reducers without incurring significant overhead.