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