Releases: tskisner/pshmem
Fix RMA error
- Fix RMA sequence error with some MPI implementations
- Add python 3.9 and 3.10 to test matrix
Support zero-size data
- Support size-zero MPIShared objects
- Small fixes to Bcast for mpi4py 3.1.1
Support Re-use of Communicators
The MPIShared
class now accepts pre-existing node and node-rank communicators in the constructor.
Remove use of MPI Abort
When encountering an error, print a message and raise or re-raise an exception. This allows easier viewing of problems that occur in the underlying mpi4py package. It does mean that calling applications must be diligent about handling exceptions on all processes an taking appropriate action to avoid deadlocks at future barriers and collective calls.
Ensure freeing of communicators
Properly free communicators at destruction of MPIShared
objects. Expand unit tests to include split communicators and MPI.COMM_SELF
.
Small bug fix in setitem
Handle the case of slices with None values (e.g. [:]
).
Support setitem syntax in MPIShared
This PR adds support for using square-bracket slice assignment to the MPIShared class. This syntax is still a collective operation and may be slightly slower than using the set()
method since it must first do and Allreduce
to determine which process has a data input which is not None.
Remove test import
This removes the namespace import of the test subpackage, which explicitly imports mpi4py. The pshmem package can now be imported without triggering an mpi4py import. mpi4py will only be used if a communicator is passed which is not None.
Improved element access
Improved access to local shared memory copy. Updated README.
First automated deployment
0.2.2 Only upload our own project wheels.