Sciweavers

OOPSLA
2009
Springer

The design of a task parallel library

14 years 6 months ago
The design of a task parallel library
The Task Parallel Library (TPL) is a library for .NET that makes it easy to take advantage of potential parallelism in a program. The library relies heavily on generics and delegate expressions to provide custom control structures expressing structured parallelism such as map-reduce in user programs. The library implementation is built around the notion of a task as a finite CPU-bound computation. To capture the ubiquitous apply-to-all pattern the library also introduces the novel concept of a replicable task. Tasks and replicable tasks are assigned to threads using work stealing techniques, but unlike traditional implementations based on the THE protocol, the library uses a novel data structure called a ‘duplicating queue’. A surprising feature of duplicating queues is that they have sequentially inconsistent behavior on architectures with weak memory models, but capture this non-determinism in a benign way by sometimes duplicating elements. TPL ships as part of the Microsoft Pa...
Daan Leijen, Wolfram Schulte, Sebastian Burckhardt
Added 27 May 2010
Updated 27 May 2010
Type Conference
Year 2009
Where OOPSLA
Authors Daan Leijen, Wolfram Schulte, Sebastian Burckhardt
Comments (0)