Skip to content

Releases: pika-org/pika

pika 0.14.0

05 Apr 07:50
0.14.0
d901ac9
Compare
Choose a tag to compare

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 to PIKA_WITH_STDEXEC to better reflect what it does. (#641)

Bugfixes

pika 0.13.0

08 Mar 10:55
22478e2
Compare
Choose a tag to compare

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

01 Feb 19:11
0.12.0
fe1326a
Compare
Choose a tag to compare

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 and empty member function to unique_any_sender and any_sender. (#551)

Breaking changes

  • Remove the conversion operators from wrapper types in async_rw_mutex. Wrappers must explicitly be unwrapped using get. (#548)
  • Require whip 0.1.0. (#565)

Bugfixes

  • Make the ensure_started sender noncopyable. (#539)
  • Fix compilation failure on macOS with C++20 enabled. (#541)
  • Fix deadlocks in certain use cases of async_rw_mutex. (#548)
  • Fix certain use cases of any_sender and when_all. (#555)

pika 0.11.0

07 Dec 08:57
0.11.0
c4ca06f
Compare
Choose a tag to compare

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

02 Nov 08:50
a437953
Compare
Choose a tag to compare

New features

Breaking changes

  • More functionality in the algorithms module has been moved into detail namespaces. (#475)

Bugfixes

  • Many sender adaptors have been updated to correctly handle reference types. (#472, #484, #492, )
  • then_with_stream now correctly stores the values sent by the predecessor sender for the duration of the CUDA operation launched by it. (#485)

pika 0.9.0

05 Oct 08:07
Compare
Choose a tag to compare

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 a fetch_content in CMake and is required when PIKA_WITH_P2300_REFERENCE_IMPLEMENTATION in ON. (#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

  • Add set_stopped_t() to (unique_)any_sender completion signatures. (#464)
  • Fix compilation on Arm64 with PIKA_WITH_GENERIC_CONTEXT_COROUTINES=OFF. (#439)
  • Add a missing default entry for pika.diagnostics_on_terminate. (#458)

pika 0.8.0

07 Sep 08:43
6d252fd
Compare
Choose a tag to compare

New features

  • The PIKA_WITH_P2300_REFERENCE_IMPLEMENTATION option can now be enabled together with PIKA_WITH_CUDA (with clang as the device compiler) and PIKA_WITH_HIP. (#330)
  • CMake options related to tests and examples now use cmake_dependent_option where appropriate. This means that options like PIKA_WITH_TESTS_UNIT will correctly be enabled when reconfiguring with PIKA_WITH_TESTS=ON even if pika was initially configured with PIKA_WITH_TESTS=OFF. (#356)
  • pika::finalize no longer has to be called on a pika thread. (#366)

Breaking changes

  • Removed operator| overloads for sync_wait and start_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 when PIKA_WITH_HIP is enabled instead of requiring hipcc to be used for host code as well. The PIKA_WITH_HIP option now has to be enabled explicitly like CUDA support instead of being automatically detected with hipcc set as the C++ compiler. (#402)

Bugfixes

  • Fixed handling of reference types in ensure_started and let_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 and PIKA_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

03 Aug 14:44
Compare
Choose a tag to compare

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

  • Fix a compilation error with posix coroutines implementation. (#314)
  • Fix handling of reference values and errors types sent by predecessors to when_all, split and sync_wait. (#285, #307, #320)

pika 0.6.0

06 Jul 08:14
05ec788
Compare
Choose a tag to compare

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 and make_unique_any_sender helpers for deducing the template parameters of any_sender and unique_any_sender. (#259)
  • Added a drop_value sender adaptor which ignores values sent from the predecessor. (#262)
  • Allow passing flags to the cuda_stream and cuda_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 and argv passed to pika::init and pika::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 option pika.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 and schedule_from. (#282)

pika 0.5.0

02 Jun 11:17
920bcc1
Compare
Choose a tag to compare

New features

  • The then_with_cublas and then_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 the detail namespace. (#216)
  • Removed the then_with_any_cuda sender adaptor. (#243)

Bugfixes

  • Scheduler properties can now be used with prefer. (#214)