[cfe-dev] [libc++] Working on the parallel STL algorithms

Jeff Hammond via cfe-dev cfe-dev at lists.llvm.org
Thu Jun 29 13:14:13 PDT 2017


(I apologize for not including the thread history properly - I was not on
the list until recently.)

>> Once llvm OpenMP can do things like handle nested parallelism and a few
more advanced things properly all this might be fun (We can go down a big
list if anyone wants to digress)
> This is why I said we might consider using taskloop ;) -- There are other
ways of handling nesting as well (colleagues of mine work on one:
http://www.bolt-omp.org/), but we should probably have a separate thread on
OpenMP and nesting to discuss this aspect of things.

OpenMP tasks are the recommended way to solve the OpenMP
nesting/composition problem.  Implementations are not ready for this yet
though.  For example, Clang 4.0 generates incorrect code for one of my
simple tests of taskloop.  However, if PSTL relies on taskloop, that should
have the nice side effect of ensuring the OpenMP implementation supports
this well.

For what it's worth, Intel 18 implements PSTL using TBB instead of OpenMP
to solve the composition problem (the compiler uses the OpenMP simd pragma
for vectorization).  I have apples-to-apples performance tests with PSTL,
TBB, OpenMP, etc. if anyone is interested (it's probably appropriate for
out-of-band discussion).

Jeff

--
Jeff Hammond
jeff.science at gmail.com
http://jeffhammond.github.io/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170629/f5040a17/attachment.html>


More information about the cfe-dev mailing list