pika
pika copied to clipboard
pika builds on C++ std::execution with fiber, CUDA, HIP, and MPI support.
E.g. https://github.com/eth-cscs/DLA-Future/blob/6518755e2f44838b75a9b130c8f3c249f6847b34/include/dlaf/matrix/tile.h#L434-L437. In the example the value sent by the input sender is not copyable, the value sent by the sender returned by the `let_value` callable is copyable (through `async_rw_mutex`),...
On segfaults, hangs (which get terminated with Ctrl-C), etc. APEX output currently doesn't get written to a file. Investigate if it's possible to somehow make it eagerly flush the output....
Possibly useful for debugging deadlocks, assuming appropriate annotations are set. We already have a way to print threads, but no way to ask for it as an end-user, except by...
While adding support for NVHPC parts of the `scheduler_executor` test fail in release mode (https://cdash.cscs.ch/viewTest.php?onlyfailed&buildid=74288): ``` /dev/shm/pika/src/libs/pika/executors/tests/unit/scheduler_executor.cpp(154): test 'executed' failed in function 'void test_bulk_async_void(Executor &&) [with Executor = pika::execution::experimental::scheduler_executor &]'...
While adding support for NVHPC the `unicode` test in the program options module fails in release mode (https://cdash.cscs.ch/test/72765940): ``` terminate called after throwing an instance of 'std::logic_error' what(): character conversion...
There are many levels of potential integration with the OpenMP runtime to avoid contention between pika's and OpenMP's runtime. The most simple would be to replace the loop spawning `std::thread`s...
The shared priority queue scheduler supports choosing how to schedule new tasks: round-robin or current thread. The default scheduler should support this as well.
As pointed out by @biddisco an alternative way to signal completion in the CUDA and MPI integrations would be to have the receivers wait on a condition variable and have...