Hyperqueues
-
Published:2019-12-26
Issue:4
Volume:6
Page:1-35
-
ISSN:2329-4949
-
Container-title:ACM Transactions on Parallel Computing
-
language:en
-
Short-container-title:ACM Trans. Parallel Comput.
Author:
Vandierendonck Hans1,
Nikolopoulos Dimitrios S.1
Affiliation:
1. Queen’s University Belfast, United Kingdom
Abstract
The hyperqueue is a programming abstraction for queues that results in deterministic and scale-free parallel programs. Hyperqueues extend the concept of Cilk++ hyperobjects to provide thread-local views on a shared data structure. While hyperobjects are organized around private local views, hyperqueues provide a shared view on a queue data structure. Hereby, hyperqueues guarantee determinism for programs using concurrent queues. We define the programming API and semantics of two instances of the hyperqueue concept. These hyperqueues differ in their API and the degree of concurrency that is extracted. We describe the implementation of the hyperqueues in a work-stealing scheduler and demonstrate scalable performance on pipeline-parallel benchmarks from PARSEC and StreamIt.
Funder
European Community's Seventh Framework Programme
NovoSoft project Marie Curie Actions
United Kingdom EPSRC GEMSCLAIM project
TEXT project
Publisher
Association for Computing Machinery (ACM)
Subject
Computational Theory and Mathematics,Computer Science Applications,Hardware and Architecture,Modelling and Simulation,Software