Skip to content

Commit 02793fc

Browse files
committed
Replace oneDPL with Dispatch on macOS
1 parent 99fa1fe commit 02793fc

File tree

4 files changed

+22
-12
lines changed

4 files changed

+22
-12
lines changed

CMakeLists.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@ endif ()
4949

5050
target_include_directories(CompactNSearch PUBLIC include)
5151

52-
if (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
53-
find_package(oneDPL REQUIRED)
54-
target_link_libraries(CompactNSearch PUBLIC oneDPL)
55-
endif()
56-
5752
install(FILES "include/CompactNSearch" ${HEADER_FILES}
5853
DESTINATION include/)
5954

demo/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ advect()
154154
#ifdef _MSC_VER
155155
concurrency::parallel_for_each(
156156
#elif defined(__APPLE__) && defined(__clang__)
157-
std::for_each(oneapi::dpl::execution::par,
157+
dispatch::parallel_for_each(
158158
#else
159159
__gnu_parallel::for_each(
160160
#endif

include/Config.h

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,23 @@ namespace CompactNSearch
1515
#ifdef _MSC_VER
1616
#include <ppl.h>
1717
#elif defined(__APPLE__) && defined(__clang__)
18-
#include <oneapi/dpl/execution>
19-
#include <oneapi/dpl/algorithm>
18+
#include <dispatch/dispatch.h>
19+
#include <iterator>
20+
21+
namespace dispatch
22+
{
23+
template <typename _Iterator, typename _Function>
24+
void parallel_for_each(_Iterator first, _Iterator last, const _Function& _Func)
25+
{
26+
dispatch_apply(
27+
std::distance(first, last),
28+
DISPATCH_APPLY_AUTO,
29+
^(size_t i) {
30+
_Func(*std::next(first, i));
31+
}
32+
);
33+
}
34+
}
2035
#else
2136
#include <parallel/algorithm>
2237
#endif

src/CompactNSearch.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ NeighborhoodSearch::update_point_sets()
237237
#ifdef _MSC_VER
238238
concurrency::parallel_for_each(
239239
#elif defined(__APPLE__) && defined(__clang__)
240-
std::for_each(oneapi::dpl::execution::par,
240+
dispatch::parallel_for_each(
241241
#else
242242
__gnu_parallel::for_each(
243243
#endif
@@ -318,7 +318,7 @@ NeighborhoodSearch::erase_empty_entries(std::vector<unsigned int> const& to_dele
318318
#ifdef _MSC_VER
319319
concurrency::parallel_for_each(
320320
#elif defined(__APPLE__) && defined(__clang__)
321-
std::for_each(oneapi::dpl::execution::par,
321+
dispatch::parallel_for_each(
322322
#else
323323
__gnu_parallel::for_each(
324324
#endif
@@ -418,7 +418,7 @@ NeighborhoodSearch::query()
418418
#ifdef _MSC_VER
419419
concurrency::parallel_for_each(
420420
#elif defined(__APPLE__) && defined(__clang__)
421-
std::for_each(oneapi::dpl::execution::par,
421+
dispatch::parallel_for_each(
422422
#else
423423
__gnu_parallel::for_each(
424424
#endif
@@ -480,7 +480,7 @@ NeighborhoodSearch::query()
480480
#ifdef _MSC_VER
481481
concurrency::parallel_for_each(
482482
#elif defined(__APPLE__) && defined(__clang__)
483-
std::for_each(oneapi::dpl::execution::par,
483+
dispatch::parallel_for_each(
484484
#else
485485
__gnu_parallel::for_each(
486486
#endif

0 commit comments

Comments
 (0)