|
Boost : |
Subject: Re: [boost] Synchronization (RE: [compute] review)
From: John Bytheway (jbytheway+boost_at_[hidden])
Date: 2014-12-28 22:43:26
On 2014-12-28 20:35, Kyle Lutz wrote:
> On Sun, Dec 28, 2014 at 4:46 PM, Gruenke,Matt <mgruenke_at_[hidden]> wrote:
>> -----Original Message-----
>> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Kyle Lutz
>> Sent: Sunday, December 28, 2014 14:42
>> To: boost_at_[hidden] List
>> Subject: Re: [boost] [compute] review
>>
>>> On Sun, Dec 28, 2014 at 1:54 AM, Gruenke,Matt wrote:
>>>> Also, I agree with Thomas M that it'd be useful for operations to return events.
>>
>>> All asynchronous operations in the command queue class do return events. One of his
>>> comments was to also return events from the synchronous methods for consistency and
>>> I am working on adding this.
>>
>> Well, what I had in mind was events for higher-order operations, like boost::compute::transform().
>
> Yes, I would also like to have higher-level support for chaining
> together algorithms asynchronously. However, designing a generic and
> generally useful API for this is a complex task and may take some time
> and (I've shied away from just adding an extra "_async()" function for
> all of the algorithm APIs as I think it could be done
> better/more-extensibly). Any ideas/proposals for this would be great
> to hear.
The approach that people seem to be converging on is using futures and
continuations for this sort of thing. I think that works here.
See for example HPX <https://github.com/STEllAR-GROUP/hpx>
Given that you already have a wait_list object, I imagine that the
required primitives are already there in OpenCL to chain operations in
arbitrary graphs.
John Bytheway
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk