Mpich Versions Save

Official MPICH Repository

v4.2.1

1 month ago

Changes in 4.2.1

  • Disable flat_namespace to build libmpifort on macOS by default

  • Prefix warning messages with "MPICH"

  • Add --disable-doc configure option

  • Fix support for building MPICH Fortran support with Xcode 15 on macOS

  • Fix bug in MPI_WIN_SHARED_QUERY when window is not shared

  • Fix bug in ch4/ofi gpu pipelining

  • Fixes for Intel GPU support

  • Fix memory leak in ch4/shm collectives

  • Fix bug in MPI_COMM_SPLIT with intercommunicators and non-zero root

  • Fix bug in DAOS ROMIO driver

  • Fix bug in cycling error code array

  • Return an error if there is failure to create a datatype in mpi_f08 module for noncontiguous user data

  • Return an error when shared memory segment creation fails

For a full list of commits see: https://github.com/pmodels/mpich/compare/v4.2.0...v4.2.1

v4.1.3

2 months ago

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

v4.2.0

3 months ago

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

v4.2.0rc3

3 months ago

tagging 'v4.2.0rc3'

v4.2.0rc2

4 months ago

v4.2.0b1

5 months ago

v4.2.0rc1

5 months ago

v3.4

9 months ago

Changes in 3.4

  • ch4 replaces ch3 as the default device configuration. If no network module is specified at configuration-time, MPICH will search the user environment in order to select one to build. The user will be prompted to choose if no preferred network library is detected.

  • Add support for Yaksa datatype engine (default in ch4).

  • Add support for GPU buffers (CUDA, Level Zero) in pt2pt, collectives, and one-sided communication.

  • Add support for XPMEM.

  • Add support for multiple virtual communication interfaces for more efficient MPI_THREAD_MULTIPLE (experimental).

  • Add DAOS ADIO driver to ROMIO (contributed by Intel).

  • Add Quobyte ADIO driver to ROMIO (contributed by Quobyte).

  • Add support for Arm compiler toolchain

  • Add support for NVIDIA HPC compilers

  • Add support for flang/f18 Fortran compiler

  • Add support for AddressSanitizer and UndefinedBehaviorSanitizer to debug configuration

  • Remove mxm, llc, and portals4 netmods from ch3.

  • Remove support for logical reduction operations on floating point types.

  • Remove MPIX_Mutex interfaces.

  • Further improvements to ch4 business card exchange: extra long address support and fixes for PMIx integration.

  • Un-inline non-critical ch4 code for improved build times.

  • Fix several test program bugs.

  • Fix several static analysis and compiler warnings.

  • Change the signature of MPID_Init to include requested and provided thread levels.

v4.1.2

11 months ago

Changes in 4.1.2

  • Update UCX module to includes fixes for building with GCC 13

  • Update libfabric module to 1.18.0 with additional fixes for building with recent versions of LLVM/Clang

  • Fix compiler wrapper scripts to be compatible with CUDA memory hooks

  • Fix MPIX_WAITALL_ENQUEUE to make a copy of the input request array

  • Fix bug in MPI_ALLREDUCE that could result in ranks receiving different floating point values

  • Fix potential deadlock when progressing RMA windows

  • Fix potential crash in MPI_REDUCE with non-zero root and MPI_IN_PLACE

  • Fix potential crash during probe with libfabric CXI provider

  • Fix MPI_PARRIVED when the partitioned request is inactive

  • Fix potential bug when an attribute delete callback deletes another attribute on the same object

  • Fix build issue in ROMIO Lustre driver

  • Improve Fortran 2008 binding support detection during configure

  • Report an error if collective tuning json file fails to open

  • Several fixes for testsuite programs and build configuration

v4.1.1

1 year ago

Changes in 4.1.1

  • Update embedded UCX module to 1.13.1. Fixes a build issue with binutils >= 2.39.

  • Update yaksa module. Support explicit NVCC setting by the user. Fixes a build issue when there is no libtool available in PATH.

  • Fix ch4:ucx initialization when configured with --enable-ch4-vci-method=implicit.

  • Fix potential error handler leak during MPI_SESSION_FINALIZE

  • Fix value of MPI_UNDEFINED in mpif.h binding

  • Fix MPI_IALLTOALLW with MPI_IN_PLACE

  • Fix send attribute handling in IPC path

  • Fix a bug in persistent MPI_ALLGATHER

  • Fix tests for use with non-MPICH libraries

  • Add missing MPI_T_ERR_NOT_ACCESSIBLE error code

  • Fix manpages for MPIX functions