[mpich-announce] Announcing the availability of MPICH 3.3rc1
Raffenetti, Kenneth J.
raffenet at mcs.anl.gov
Fri Nov 9 12:49:21 CST 2018
A new release candidate of MPICH, 3.3rc1, is now available for download.
MPICH 3.3 contains a new (non-default) device layer implementation –
CH4. CH4 is designed for low software overheads to better exploit
next-generation hardware. An OFI (http://libfabric.org) or UCX
(http://openucx.org) library is required to build CH4. Example configure
lines:
./configure --with-device=ch4:ofi --with-libfabric=<path/to/ofi/install>
./configure --with-device=ch4:ucx --with-ucx=<path/to/ucx/install>
CH4 is still experimental, meaning there are known build issues and
bugs, but most tests and common benchmarks will complete on 64-bit Linux
systems. Since 3.3b3, there have been more stability improvements, bug
fixes, and code cleanup. Also new are improvements to
MPI_THREAD_MULTIPLE in CH4 through new thread safety models at the
Virtual Network Interface (VNI) level. This introduces two new models
that leverage work-queues to offload operations and improve scalability
under contention.
You can find the release on our downloads page (www.mpich.org/downloads).
Regards,
The MPICH team
===============================================================================
Changes in 3.3
===============================================================================
# CH4 Device: A new device layer implementation designed for low
software overheads. CH4 has experimental support for OFI and UCX
network libraries, and POSIX shared memory. Thanks to Intel,
Mellanox, and RIKEN AICS for participating in the CH4 coding
effort.
# Fixed SLURM integration in Hydra for new node list format.
# Added support for PMIx (https://pmix.github.io/pmix/) client
library in CH4 netmods. Note that you must use a compatible PMIx
server in this configuration.
# Better organization of collectives in the MPI layer. The new
scheme, which de-couples implementation from selection logic,
enables easier integration of additional algorithms.
# TSP collectives framework: A C++-template style framework for
collective algorithms is added to allow single collective
implementation to move data over generic or device-specific
transport functions.
# Improvements to derived datatype testing (DTPools -
https://wiki.mpich.org/mpich/index.php/DTPools).
# Added new "non-catastrophic" error codes to expose internal
resource exhaustion.
# Added info hints to MPI_Comm_split_type to support splitting
communicators by machine topology. Both on-node (socket, core,
etc.) and off-node (switch-level) hints are defined.
# Improvements to MPI_THREAD_MULTIPLE in CH4 through new thread
safety models at the Virtual Network Interface (VNI) level. This
introduces two new models that leverage work-queues to offload
operations and improve scalability under contention.
# Message Driven Thread Activation (MDTA). An alternative locking
model is defined for MPI_THREAD_MULTIPLE in CH4.
# Added PMI usage optimizations for business card exchange in CH4
netmods.
# Improvements on MPI_Abort. MPI_Abort invoked on subcommunicators will
only abort the connected processes within that communicator.
# Cleanup of whitespace (ch3 excluded) using the
maint/code-cleanup.sh script. For instructions on how to update
PRs/branches based on MPICH before the cleanup, see
https://github.com/pmodels/mpich/wiki/Code-Cleanup-Procedure.
# Removed the PAMI device and poe PMI client.
# C99 compiler support is now required to build MPICH.
# Several other minor bug fixes, memory leak fixes, and code cleanup.
A full list of changes is available at the following link:
http://git.mpich.org/mpich.git/shortlog/v3.2..v3.3rc1
A list of bugs that have been fixed is available at the following
link:
https://github.com/pmodels/mpich/milestone/25?closed=1
More information about the announce
mailing list