<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
<br>
I am happy to announce that a new release of MPICH, 4.2.0b1, is now available for
<a href="https://www.mpich.org/static/downloads/4.2.0b1/mpich-4.2.0b1.tar.gz" title="https://www.mpich.org/static/downloads/4.2.0b1/mpich-4.2.0b1.tar.gz" id="LPlnk378901">
download</a>. This is the first feature-complete release for the 4.2 series. This release provides full support for the newly ratified
<a href="https://www.mpi-forum.org/docs" title="https://www.mpi-forum.org/docs" id="LPlnk149212">
MPI 4.1 specification</a>. It also contains some new experimental features. MPIX Thread communicator supports MPI usage in a thread parallel region. MPIX_Type_iov provides iovec access to MPI derived datatypes. Main changes are listed below. We welcome interested
users to test and provide feedback.<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
===============================================================================
<div class="ContentPasted1"> Changes in 4.2</div>
<div class="ContentPasted1">===============================================================================</div>
<div class="ContentPasted1"># Complete support MPI 4.1 specification</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Experimental thread communicator feature (e.g. MPIX_Threadcomm_init).</div>
<div class="ContentPasted1"> See paper "Frustrated With MPI+Threads? Try MPIxThreads!",</div>
<div class="ContentPasted1"> https://doi.org/10.1145/3615318.3615320.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Experimental datatype functions MPIX_Type_iov_len and MPIX_Type_Iov</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Experimental op MPIX_EQUAL for MPI_Reduce and MPI_Allreduce (intra</div>
<div class="ContentPasted1"> communicator only)</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Use --with-{pmi,pmi2,pmix]=[path] to configure external PMI library.</div>
<div class="ContentPasted1"> Convenience options for Slurm and cray deprecated. Use --with-pmi=oldcray</div>
<div class="ContentPasted1"> for older Cray environment.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Error checking default changed to runtime (used to be all).</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Use the error handler bound to MPI_COMM_SELF as the default error handler.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Use ierror instead of ierr in "use mpi" Fortran interface. This affects</div>
<div class="ContentPasted1"> user code if they call with explicit keyword, e.g. call MPI_Init(ierr=arg).</div>
<div class="ContentPasted1"> "ierror" is the correct name specified in the MPI specification. We only</div>
<div class="ContentPasted1"> added subroutine interface in "mpi.mod" since 4.1.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Handle conversion functions, such as MPI_Comm_c2f, MPI_Comm_f2c, etc., are</div>
<div class="ContentPasted1"> no longer macros. MPI-4.1 require these to be actual functions.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Yaksa updated to auto detect the GPU architecture and only build for</div>
<div class="ContentPasted1"> the detected arch. This applies to CUDA and HIP support.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># MPI_Win_shared_query can be used on windows created by MPI_Win_create,</div>
<div class="ContentPasted1"> MPI_Win_allocate, in addition to windows created by MPI_Win_allocate_shared.</div>
<div class="ContentPasted1"> MPI_Win_allocate will create shared memory whenever feasible, including between</div>
<div class="ContentPasted1"> spawned processes on the same node.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Fortran mpi.mod support Type(c_ptr) buffer output for MPI_Alloc_mem,</div>
<div class="ContentPasted1"> MPI_Win_allocate, and MPI_Win_allocate_shared.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># New functions added in MPI-4.1: MPI_Remove_error_string, MPI_Remove_error_code,</div>
<div class="ContentPasted1"> and MPI_Remove_error_class</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># New functions added in MPI-4.1: MPI_Request_get_status_all,</div>
<div class="ContentPasted1"> MPI_Request_get_status_any, and MPI_Request_get_status_some.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># New function added in MPI-4.1: MPI_Type_get_value_index.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># New functions added in MPI-4.1: MPI_Comm_attach_buffer, MPI_Session_attach_buffer,</div>
<div class="ContentPasted1"> MPI_Comm_detach_buffer, MPI_Session_detach_buffer,</div>
<div class="ContentPasted1"> MPI_Buffer_flush, MPI_Comm_flush_buffer, MPI_Session_flush_buffer,</div>
<div class="ContentPasted1"> MPI_Buffer_iflush, MPI_Comm_iflush_buffer, and MPI_Session_iflush_buffer.</div>
<div class="ContentPasted1"> Also added constant MPI_BUFFER_AUTOMATIC to allow automatic buffers.</div>
<div><br class="ContentPasted1">
</div>
<div class="ContentPasted1"># Support for "mpi_memory_alloc_kinds" info key. Memory allocation kind</div>
<div class="ContentPasted1"> requests can be made via argument to mpiexec, or as info during</div>
<div class="ContentPasted1"> session creation. Kinds supported are "mpi" (with standard defined</div>
<div class="ContentPasted1"> restrictors) and "system". Queries for supported kinds can be made on</div>
<div class="ContentPasted1"> MPI objects such as sessions, comms, windows, or files. MPI 4.1 states</div>
<div class="ContentPasted1"> that supported kinds can also be found in MPI_INFO_ENV, but it was</div>
<div class="ContentPasted1"> decided at the October 2023 meeting that this was a mistake and will</div>
<div class="ContentPasted1"> be removed in an erratum.</div>
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
-- <br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hui Zhou</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Argonne National Laboratory<br>
</div>
</body>
</html>