Releases: pika-org/pika
Releases · pika-org/pika
pika 0.23.0
pika 0.22.2
pika 0.22.1
pika 0.22.0
New features
- A new function
pika::is_runtime_initialized
has been added. (#808) - CUDA and HIP handles are now guaranteed to be released together with
cuda_pool
instead of on program exit. (#872) - Spinloop performance has been significantly improved on ARM64 systems. (#923, #927)
- The
pika::barrier
now scales significantly better with the number of cores. (#940) - Exceptions thrown in the main entry point, e.g.
pika_main
, are now reported with the message of the exception, if available. (#959)
Breaking changes
Bugfixes
- The CMake configuration now sets the policy CMP0144 to silence warnings about CMake package root directory variables. (#885)
- The permissions on the installed
pika-bind
helper script have been fixed. (#915) - A missing include causing compilation failures with
PIKA_WITH_UNITY_BUILD=OFF
has been added. (#955) - A use-after-free has been fixed in
when_all_vector
. (#966) - A use-after-free has been fixed in
sync_wait
. (#976) - A use-after-free has been fixed in
default_agent
. (#979) - An initialization order issue has been fixed in debug printing facilities. (#983)
- A potential cause for dangling references has been fixed in
thread_pool_init_parameters
. (#984) - A few data races have been fixed in the schedulers. (#985, #986)
- Forwarding of callable values in
execution::then
has been fixed. (#994) - A data race in
condition_variable::notify_all
has been fixed. (#998)
pika 0.21.0
New features
- A new sender adaptor
require_started
allows to detect unstarted senders. (#869) - The conversion from
any_sender
tounique_any_sender
has been optimized, reusing the same storage. (#844) - The number of streams created by the
cuda_pool
is now proportional to the number of threads used by the runtime instead ofhardware_concurrency
. (#864)
Breaking changes
pika::start
andpika::finalize
now returnvoid
. Most runtime management functions no longer take anerror_code
and always throw an exception on failure. (#825)
Bugfixes
pika 0.20.0
New features
- The MPI rank is now printed with
--pika:print-bind
and when handling exceptions, if MPI support is enabled. (#805, #822) - A warning message is now printed on macOS when using
--pika:process-mask
since thread bindings are unsupported. (#806) - Thread bindings can now be printed using the environment variable
PIKA_PRINT_BIND
in addition to the command line option--pika:print-bind
. (#828) - The
pika-bind
helper script has been added to more conveniently setPIKA_PROCESS_MASK
based on the environment. (#834)
Breaking changes
- All remaining locality-related functions and files have been removed. (#823)
Bugfixes
- Handling of explicitly specified process masks with
--pika:process-mask
orPIKA_PROCESS_MASK
has been fixed. (#807)
pika 0.19.1
Bugfixes
- Fix a bug in
drop_operation_state
when the predecessor sender is sending a tuple. (#801)
pika 0.19.0
New features
- A
transfer_when_all
sender adaptor has been introduced. (#792) - A
drop_operation_state
sender adaptor has been introduced. (#772)
Breaking changes
- The
PIKA_WITH_DISABLED_SIGNAL_EXCEPTION_HANDLERS
CMake option has been removed. This option can be controlled at runtime as before. (#773) - The
PIKA_WITH_THREAD_GUARD_PAGE
CMake option has been removed. This option can be controlled at runtime as before. (#782) thread_priority::critical
has been removed as it is an alias tohigh_recursive
and is unused.(#783)
Bugfixes
- Fix a few instances of the wrong type being forwarded in
split_tuple
andwhen_all
sender adaptors. (#781) - Fix a hang introduced by the global activity count when using MPI polling. (#778)
- Fix a use-after-free in
ensure_started
. (#795) - Fix lifetime bug in
ensure_started
when the sender is dropped without being connected. (#797)
pika 0.18.0
New features
- A documentation site has been created on pikacpp.org. (#723)
- A new command line option
--pika:process-mask
has been added to allow overriding the mask detected at startup. The process mask is also now read before the pika runtime is started to avoid problems with e.g. OpenMP resetting the mask before pika can read it. (#738, #739) - An overload of
pika::start
which takes no callable and is equivalent to passingnullptr_t
or an empty callable as the entry point has been added. (#761)
Breaking changes
- The
any_receiver
set_value_t
overload now accepts types which may throw in their move and copy constructors. (#702) - The
PIKA_WITH_GENERIC_CONTEXT_COROUTINES
CMake option has been renamed toPIKA_WITH_BOOST_CONTEXT
. (#729) - The
then
andunpack
sender adaptors now correctly havenoexcept
get_env_t
customizations. (#732) - mimalloc is now the default allocator. (#730)
- The
pika::this_thread::experimental::sync_wait
receiver now correctly advertises itself as a receiver when using stdexec. (#735) - Various outdated and unused utilities and configuration options have been removed. (#744, #753, #758, #759)
Bugfixes
- The small buffer optimization in
any_sender
and its companions has been disabled due to issues with the implementation. (#760)
pika 0.17.0
New features
- Improve MPI polling: continuations are not triggered under lock anymore and can be explicitly transferred to a new task/pool, throttling is possible on a per stream basis, the number of completions to handle per poll iteration may be controlled. (#593)
- Add
pika::wait
to wait for the runtime to be idle. (#704) - Failure information is now printed before attaching a debugger. (#712)
--pika:print-bind
now also prints the thread pool of a thread when thread binding is disabled to be consistent with the output when thread binding is enabled. (#710)- Allow to explicitly reset
{unique_,}any_sender
. (#719) - Add
execution::unpack
sender adaptor unpack tuple-like types sent by predecessor senders. (#721)