Deterministic Reductions in an Asynchronous Parallel Language

Reduction operations are a common and important feature in many parallel programming models. In this paper, we present a new reduction construct for Concurrent Collections (CnC). CnC is a deterministic, asynchronous parallel programming model in which data production and reduction can overlap. While reductions are most frequently incorporated in synchronous contexts where all data is available before parallel reduction begins, our solution works for the asynchronous CnC model. We retain the determinism of the CnC parallel programming model while providing an efficient high-level construct for specifying reductions. Keywords-reductions; declarative languages; singleassignment languages; determinism; parallelism.