]> https://gitweb.dealii.org/ - dealii.git/commitdiff
port workstream.h to oneAPI
authorMatthias Maier <tamiko@43-1.org>
Thu, 6 Jan 2022 13:13:41 +0000 (07:13 -0600)
committerMatthias Maier <tamiko@43-1.org>
Thu, 6 Jan 2022 14:28:20 +0000 (08:28 -0600)
include/deal.II/base/work_stream.h

index 210cffd85a0ec829a8b9c40c6fbd5dea4402fe53..30f09e6bfe8286b7e4da3b215b8fdd0bf64cd24d 100644 (file)
@@ -499,7 +499,12 @@ namespace WorkStream
                                         sample_scratch_data,
                                         sample_copy_data);
         auto tbb_item_stream_filter = tbb::make_filter<void, ItemType *>(
-          tbb::filter::serial, [&](tbb::flow_control &fc) -> ItemType * {
+#    ifdef DEAL_II_TBB_WITH_ONEAPI
+          tbb::filter_mode::serial_in_order,
+#    else
+          tbb::filter::serial,
+#    endif
+          [&](tbb::flow_control &fc) -> ItemType * {
             if (const auto item = iterator_range_to_item_stream.get_item())
               return item;
             else
@@ -515,7 +520,11 @@ namespace WorkStream
         // The second stage is the one that does the actual work. This is the
         // stage that runs in parallel
         auto tbb_worker_filter = tbb::make_filter<ItemType *, ItemType *>(
+#    ifdef DEAL_II_TBB_WITH_ONEAPI
+          tbb::filter_mode::parallel,
+#    else
           tbb::filter::parallel,
+#    endif
           [worker =
              std::function<void(const Iterator &, ScratchData &, CopyData &)>(
                worker),
@@ -608,7 +617,11 @@ namespace WorkStream
         // The last stage is the one that copies data from the CopyData objects
         // to the final destination. This stage runs sequentially again.
         auto tbb_copier_filter = tbb::make_filter<ItemType *, void>(
+#    ifdef DEAL_II_TBB_WITH_ONEAPI
+          tbb::filter_mode::serial_in_order,
+#    else
           tbb::filter::serial,
+#    endif
           [copier = std::function<void(const CopyData &)>(copier)](
             ItemType *current_item) {
             if (copier)

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.