Reducers and other Cilk++ hyperobjects

M Frigo, P Halpern, CE Leiserson… - Proceedings of the twenty …, 2009 - dl.acm.org
M Frigo, P Halpern, CE Leiserson, S Lewin-Berlin
Proceedings of the twenty-first annual symposium on Parallelism in …, 2009dl.acm.org
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 …
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.
ACM Digital Library