Skip to content

Commit

Permalink
feat: update mpich to 4.2.0
Browse files Browse the repository at this point in the history
Development files for MPICH

Issue: deepin-community/sig-deepin-sysdev-team#547
Log: update repo
  • Loading branch information
xzl01 committed Apr 23, 2024
1 parent 3b700f8 commit d3584cc
Show file tree
Hide file tree
Showing 11,191 changed files with 1,427,016 additions and 1,498,888 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 0 additions & 1 deletion .gitignore

This file was deleted.

3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "modules/izem"]
path = modules/izem
url = https://github.com/pmodels/izem
[submodule "modules/libfabric"]
path = modules/libfabric
url = https://github.com/pmodels/libfabric
Expand Down
8 changes: 5 additions & 3 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@ Halim Amer <[email protected]> <[email protected]>
Huansong Fu <[email protected]>
Huansong Fu <[email protected]> <[email protected]>

James Dinan <[email protected]> <[email protected]>
James Dinan <[email protected]> <[email protected]>
James Dinan <[email protected]> <[email protected]>

Jeff Hammond <[email protected]> <[email protected]>
Jeff Hammond <[email protected]> <[email protected]>
Jeff Hammond <[email protected]> <[email protected]>
Jeff Hammond <[email protected]> <[email protected]>
Jeff Hammond <[email protected]> <[email protected]>

Junchao Zhang <[email protected]> <[email protected]>

Expand Down
204 changes: 93 additions & 111 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,57 +1,119 @@
===============================================================================
Changes in 4.0.2
Changes in 4.2.0
===============================================================================
# Complete support MPI 4.1 specification

# Fix CUDA configuration logic in yaksa
# Experimental thread communicator feature (e.g. MPIX_Threadcomm_init).
See paper "Frustrated With MPI+Threads? Try MPIxThreads!",
https://doi.org/10.1145/3615318.3615320.

# Fix support for dynamic process functionality with PMI2 clients
# Experimental datatype functions MPIX_Type_iov_len and MPIX_Type_Iov

# Fix non-zero appnum bug in PMI2 server in Hydra
# Experimental op MPIX_EQUAL for MPI_Reduce and MPI_Allreduce (intra
communicator only)

# Fix MPI_Op support for types created with MPI_Type_create_f90_xxx
# 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.

# Fix building ch4 with Intel compilers on macOS
# Error checking default changed to runtime (used to be all).

# Fix Level Zero properties initialization in MPL. Thanks to Brice
Videau for the report and patch.
# Use the error handler bound to MPI_COMM_SELF as the default error handler.

# Use standard names for CPU affinity functions with POSIX
threads. Fixes building against Musl libc. Thanks to Mosè Giordano for
the report and patch.
# 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.

# Add elemental to eq/neq operators in Fortran 2008 binding
# 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

# Workaround for inter-process mutex bug on FreeBSD

===============================================================================
Changes in 4.0.1
Changes in 4.1
===============================================================================

# Multiple fixes for NVIDIA/PGI HPC Compilers support
# Thread-cs in ch4 changed to per-vci.

# Testsuite (test/mpi) is configured separately from mpich configure.

# Added options in autogen to accelerate CI builds, including using pre-built
sub-modules. Added -yaksa-depth option to generate shallower yaksa pup code
for faster build and smaller binaries.

# Support singleton init using hydra.

# On OSX, link option flat_namespace is no longer turned on by default.

# Generate mpi.mod Fortran interfaces using Python 3. For many compilers,
including gfortran, flags such as -fallow-mismatched-args is no longer
necessary.

# Fixed message queue debugger interface in ch4.

# Fix ch4:ofi:gni provider capability set
# PMI (src/pmi) is refactored as a subdir and can be separately distributed.

# Fix MPI_SESSION_INIT "thread_level" info hint
# Added MPIX_Comm_get_failed.

# Fix build on macOS with --disable-shared
# Experimental MPIX stream API to enable explicit thread contexts.

# Fix QMPI function definitions
# Experimental MPIX gpu enqueue API. It currently only supports CUDA streams.

# Fix support for "host" info hint in MPI_COMM_SPAWN[_MULTIPLE]
# Delays GPU resource allocation in yaksa.

# Fix manpage generation
# CH3 nemesis ofi netmod is removed.

# Add missing MPI_F_sync_reg function
# New collective algorithms. All collective algorithms are listed in
src/mpi/coll/coll_algorithms.txt

# Add missing const to MPI_Psend_init buffer argument
# Removed hydra2. We will port unique features of hydra2, including
tree-launching, to hydra in the future release.

# Make Python 3 optional in configure script
# Added in-repository wiki documentation.

# Remove -Wl,flat_namespace from compile wrappers by default (macOS only)
# Added stream workq to support optimizations for enqueue operations.

# Update UCX module to v1.12.0
# Better support for large count APIs by eliminating type conversion issues.

# Update yaksa module to support latest Ampere compute capability
# Hydra now uses libpmi (src/pmi) for handling PMI messages.

# Many bug fixes and enhancements.

===============================================================================
Changes in 4.0
Expand All @@ -73,7 +135,7 @@
# Generate C API interface functions including man page notes and error
checking using Python scripts.

# Generate Fortran (mpif.h, mpi_f08) bindings using Python scripts.
# Generate Fortran bindings using Python scripts.

# Generate collective entrance functions and generate per-algorithm tests.

Expand All @@ -100,88 +162,8 @@

# Avoid building MPL and hwloc multiple times.

# Fix MPIX_Query_cuda_support.

# Many bug fixes and code clean-ups.

===============================================================================
Changes in 3.4.3
===============================================================================

# Fix bugs in GPFS ROMIO driver

# Fix bugs in DAOS ROMIO driver

# Fix nemesis shm bug on systems with weak memory consistency

# Fix progress issue in ch4:ucx finalize

# Fix nonblocking collective issue during finalize

# Fix UBSan warnings in 32-bit builds

# Fix predefined datatype handle leaks

# Fix bug in topology-aware communicator creation

# Fix Slurm nodelist parsing

# Fix testcase for out-of-tree configuration

# Fix truncation testcase for possible disconnection error

# Hydra help message improvements

# Add support for DAOS pool and container labels

===============================================================================
Changes in 3.4.2
===============================================================================

# Update configure options to support --disable-ze and --disable-cuda
to explicitly disable GPU-awareness

# Update embedded hwloc to version 2.4.1. Fixes a build issue on
systems with OpenCL.

# Fixes for Argobots thread package support.

# Fixes for the DAOS ROMIO driver (thanks to Intel for contributing)

# Fix additional bugs in GPU-aware nonblocking op collectives

# Fix 'make check' errors with embedded MPL and json-c libraries

# Fix support for GNI provider in ch4:ofi netmod

# Fix bug in dynamic window memory registration with ch4:ofi netmod

# Fix bug in persistent pt2pt when used with MPI_PROC_NULL

# Fix bug in hydra nameserver when freeing published entries

# Fix bugs in GPFS ROMIO driver (thanks to IBM for contributing)

# Fix bug in darray type creation (thanks to IBM for contributing)

# Fix bugs in XPMEM support

# Fix bug in MPI_Comm_spawn_multiple where non-root args were not ignored

===============================================================================
Changes in 3.4.1
===============================================================================

# Fix bug in GPU memory hooks that caused failures with NCCL

# Fix bug in GPU-aware nonblocking op collectives

# Hide symbols from embedded json-c module

# Removed anonymous struct/union usage in MPL

# Disable Java support in embedded UCX module

===============================================================================
Changes in 3.4
===============================================================================
Expand Down Expand Up @@ -295,7 +277,7 @@
transport functions.

# Improvements to derived datatype testing (DTPools -
https://wiki.mpich.org/mpich/index.php/DTPools).
https://github.com/pmodels/mpich/blob/main/doc/wiki/design/DTPools.md).

# Added new "non-catastrophic" error codes to expose internal
resource exhaustion.
Expand Down Expand Up @@ -451,7 +433,7 @@
# Blue Gene/Q implementation supports MPI-3. This release contains a
functional and compliant Blue Gene/Q implementation of the MPI-3 standard.
Instructions to build on Blue Gene/Q are on the mpich.org wiki:
http://wiki.mpich.org/mpich/index.php/BGQ
https://github.com/pmodels/mpich/blob/main/doc/wiki/source_code/BGQ.md

# Fortran 2008 bindings (experimental). Build with --enable-fortran=all. Must have
a Fortran 2008 + TS 29113 capable compiler.
Expand Down Expand Up @@ -534,7 +516,7 @@

# Several improvements to the Hydra process binding code. See the
Hydra wiki page for more information:
http://wiki.mpich.org/mpich/index.php/Using_the_Hydra_Process_Manager
https://github.com/pmodels/mpich/blob/main/doc/wiki/how_to/Using_the_Hydra_Process_Manager.md

# MPICH now supports operations on very large datatypes (those that describe
more than 32 bits of data). This work also allows MPICH to fully support
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ How to contribute to MPICH
agreement. http://www.mpich.org/documentation/contributor-docs/

2. Format your patches according to the MPICH coding
standards. https://wiki.mpich.org/mpich/index.php/Coding_Standards
standards. https://github.com/pmodels/mpich/blob/main/doc/wiki/source_code/Coding_Standards.md

3. Use the git pre-commit hook included with MPICH
(mpich_root/maint/hooks/pre-commit)
Expand All @@ -23,4 +23,4 @@ can be merged.

More info on contributing to MPICH, including tips on how to use git,
can be found here:
https://wiki.mpich.org/mpich/index.php/Contributing_to_MPICH
https://github.com/pmodels/mpich/blob/main/doc/wiki/source_code/Contributing_to_MPICH.md
3 changes: 2 additions & 1 deletion COPYRIGHT
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ which must be included in the prologue of the code and in all source listings
of the code.

Copyright Notice
1998--2020, Argonne National Laboratory
1998--2023, Argonne National Laboratory

Permission is hereby granted to use, reproduce, prepare derivative works, and
to redistribute to others. This software was authored by:
Expand Down Expand Up @@ -53,3 +53,4 @@ Portions of this code have been contributed under the above license by:
* Dolphin Interconnect Solutions Inc.
* Institut Polytechnique de Bordeaux
* Quobyte Corporation
* ParTec AG
Loading

0 comments on commit d3584cc

Please sign in to comment.