Releases: pika-org/pika
Releases · pika-org/pika
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)
pika 0.7.0
New features
- The CUDA polling now uses both normal and high priority queues based on the flags passed to the
cuda_stream
. (#286) - Eagerly check completion of the MPI requests and add throttling of MPI traffic to help prevent excessive message queues. (#277)
- Eagerly check completion of CUDA kernels. (#306)
Breaking changes
- Remove static and thread local storage emulation. (#321)
- Moved internal functionality into the
detail
namespace. (#209, #276, #324) - Remove specialization for Intel KNL. (#309)
Bugfixes
pika 0.6.0
New features
- Added basic support for Tracy. The Tracy integration can currently only be used with threads that do not yield. (#252)
- Added
make_any_sender
andmake_unique_any_sender
helpers for deducing the template parameters ofany_sender
andunique_any_sender
. (#259) - Added a
drop_value
sender adaptor which ignores values sent from the predecessor. (#262) - Allow passing flags to the
cuda_stream
andcuda_pool
constructor. (#270) - Allow using any version of mimalloc. The version was previously unnecessarily constrained to 1. (#273)
- Further relax the requirements for constness on
argc
andargv
passed topika::init
andpika::start
. (#275)
Breaking changes
- If a process mask is set the pika runtime now uses the mask by default to restrict the number of threads. The command-line option
--pika:use-process-mask
which was previously used to enable this behaviour has been removed along with the corresponding configuration option. The process mask can be explicitly ignored with the command-line option--pika:ignore-process-mask
or the configuration optionpika.ignore_process_mask
. (#242) - Moved internal functionality into the
detail
namespace. (#246, #248, #257)
Bugfixes
- Fix handling of reference types sent by predecessors to
ensure_started
andschedule_from
. (#282)
pika 0.5.0
New features
- The
then_with_cublas
andthen_with_cusolver
sender adaptors can now also be used with hipBLAS and hipSOLVER. (#220) - There is now experimental support for using the P2300 reference implementation in place of pika's own implementation. This can be enabled with the
PIKA_WITH_P2300_REFERENCE_IMPLEMENTATION
CMake option. (#215)
Breaking changes
- The
--pika:help
command-line no longer takes any arguments. (#219) - Vc support has been removed. (#223)
- Cleaned up the
command_line_handling
module and moved minor functionality into thedetail
namespace. (#216) - Removed the
then_with_any_cuda
sender adaptor. (#243)
Bugfixes
- Scheduler properties can now be used with
prefer
. (#214)