https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117899
Bug ID: 117899
Summary: C++17 parallel execution policies with OpenMP backend
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: krispyro at wanadoo dot fr
Target Milestone: ---
Hi,
We would like to use C++17 parallel execution policies [1] provided by GCC with
the OpenMP backend.
The Intel TBB backend provided and maintained by Intel [2] can be used with
linker flag -ltbb but the OpenMP backend is desirable for at least the below
reasons:
*IntelTBB produce many true/false positives with ASAN and TSAN instrumentations
while OpenMP ASAN support looks good [3] and TSAN support is not clear [4].
*IntelTBB is not recommended by Intel nor AMD on AMD hardware
*Clang already supports it [5]
*By default system frozen IntelTBB is used (for instance tbb-2018 on RHEL 8,
tbb-2020 on RHEL 9...) for the IntelTBB backend. With an OpenMP backend the
backend could be upgraded with the compiler if parallel toolchain are used
(gcc-toolset on RHEL, Development Tools Module on SLES...).
>From the latest GCC git sources, there is only a placeholder for an OpenMP
backend. Currently only IntelTBB is supported for STL parallel algorithms. If
the OpenMP backend is not available is there a plan to add it?
Best regards,
Christophe Piault
[1] https://en.cppreference.com/w/cpp/algorithm/execution_policy_tag
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85998
[3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97294
[4] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55561
[5] https://reviews.llvm.org/D99836?id=377510