I have a couple questions about nvc++'s
Which CPU threading library does it use? The documentation only mentions that the code runs on multiple cores but I haven’t been able to find any specific implementation details. Is it implemented directly on top of pthreads or is it built on top of a threading library like TBB?
What is the advantage of using nvc++ with
-stdpar=multicore over any other mainstream C++17 compiler? Is it just the flexibility to be able to use nvc++ for code that might either run on CPU or GPU? If I’m already using parallel execution policies with g++ then is there any reason to consider using nvc++ with
Is it implemented directly on top of pthreads or is it built on top of a threading library like TBB?
It uses our OpenMP runtime via Thrust’s OpenMP back-end.
Is it just the flexibility to be able to use nvc++ for code that might either run on CPU or GPU?
This would be the primary advantage.
For OpenMP, we do often will out perform GNU in multicore performance, but I don’t have any benchmarks so don’t know if this carries over to C++ stdpar. Then again, the best benchmark is you’re own code. So, if you’re happy with g++ and only want to use us for GPU offload, that’s fine. Plus it’s always recommended to develop and test using multiple compilers.
I am on the SPEC CPU committee and we are looking for new codes to be candidates for the follow-on to SPEC CPU 2017, including codes using stdpar. Do you have an application that you may be able to submit? Please see: SPEC CPU v8 Benchmark Search Program
Thanks for the info!
Let me think a bit about SPEC and get back to you.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.