STEllAR-GROUP / hpx

The C++ Standard Library for Parallelism and Concurrency
https://hpx.stellar-group.org
Boost Software License 1.0
2.53k stars 430 forks source link

Addressing remaining Stdexec issues #6534

Open isidorostsa opened 1 month ago

isidorostsa commented 1 month ago

Remaining issues

  1. HPX senders should replace tag-invocable tags with member functions, following the changes introduced in P2300R8.
  2. Some Stdexec algorithms use std synchronization primitives, which clash with HPX's (e.g. stdexec::run_loop, this_thread::sync_wait use std::mutex and std::condition_variable. This causes some tests to deadlock. Thanks to @zhekemist for identifying this! The following commit fixed a bug caused by this interaction: https://github.com/STEllAR-GROUP/hpx/pull/6431/commits/d06c9ad13aca0ed38e77e08fa2664290389fbc4e.
  3. The tests algorithm_transform_mpi and mpi_ring_async_executor have been disabled due to issue # 2 highlighted above. Other tests may be failing too, but it was noticed that there are MPI tests that fail but do return 0 so they are not marked as failing. This should be corrected too.
  4. Code and build system need testing on Windows and macOS beyond CI.

Due to these issues, Stdexec won't be enabled by default. To activate there needs to be an explicit definition: HPX_WITH_STDEXEC=ON

zhekemist commented 1 month ago

This minimal example can be used to reproduce the 2nd issue.

Alternatively, it can also be reproduced by running any of the following unit tests:

with one of these command line arguments: