Branch: refs/heads/limiting_executor
  Home:   https://github.com/STEllAR-GROUP/hpx
  Commit: 69b5be0928ec26111739a99834c26f31c3442202
      
https://github.com/STEllAR-GROUP/hpx/commit/69b5be0928ec26111739a99834c26f31c3442202
  Author: John Biddiscombe <[email protected]>
  Date:   2020-07-27 (Mon, 27 Jul 2020)

  Changed paths:
    M libs/execution/tests/unit/CMakeLists.txt
    A libs/execution/tests/unit/limiting_executor.cpp
    M libs/executors/include/hpx/executors/limiting_executor.hpp

  Log Message:
  -----------
  Use RAII counter for limiting executor and improve forwarding

WIP: Add a unit test for limiting executor (unfinished)


  Commit: c2b2a53a26e54ff0be410d0fda5585f4ff995f7c
      
https://github.com/STEllAR-GROUP/hpx/commit/c2b2a53a26e54ff0be410d0fda5585f4ff995f7c
  Author: John Biddiscombe <[email protected]>
  Date:   2020-07-27 (Mon, 27 Jul 2020)

  Changed paths:
    M libs/async_mpi/include/hpx/async_mpi/mpi_executor.hpp
    M libs/async_mpi/include/hpx/async_mpi/mpi_future.hpp
    M libs/async_mpi/src/mpi_future.cpp
    M libs/async_mpi/tests/unit/mpi_ring_async_executor.cpp
    M libs/executors/include/hpx/executors/limiting_executor.hpp

  Log Message:
  -----------
  Allow limiting executor to use external counting mechanism

The limiting executor does not work with some special executors
like the MPI one since it returns immediately but leave a task
that is 'detached' from the runtime (the counters count up and down
almost immediately, but the task completes later).

To solve this we add a specialization inside the limiting executor
counting mechanism that allows the executor being wrapped to return
a counter that can be used to throttle tasks.

Any executor that implements the "in_flight_estimate" member can
override the counting mechanism to control throttling.

Currently we only handle a single counter so multiple mpi executors
would reference the same internal mpi counter and it would not be
possible to throttle different mpi executors spearately.

Simplify the mpi_ring_async_test to use a limiting executor at
the top level and thereby reduce resource consumption by only
keeping N mpi requests in flight at once.

Note that the limiting executor is only used for the outer iteration
of sending, otherwise a deadlock would occur if a receive could
not trigger a send.


Compare: 
https://github.com/STEllAR-GROUP/hpx/compare/09f5068911f4...c2b2a53a26e5
_______________________________________________
hpx-commits mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-commits

Reply via email to