Skip to content

Releases: pika-org/pika

pika 0.26.1

31 Jul 08:09
0.26.1
c709736
Compare
Choose a tag to compare

New features

Breaking changes

Bugfixes

  • The PIKA_MPI_COMPLETION_MODE environment variable not being taken into account has been fixed. (#1215)

pika 0.26.0

08 Jul 15:25
0.26.0
838e3dd
Compare
Choose a tag to compare

New features

  • Handling of receivers has been slightly optimized internally to avoid allocations. (#1126, #1139, #1192)
  • The MPI integration now has experimental support for the MPI continuations proposal. This requires an experimental build of OpenMPI. (#1128)
  • pika can now be compiled as a static library by disabling the CMake option BUILD_SHARED_LIBS. (#1179)

Breaking changes

  • The shared_mutex utility has been removed. (#1155)
  • The prefix module has been cleaned up with many internal functionalities being moved to a detail namespace. (#1177)
  • The depleted thread state has been removed as it is no longer used. (#1184)

Bugfixes

  • The hostname output in logs has been fixed. (#1127)
  • The internal append_t type pack helper has been fixed to append rather than prepend. This may affect the order of completion signatures for senders. However, there are still no guarantees on the order of completion signatures. (#1137)
  • Fix potential use-after-free in MPI integration. (#1151)
  • Undefined behaviour on FreeBSD in the get_executable_prefix helper has been fixed. (#1171)
  • Compilation with PIKA_WITH_STACKTRACES=OFF has been fixed. (#1178, #1196)

pika 0.25.0

10 May 10:46
0.25.0
00da2f6
Compare
Choose a tag to compare

New features

  • The MPI polling functionality has been significantly refactored and optimized. (#1102)
  • pika's senders and receivers now use the newer sender and receiver concepts when defined by stdexec. (#1105)

Breaking changes

  • The pika logging facilities have been refactored to use spdlog. The new behaviour is described in the pull request and documentation (#1093)
  • The runtime module has been cleaned up with many functionalities being removed or moved to the detail namespace. (#826, #1091)

Bugfixes

  • Builds with the CMake option PIKA_WITH_THREAD_DEBUG_INFO enabled have been fixed. (#1101)

pika 0.24.0

12 Apr 14:47
cf5c360
Compare
Choose a tag to compare

New features

  • Avoid unnecessary copies of CUDA streams and handles to improve profiling appearance. (#1056)
  • Avoid use of std::invoke_result in tag_invoke_result variants to improve compilation times. (#1058, #1060)

Breaking changes

Bugfixes

  • Fix use of --pika:print-bind with --pika:bind=none. (#1082, #1087)
  • Work around compilation issue with CUDA 12.4. (#1084)
  • Make sure main is never defined in libpika.so. (#1088)

pika 0.23.0

07 Mar 13:38
0.23.0
7c1aebb
Compare
Choose a tag to compare

New features

  • Further improved performance, particularly on ARM64 systems. (#1023, #1033, #1035, #1041)
  • Allow compilation on ARM systems with address sanitizer enabled. (#1045)

Breaking changes

Bugfixes

  • Allow the use of the require_started sender adaptor with unique_any_sender and any_sender. (#1044)
  • Fix a data race in CUDA/HIP event polling. (#1051)

pika 0.22.2

09 Feb 13:41
0.22.2
8266135
Compare
Choose a tag to compare

Bugfixes

  • Fix incorrect worker thread numbers when using more than one thread pool. (#1016)
  • Unrevert #872 with an indexing error fixed. (#1017)

pika 0.22.1

29 Jan 08:20
0.22.1
ab325f8
Compare
Choose a tag to compare

Bugfixes

  • Revert #872 as it was found to cause issues in applications. (#1009)

pika 0.22.0

24 Jan 16:34
0.22.0
4969ef0
Compare
Choose a tag to compare

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

06 Dec 08:47
db91bf2
Compare
Choose a tag to compare

New features

  • A new sender adaptor require_started allows to detect unstarted senders. (#869)
  • The conversion from any_sender to unique_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 of hardware_concurrency. (#864)

Breaking changes

  • pika::start and pika::finalize now return void. Most runtime management functions no longer take an error_code and always throw an exception on failure. (#825)

Bugfixes

  • One lifetime bug in split has been fixed. (#839)
  • yield_while is now able to warn about potential deadlocks when suspension is disabled. (#856)

pika 0.20.0

01 Nov 08:52
0.20.0
b20d31c
Compare
Choose a tag to compare

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 set PIKA_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 or PIKA_PROCESS_MASK has been fixed. (#807)