Boost logo

Boost :

Subject: [boost] [compute] review
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2014-12-30 10:15:57


Hi,

I have no time to do a complete review. Anyway here it is my minimal review

*1. What is your evaluation of the design?**
***
I would prefer that the algorithms take as first parameter the queue
(which could be abstracted to an asynchronous executor).

The performances let think that there is no interest in using the
library for containers having less than 10^4/10^5 elements.

Even if this is considered a low level library, the documentation should
show how a library writer could make use of the provided interface to
provide a higher one.

I would prefer that the library make use of std::future or boost::future
class instead of adding an additional one.
Do the author tried to make use of the existing futures? if yes, which
problems were found?

I'm missing a range interface to most of the algorithms.

I suspect that as this is a C++03 library it doesn't take advantages of
some interesting C++11+/C++14 features.

It is not clear which operations are synchronous, which ones could
block, ...

In order to get the native OpenCl handle I suggest to name the function
get_native_handle instead of get.

*2. What is your evaluation of the implementation?*
I've not see at the implementation.

*3. What is your evaluation of the documentation?*

The documentation lacks of some core tutorials. I was unable to have an
idea of what a context is, what can be done with a command_queue, what
is a Kernel, a pipe, ...? Does it mean that the user must know OpenCL?

The reference documentation should follow he C++ standard way, including
pre-conditions, effects, synchronization, throws clauses.

I would appreciate a description of the algorithms used, how the
parallelism is used? is this completely managed by OpenCL or do the
library something else?

*4. What is your evaluation of the potential usefulness of the library?**
***
This is essentially an optimization library. It should be quite useful,
but the performances results don't probe it.

*5. Did you try to use the library? With what compiler? Did you have any
problems?**
*
No.*
***
*6. How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?**
***
A glance.

*7. Are you knowledgeable about the problem domain?*

Yes and not. I don't know about OpenCL, but I'm aware of the current
parallel proposals.

*8. Do you think the library should be accepted as a Boost library? **
*
As I have not taken too much time I'm unable to say that this library
should not be included in Boost. So I vote to include it conditionally,
subject to:
     * I would need some performances that probe the library is better
than using standard STL containers in most of the cases.
     * The documentation should be completed with more tutorials and a
better reference documentation.

Best,
Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk