Branch: refs/heads/master
  Home:   https://github.com/STEllAR-GROUP/hpx
  Commit: 8a9a0541a7b20564b995f5ab7d1e7377d3fd94ab
      
https://github.com/STEllAR-GROUP/hpx/commit/8a9a0541a7b20564b995f5ab7d1e7377d3fd94ab
  Author: Hartmut Kaiser <[email protected]>
  Date:   2022-11-21 (Mon, 21 Nov 2022)

  Changed paths:
    M libs/core/algorithms/include/hpx/parallel/util/detail/sender_util.hpp
    M libs/core/algorithms/tests/unit/algorithms/CMakeLists.txt
    A libs/core/algorithms/tests/unit/algorithms/foreach_scheduler.cpp
    M libs/core/execution_base/include/hpx/execution_base/sender.hpp
    M libs/core/executors/CMakeLists.txt
    A libs/core/executors/include/hpx/executors/execute_on.hpp

  Log Message:
  -----------
  Implement P2690 (aka. p2500) for our algorithms


  Commit: 376c4672c156371ec34cc26b120e6c74d10ed28a
      
https://github.com/STEllAR-GROUP/hpx/commit/376c4672c156371ec34cc26b120e6c74d10ed28a
  Author: StellarBot <[email protected]>
  Date:   2022-11-23 (Wed, 23 Nov 2022)

  Changed paths:
    M libs/core/algorithms/include/hpx/parallel/util/detail/sender_util.hpp
    M libs/core/algorithms/tests/unit/algorithms/CMakeLists.txt
    A libs/core/algorithms/tests/unit/algorithms/foreach_scheduler.cpp
    M libs/core/execution_base/include/hpx/execution_base/sender.hpp
    M libs/core/executors/CMakeLists.txt
    A libs/core/executors/include/hpx/executors/execute_on.hpp

  Log Message:
  -----------
  Merge #6070

6070: Implement P2690 for our algorithms r=hkaiser a=hkaiser

This PR adds the facilities that are proposed by 
[P2690](http://wg21.link/p2690). It also adds default implementations for all 
of our algorithms.

Coincidentally, this goes beyond P2690 as it also enables asynchronous 
invocations of the algorithms using the new facilities. Here are a couple of 
examples:
```
// synchronous parallel invocation
hpx::for_each(scheduler_t(), std::begin(c), std::end(c), f);

// synchronous invocation using hpx::execution::par
hpx::for_each(ex::execute_on(scheduler_t(), hpx::execution::par), 
std::begin(c), std::end(c), f);

// asynchronous invocation using hpx::execution::par
hpx::for_each(
    ex::execute_on(scheduler_t(), hpx::execution::par(hpx::execution::task)), 
std::begin(c), std::end(c), f) | 
tt::sync_wait();

// asynchronous invocation using hpx::execution::par as part of a S/R chain
ex::just(std::begin(c), std::end(c), f) |
    hpx::for_each(
        ex::execute_on(scheduler_t(), 
hpx::execution::par(hpx::execution::task))) |
    tt::sync_wait();
```

Co-authored-by: Hartmut Kaiser <[email protected]>


Compare: 
https://github.com/STEllAR-GROUP/hpx/compare/7445e8ad10ad...376c4672c156
_______________________________________________
hpx-commits mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-commits

Reply via email to