Skip to content

Releases: pika-org/pika

pika 0.33.0

02 Apr 08:07
0.33.0
f0deead
Compare
Choose a tag to compare

New features

  • The signal handlers were refactored and documented. There is now only one environment variable to enable pika's signal handlers (PIKA_INSTALL_SIGNAL_HANDLERS) and they are always available to enable at runtime. (#1411, #1412)
  • async_rw_mutex has been significantly refactored to avoid locking and unnecessary yielding. Some use cases may see better performance. Move and copy semantics of senders from async_rw_mutex have also been fixed. (#1379)

Breaking changes

Bugfixes

  • Fix compilation of a few source files with unity builds disabled. (#1403)
  • Fix detection of MPI Continuations support in OpenMPI. (#1417)
  • Fix a broken connect overload in transform_mpi. (#1421)

pika 0.32.0

05 Feb 15:57
0.32.0
0361afd
Compare
Choose a tag to compare

New features

  • More configuration options are now exposed as environment variables, such as PIKA_THREADS, PIKA_BIND, and PIKA_IGNORE_PROCESS_MASK. (#1380, #1387)

Breaking changes

  • The start, connect, and get_env CPOs now use member functions instead of tag_invoke to better align with P2300. (#1392, #1393, #1394)
  • Official support for GCC 9, 10, and CUDA 11 has been removed. Use of these versions is not disallowed but no attempt will be made to fix issues for them. (#1397)

Bugfixes

  • Together with the sender CPO changes, further changes have been made to reduce debug symbol bloat in sender implementations. (#1390, #1395)

pika 0.31.0

18 Dec 17:56
0.31.0
be0f6e0
Compare
Choose a tag to compare

New features

  • The require_started sender adaptor, any_sender and unique_any_sender, async_rw_mutex, and CUDA functionality have been documented. (#1297, #1309, #1355, #1356)
  • The type-erased receiver used internally by any_sender no longer requires heap allocation. (#1354)

Breaking changes

  • Support for ittnotify has been removed. (#1290)
  • The CUDA and HIP pools now create a fixed number of streams instead of creating streams based on the number of worker threads. This is a silent breaking API change. If you are creating pools with a custom number of streams make sure that the values are reasonable with the new behaviour. See the API documentation for more details. (#1294)
  • The set_value CPO now uses member functions instead of tag_invoke to better align with P2300. (#1295)
  • zip_iterator has been removed. (#1347)

Bugfixes

  • pika no longer sets the pthread name of the main thread. (#1329)

pika 0.30.1

19 Nov 08:22
0.30.1
229ad3d
Compare
Choose a tag to compare

New features

Breaking changes

Bugfixes

  • A parameter lifetime issue in transform_mpi that affects almost all MPI modes was fixed. (#1321)

pika 0.30.0

08 Nov 12:46
0.30.0
05a47dc
Compare
Choose a tag to compare

New features

  • pika can now automatically create a custom thread pool used for MPI work. (#1267)
  • All uses of std::aligned_storage_t have been removed, allowing for builds without deprecation warnings with C++23. (#1280)
  • Documentation has been expanded, with many sender adaptors unique to pika now documented. (#1279, #1286, #1287, #1292, #1304, #1310)

Breaking changes

  • The default MPI mode used for creating and waiting for MPI requests has been changed. (#1143)
  • Support for clang 11 and clang 12 has been dropped. Use of these versions is not disallowed but no attempt will be made to fix issues for those compilers. (#1284)

Bugfixes

  • Builds with clang 19 have been fixed. (#1283)
  • Detection for when libatomic is required has been improved. (#1315)

pika 0.29.0

04 Oct 12:18
0.29.0
9628c3a
Compare
Choose a tag to compare

New features

  • The CUDA/HIP pool uses fewer, and a user-controllable number of, cuBLAS/SOLVER and rocBLAS/SOLVER handles. This can significantly reduce GPU memory usage, especially on high core count systems. (#1234)
  • The sender adaptor transfer has been renamed to continues_on, with a deprecation warning, to match the latest P2300 proposal. transfer_just and transfer_when_all have been deprecated. (#1235)

Breaking changes

Bugfixes

  • An initialization issue when setting an explicit process mask on a process that has a limited number of cores available due to cgroups restrictions has been fixed. (#1251)

pika 0.28.0

04 Sep 15:14
0.28.0
7c2ceb2
Compare
Choose a tag to compare

New features

Breaking changes

  • When using stdexec, pika now requires and is tested with stdexec commit 8bc7c7f06fe39831dea6852407ebe7f6be8fa9fd. (#1205)
  • The Boost dependency is now found using CMake's config mode instead of CMake's deprecated Boost module. This requires Boost to be installed with a BoostConfig.cmake file. (#1229)

Bugfixes

  • NUMA nodes and sockets are now correctly handled on Grace-Hopper systems. This allows use of hwloc 2.11 and newer on such systems. (#1224)

pika 0.27.0

15 Aug 07:54
0.27.0
d5c21c7
Compare
Choose a tag to compare

New features

  • sync_wait now internally uses a binary_semaphore instead of a condition_variable for synchronization and may be slightly faster due to removing one lock. (#1206)

Breaking changes

  • All channel implementations have been removed. (#1209)

Bugfixes

  • Compilation of copyable senders together with when_all_vector has been fixed. (#1200)
  • The pika/execution.hpp header has been fixed to include headers that should have been included by it. (#1206)

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)