pika
pika copied to clipboard
pika builds on C++ std::execution with fiber, CUDA, HIP, and MPI support.
Later versions of stdexec support both `tag_invoke` and member functions, but the standard will use member functions only. We should try to migrate all schedulers and sender adaptors to use...
https://github.com/pika-org/pika/pull/1202 disabled static libraries in the APEX CI configuration because it had issues. Investigate if this is an APEX or pika problem.
We were only building for arm64 but not runnning anything. This enables 2 pipelines on santis.
Once Piz Daint is no longer operational I think we can drop official support for GCC 9 and 10 (GCC 11 we want to keep for CUDA 11 support). We...
Apparently cmake-format also comes with a cmake-lint command (https://cmake-format.readthedocs.io/en/latest/cmake-lint.html). We should try it and see if it's useful for improving our CMake scripts.
We should test if running the MPI/CUDA polling in standalone tasks works as well as integrating the polling in the scheduler. This would make the polling independent of the scheduler...
Currently only a single or zero values are allowed to be passed from the predecessor sender (https://github.com/pika-org/pika/blob/d48a0d5bd73eb75c44562c8f6ef9f201798d5780/libs/pika/async_cuda/include/pika/async_cuda/cuda_scheduler_bulk.hpp#L126-L129). I think this could easily be generalized by collecting arguments into a tuple,...
We currently use a spinlock pool for all `thread_data` locks. The default size of the pool is 128 locks. With large CPUs like the Grace 72-core CPUs, the default may...
Assuming there are no downsides, consider enabling it by default. May need some investigation of potential impact on performance.