Skip to content

Releases: tskisner/pshmem

Small Deployment Fix

14 Oct 13:16

Choose a tag to compare

Fixing PyPI upload

Add new MPIBatch class

14 Oct 12:57

Choose a tag to compare

What's Changed

Full Changelog: 1.2.1...1.3.0

Fix registry bug at program exit

29 Jan 02:54
d5e15b8

Choose a tag to compare

If a python program terminates, objects are deleted in a random order. If the pshmem package registry is deleted before all MPIShared objects are deleted, then gracefully ignore requests to unregister the already deleted shared memory buffers.

What's Changed

  • Prevent errors caused by unregistering memory twice. by @tskisner in #27

Full Changelog: 1.2.0...1.2.1

Improve cleanup on termination

06 Jan 06:31
48b946c

Choose a tag to compare

What's Changed

This release includes fallback cleanup of shared memory on SIGTERM and migration to a new pyproject.toml. There are also improvements to the unit tests.

  • Improvements in use of python SharedMemory by @tskisner in #26

Full Changelog: 1.1.0...1.2.0

Switch to using Python SharedMemory

17 Mar 21:54
02cd641

Choose a tag to compare

In order to resolve portability challenges with use of shared memory, switch to using multiprocessing.shared_memory.SharedMemory from the standard library. This fixes tests on MacOS. One workaround is still needed to manually disable resource tracking, but that monkey patch will not be needed after python-3.13.0. One possible concern with this approach is that the resource_tracker code used by this python package spawns a helper process. Historically, some MPI implementations were very unhappy with this. However, I tested this with OpenMPI on Linux and MacOS, and also with Cray MPICH, running across multiple nodes. No problems observed so far.

Fix catch of unit test failures

14 Mar 05:48
2ca8e38

Choose a tag to compare

  • Unit test failures were not triggering a non-zero return to the calling shell. Now fixed.
  • Moved the pre-deletion of the shared memory segment until after all processes have wrapped the buffer in a numpy array, ensuring that the buffer is not released too early. This fixes a failure on macos.

Move to sysv_ipc

31 Jan 22:52
7dbb4ed

Choose a tag to compare

The posix_ipc module is not available on conda-forge. This release moves the codebase to using sysv_ipc, which is available.

Fix python version in deploy action

30 Jan 21:29

Choose a tag to compare

Small updates to tests and CI workflows

30 Jan 21:25
b1d60d5

Choose a tag to compare

  • Bump python versions for tests and requirements.
  • Fix use of dtype np.int_ in tests.
  • Use concurrency in github actions rather than cancel-workflow action.
  • Update versioneer for python 3.12 compatibility.

Use Numpy Arrays for Single Process per Node

15 Dec 17:58

Choose a tag to compare

Even in the MPI case, if there is only one process in the node shared communicator, then use a simple numpy array. This reduces the total number of shared memory segments, which is limited by the kernel in terms of maximum number of open files (since shared memory segments appear as files to userspace).