A new release of MPICH, 4.1.3, is now available for download. This is the third and final bug-fix release in the 4.1.x series. It contains a number of fixes for user-reported crashes and build issues.
You can find the release on our downloads page (https://urldefense.us/v3/__https://www.mpich.org/downloads/__;!!G_uCfscf7eW… )
Regards,
The MPICH team
===============================================================================
Changes in 4.1.3
===============================================================================
# Ignore errors when shutting down ch4/ofi netmod to avoid crashing in
MPI_FINALIZE. Debug builds will now warn about unclean shutdown.
# Add missing PMPI_Status_{f082f,f2f08} in mpi_f08 module
# Fix names for large count subroutines in mpi_f08 module
# Fix return argument name to be ierror in Fortran mpi module
# Fix bug in persistent synchronous send that could result in completion
before matching
# Fix integer overflow bugs in ROMIO GPFS driver
# Fix bug in ch4/ucx netmod when partial data is sent to a noncontig
recv
# Fix bug in MPI_REDUCE with MPI_IN_PLACE in ch4/shm collectives
# Fix status object returned by MPI_IRECV with MPI_PROC_NULL
# Fix memory leak in release_gather collectives
# Fix integer overflow bugs in MPI_(I)ALLGATHERV
# Return MPI_ERR_TYPE if MPI_TYPE_GET_ENVELOPE is used with a large
count datatype
# Return an error if no valid libfabric provider is found by ch4/ofi
netmod
# Return an error if no executable is given to mpiexec (Hydra)
# Return an error when cudaMalloc fails in the GPU tests
# Return an error if MPI_ACCUMULATE datatypes are mismatched
# Return an error when shared memory segment creation fails
# Return an error if there is failure to create a datatype in mpi_f08
module for noncontiguous user data
A full list of changes since 4.1.2 can be found here: https://urldefense.us/v3/__https://github.com/pmodels/mpich/compare/v4.1.2.…
A new stable release of MPICH, 4.2.0, is now available for download. This is the first stable release in the 4.2.x series.
You can find the release on our downloads page (https://www.mpich.org/downloads/)
Regards,
The MPICH team
===============================================================================
Changes in 4.2.0
===============================================================================
# Complete support MPI 4.1 specification
# Experimental thread communicator feature (e.g. MPIX_Threadcomm_init).
See paper "Frustrated With MPI+Threads? Try MPIxThreads!",
https://doi.org/10.1145/3615318.3615320.
# Experimental datatype functions MPIX_Type_iov_len and MPIX_Type_Iov
# Experimental op MPIX_EQUAL for MPI_Reduce and MPI_Allreduce (intra
communicator only)
# Use --with-{pmi,pmi2,pmix]=[path] to configure external PMI library.
Convenience options for Slurm and cray deprecated. Use
--with-pmi=oldcray for older Cray environment.
# Error checking default changed to runtime (used to be all).
# Use the error handler bound to MPI_COMM_SELF as the default error
handler.
# Use ierror instead of ierr in "use mpi" Fortran interface. This
affects user code if they call with explicit keyword, e.g. call
MPI_Init(ierr=arg). "ierror" is the correct name specified in the MPI
specification. We only added subroutine interface in "mpi.mod" since
4.1.
# Handle conversion functions, such as MPI_Comm_c2f, MPI_Comm_f2c, etc.,
are no longer macros. MPI-4.1 require these to be actual functions.
# Yaksa updated to auto detect the GPU architecture and only build for
the detected arch. This applies to CUDA and HIP support.
# MPI_Win_shared_query can be used on windows created by MPI_Win_create,
MPI_Win_allocate, in addition to windows created by
MPI_Win_allocate_shared. MPI_Win_allocate will create shared memory
whenever feasible, including between spawned processes on the same
node.
# Fortran mpi.mod support Type(c_ptr) buffer output for MPI_Alloc_mem,
MPI_Win_allocate, and MPI_Win_allocate_shared.
# New functions added in MPI-4.1: MPI_Remove_error_string,
MPI_Remove_error_code, and MPI_Remove_error_class
# New functions added in MPI-4.1: MPI_Request_get_status_all,
MPI_Request_get_status_any, and MPI_Request_get_status_some.
# New function added in MPI-4.1: MPI_Type_get_value_index.
# New functions added in MPI-4.1: MPI_Comm_attach_buffer,
MPI_Session_attach_buffer, MPI_Comm_detach_buffer,
MPI_Session_detach_buffer, MPI_Buffer_flush, MPI_Comm_flush_buffer,
MPI_Session_flush_buffer, MPI_Buffer_iflush, MPI_Comm_iflush_buffer,
and MPI_Session_iflush_buffer. Also added constant
MPI_BUFFER_AUTOMATIC to allow automatic buffers.
# Support for "mpi_memory_alloc_kinds" info key. Memory allocation kind
requests can be made via argument to mpiexec, or as info during
session creation. Kinds supported are "mpi" (with standard defined
restrictors) and "system". Queries for supported kinds can be made on
MPI objects such as sessions, comms, windows, or files. MPI 4.1 states
that supported kinds can also be found in MPI_INFO_ENV, but it was
decided at the October 2023 meeting that this was a mistake and will
be removed in an erratum.
# Fix potential crash in GPU memory hooks
A full list of commits since 4.1.2 can be found here: https://github.com/pmodels/mpich/compare/v4.1.2…v4.2.0/