oneDPL
oneDPL copied to clipboard
pstl: Add initial support for OpenMP
This adds initial support for OpenMP as a backend to the PSTL. It is adapted from support I am working on for LLVM's libc++. There are some compile errors present here that are not present in the libc++ version, since it appears that oneDPL does not provide the same guarantees as the PSTL does.
Additionally, the parallel_partial_sort algorithm fails on arrays of some length (but not on all arrays.) I am working on debugging the issue, but some help would be appreciated.
Additionally, there is a final algorithm that hasn't been implemented yet.
Christopher, I approved CI check. First, please care about our format style (we used clang-format with an option file - see https://github.com/oneapi-src/oneDPL/blob/main/.clang-format). Also I would propose to split so huge file into several.. may be one per one(or two) parallel patterns. It will make review process (and further development/support) clearer and simpler.
Do you want me to abandon this PR and create several commits, each adding more parallel functionality so you can see them one at a time?
I guess I don't need to abandon it. I can just rebase it and add the commits one at a time. I'll work on that.
I have broken up the algorithms into several different files to (hopefully) make it easier to review the code.
This implementation has been integrated into LLVM PSTL codebase and taken into oneDPL from there.