<div dir="ltr">(I apologize for not including the thread history properly - I was not on the list until recently.)<br><br>>> 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)<br>> 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: <a href="http://www.bolt-omp.org/">http://www.bolt-omp.org/</a>), but we should probably have a separate thread on OpenMP and nesting to discuss this aspect of things.<br><br>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.<div><br></div><div>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).</div><div><br></div><div>Jeff<br><br>--<br>Jeff Hammond<br><a href="mailto:jeff.science@gmail.com">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/">http://jeffhammond.github.io/</a></div></div>