Feat/fork join executor p2300 bridge#7260
Conversation
Up to standards ✅🟢 Issues
|
|
Can one of the admins verify this patch? |
|
Thank you for the reviews! I have addressed all feedback: Replaced Moved Replaced the internal I initially added |
I should have said |
@hkaiser |
e60ff1a to
be760b0
Compare
|
@shivansh023023 We have merged #7257 now. You can go ahead and review and update all of your PRs related to senders&receivers now. Thanks! |
Okay |
be760b0 to
7a7a429
Compare
|
@shivansh023023 inspect reports Also, the new test doesn't compile. Please fix. I'd appreciate it if you had an eye on the CI yourself in the future. |
7a7a429 to
43d4aa5
Compare
|
@hkaiser I added the missing <type_traits> include and got the unit test compiling which made the Inspect check pass . I did notice the 18-execution-lcos_distributed check crashed during the linking phase. Since this PR is strictly isolated to the local fork_join_executor files, I'm pretty sure that's just an unrelated CI runner hiccup or an out-of-memory issue. |
Currently it fails because of an obsolete use of |
a2b23c3 to
d7b69b4
Compare
- Add executor_scheduler.hpp include to fork_join_executor.hpp - Add post_t tag_invoke for fork_join_executor (required by executor_scheduler) - Add get_scheduler_t tag_invoke outside class (P2300 scheduler bridge) - Add is_never_blocking_one_way_executor trait specialization - Remove unused includes from fork_join_executor.cpp - Simplify static_cast chain in operator<< for loop_schedule - Add test_get_scheduler() to fork_join_executor unit tests - Add hpx/modules/executors.hpp include for C++20 modules compatibility Signed-off-by: Shivansh Singh <your_github_email@example.com>
d7b69b4 to
eb8957f
Compare
|
@hkaiser I checked the logs for the 18-execution-lcos_distributed failure. It looks like a single test out of 1,293 failed due to a pure timeout (tests.unit.modules.runtime_components.distributed.tcp.refcnted_symbol_to_remote_object). |
|
@hkaiser any updates sir? |
executors: Add P2300
get_schedulerbridge forfork_join_executorFixes #5219 (partial)
Proposed Changes
tag_invoke(get_scheduler_t, fork_join_executor const&)outside the class body, returning
executor_scheduler<fork_join_executor>, so that the return type isfully defined at point of use
executor_scheduler_fwd.hppinclude with the fullexecutor_scheduler.hppto ensure type completenesstag_invoke(post_t, fork_join_executor const&)delegating toasync_invokeso the genericexecutor_scheduleroperation statecan dispatch work onto the fork_join thread pool
fork_join_executorunit tests withtest_get_scheduler()verifying scheduler acquisition, work dispatch, and thread identity
Background
fork_join_executoris one of HPX's primary performance executors usedfor NUMA-aware work-stealing. Without a
get_schedulerbridge it cannotparticipate in P2300 pipelines using
continues_on,transfer, orlet_value. After this PR:This follows the pattern established for
sequenced_executor(#7238)and
parallel_executor(#7239).Checklist