-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C++17 parallelism #273
base: develop
Are you sure you want to change the base?
C++17 parallelism #273
Conversation
Sorry, I was working on other things. This is compiling with Intel 2023.0, Clang 14.0, GCC 11.3 and NVC++ 22.11 at least, although there are a few bugs. There is a NVC++ compiler bug that affects
This one fails because I wrote bad C++ code. It's fine with directive atomics.
Intel fails here. I suspect it's a compiler bug, but I have not proven this.
Clang and GCC fail to link on x86 Linux because of TBB problems. On MacOS (Apple Silicon), GCC 12 builds and runs fine, albeit single-threaded. Here is how you reproduce things: NVHPC CPU
NVHPC GPU
GCC
Intel
|
@trws I recall you were interested in this. |
I won't claim this is perfect yet, but I've already had to redo the entire commit process because of git submodule conflicts, and generally git does a terrible job with merges whenever upstream moves, so it would be super awesome if we could get it good enough to merge and then add the rest of the polish. At this point, I've spent more time dealing with git merge problems than writing the code... |
And please squash when you merge (assuming you are willing), because the git history here is useless and embarrassing. |
Thanks for taking the time to put this together @jeffhammond! Squash shouldn't be a problem, but it looks like right now it's missing an ifdef or cmake conditional or similar because the stdpar utils are getting pulled into builds for unsupported compilers and taking out the other azure builds. @rhornung67, if the other builds get fixed up, think we can pull this in? |
That header is only included in StdPar files but it seems that I guess I need to put
|
i have implemented guards everywhere so this change should be a no-op on your CI. if you want to test StdPar, please set |
It looks like almost everything builds, except this:
|
Some dumb guy committed something he should not have but it's not clear who it was 🤦♂️ I'll fix it asap. |
Remove debug print preprocessing
cd48d2a
to
38bf9bd
Compare
I implemented C++17 parallel -
std::for_each_n
and friends - and have tested its correct function with GCC 10+, Intel 2021+ and NVHPC 22+.There are a few issues I still need to document, which I will add next week.