Releases: pika-org/pika
Releases · pika-org/pika
pika 0.16.0
New features
- pika can now be compiled with CUDA 12 and C++20 when
PIKA_WITH_STDEXEC
is disabled. (#684) pika::barrier
can now optionally do a timed blocking wait. The default behaviour is unchanged. (#685)
Breaking changes
pika::spinlock
has been removed and replaced with a private implementation. (#672)
Bugfixes
pika 0.15.1
pika 0.15.0
New features
async_rw_mutex
has been moved to a public header:pika/async_rw_mutex.hpp
. The functionality is still experimental in thepika::execution::experimental
namespace.async_rw_mutex_access_type
andasync_rw_mutex_access_wrapper
have also been moved out of thedetail
namespace. (#655)
Breaking changes
- The
any_sender
andunique_any_sender
operator bool()
, which can be used to check whether the sender contains a valid sender, is nowexplicit
to avoid accidental conversions. (#653) - Scheduler idling was disabled by default. This typically improves performance. If performance is less important than resource usage idling may be beneficial to enable explicitly. (#661)
- The CMake option
PIKA_WITH_THREAD_CUMULATIVE_COUNTS
was disabled by default. This often improves performance. (#662) - Thread guard pages were disabled by default. This often improves performance. They can still be enabled at runtime with the configuration option
pika.stacks.use_guard_pages=1
to debug e.g. stack overflows. (#663) - The
fast_idle
anddelay_exit
scheduler modes were completely removed as they added overhead and were not used in any meaningful way in the scheduler. (#664) - The ability to run background threads in the scheduler was completely removed. (#665, #668)
Bugfixes
- Fixed an inconsistent preprocessor guard that affected Apple M1 and M2 systems. (#657)
- Fixed preprocessor guards to enable deadlock detection in debug builds. The deadlock detection was never enabled previously. (#658)
- Thread deadlock detection will now correctly print potentially deadlocked threads. (#659)
pika 0.14.0
New features
- pika can now be compiled with NVHPC. The support is experimental. (#606)
- CUDA polling was improved. Among other changes polling continuations are no longer called under a lock. (#609)
- Improved the error message when pika is configured with multiple thread pools but there are not enough resources for all thread pools. (#619)
Breaking changes
- Cleaned up modules and moved internal functionality into
detail
namespaces. (#625, #631, #632, #633, #634) - Renamed the CMake option
PIKA_WITH_P2300_REFERENCE_IMPLEMENTATION
toPIKA_WITH_STDEXEC
to better reflect what it does. (#641)
Bugfixes
pika 0.13.0
New features
- Add better compile-time error messages to diagnose one-shot senders being used as multi-shot senders. (#586)
Breaking changes
- Remove the
PIKA_WITH_BACKGROUND_THREAD_COUNTERS
CMake option. These counters are no longer available. (#588) - Update required stdexec commit. pika is now tested with
6510f5bd69cc03b24668f26eda3dd3cca7e81bb2
(#597) - Cleaned up modules and moved minor functionality into
detail
namespaces. (#594, #595, #596, #599, #607)
Bugfixes
- Initialize HIP early to avoid concurrent initialization. (#591)
pika 0.12.0
New features
- Make read-only access senders of
async_rw_mutex
connectable with l-value references. (#548) - Add
split_tuple
sender adaptor which allows transforming a sender of tuples into a tuple of senders. (#549) - Add
bool
conversion operator andempty
member function tounique_any_sender
andany_sender
. (#551)
Breaking changes
- Remove the conversion operators from wrapper types in
async_rw_mutex
. Wrappers must explicitly be unwrapped usingget
. (#548) - Require whip 0.1.0. (#565)
Bugfixes
pika 0.11.0
New features
Breaking changes
- All parallel algorithms have been moved to a new repository that depends on pika: https://github.com/pika-org/pika-algorithms. (#505)
- fmt is now a required dependency. (#487)
- The default allocator has been changed from tcmalloc to mimalloc. (#501)
- Cleaned up various modules and moved minor functionality into
detail
namespaces. (#483, #508, #509)
Bugfixes
pika 0.10.0
New features
Breaking changes
- More functionality in the
algorithms
module has been moved intodetail
namespaces. (#475)
Bugfixes
pika 0.9.0
New features
- Signal handlers are now optional, they can be set with
--pika:install_signal_handlers=1
. They are enabled by default when--pika:attach-debugger=exception
is set. (#458)
Breaking changes
- The P2300 reference implementation is now found through a
find_package
instead of afetch_content
in CMake and is required whenPIKA_WITH_P2300_REFERENCE_IMPLEMENTATION
inON
. (#436) - whip is now a dependency to replace the GPU abstraction layer we previously used. (#423)
- Use rocBLAS directly instead of hipBLAS. (#391)
- Move more internal functionality into the
detail
namespace. (#445, #446, #449, #461, #462)
Bugfixes
pika 0.8.0
New features
- The
PIKA_WITH_P2300_REFERENCE_IMPLEMENTATION
option can now be enabled together withPIKA_WITH_CUDA
(with clang as the device compiler) andPIKA_WITH_HIP
. (#330) - CMake options related to tests and examples now use
cmake_dependent_option
where appropriate. This means that options likePIKA_WITH_TESTS_UNIT
will correctly be enabled when reconfiguring withPIKA_WITH_TESTS=ON
even if pika was initially configured withPIKA_WITH_TESTS=OFF
. (#356) pika::finalize
no longer has to be called on a pika thread. (#366)
Breaking changes
- Removed
operator|
overloads forsync_wait
andstart_detached
to align the implementation with P2300. (#346) - Removed
parallel_executor_aggregated
. (#372) - Moved more internal functionality into the
detail
namespace. (#374, #377, #379, #386, #400, #411, #420, #428, #429) - Allow compiling only device code with
hipcc
whenPIKA_WITH_HIP
is enabled instead of requiringhipcc
to be used for host code as well. ThePIKA_WITH_HIP
option now has to be enabled explicitly like CUDA support instead of being automatically detected withhipcc
set as the C++ compiler. (#402)
Bugfixes
- Fixed handling of reference types in
ensure_started
andlet_error
. (#338) - Fixed compilation for powerpc. (#341)
- Correctly set the stream in
cusolver_handle::set_stream
. (#344) - Fix the
--pika:ignore-process-mask
command line option. It was previously being ignored. (#355) - Fix a visibility issue in the
program_options
implementation. (#359) - Change detection of builtins to be more robust against mixing compilers. (#390)
- Fixed compilation for arm64. (#393)
- Only check for
CMAKE_CUDA_STANDARD
andPIKA_WITH_CXX_STANDARD
when building pika itself. This could previously lead to false positive configuration errors. (#396) - Fix compilation on macOS with
PIKA_WITH_MPI
enabled. (#405)