oneDPL icon indicating copy to clipboard operation
oneDPL copied to clipboard

pstl: Add initial support for OpenMP

Open nadiasvertex opened this issue 3 years ago • 3 comments

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.

nadiasvertex avatar Jun 12 '21 00:06 nadiasvertex

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.

MikeDvorskiy avatar Jun 29 '21 14:06 MikeDvorskiy

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.

nadiasvertex avatar Jun 29 '21 17:06 nadiasvertex

I have broken up the algorithms into several different files to (hopefully) make it easier to review the code.

nadiasvertex avatar Jul 01 '21 21:07 nadiasvertex

This implementation has been integrated into LLVM PSTL codebase and taken into oneDPL from there.

akukanov avatar Nov 24 '22 16:11 akukanov