A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.
Document number: N3991
Date: 2014-05-23
Task Region r2
by Pablo Halpern, Arch Robison, Hong Hong, Artur Laksberg, Gor Nishanov, Herb Sutter
Excerpt:
1 Abstract
This paper introduces C++ a library function template
task_region
and a library classtask_region_handle
with member functionsrun
andwait
that together enable developers to write expressive and portable fork-join
parallel code.This proposal is a revision of N3832.
2 Changes from N3832
The main change from the previous revision of this paper is the addition of the
task_region_handle
class as an explicit means of communicating from atask_region
to the spawn point of a child task. A change in this vein was requested at the February 2014 Issaquah meeting as a way to avoid “magic” or “out-of-band communication.” It was also suggested that requiring an explicit handshake between these parts of a task region would make it easier for compilers and linkers to avoid combining disparate implementations of the library proposed herein.An additional change is that the type of parallelism described in N3832 was “terminally strict” whereas the type of parallelism described in this paper is “fully strict” (see Strict Fork-join Parallelism, below). The change was made because terminal strictness was deemed to present implementation difficulties for little gain in expressiveness.
These changes created an issue not present in the original paper: potential violations of fully-strict fork-join parallelism. A few sentences in the formal wording and a new issue in the issues section was added to the
paper in response.Finally,
task_cancelled_exception
was renamed totask_canceled_exception
(one el instead of two).
Add a Comment
Comments are closed.