Skip to content

Commit

Permalink
Drop MPI-2 support (#3643)
Browse files Browse the repository at this point in the history
  • Loading branch information
brtnfld authored Oct 8, 2023
1 parent 07347cc commit 6edd9a0
Show file tree
Hide file tree
Showing 9 changed files with 73 additions and 215 deletions.
6 changes: 6 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,12 @@ if (HDF5_ENABLE_PARALLEL)
find_package(MPI REQUIRED)
if (MPI_C_FOUND)
set (H5_HAVE_PARALLEL 1)

# Require MPI standard 3.0 and greater
if (MPI_VERSION LESS 3)
message (FATAL_ERROR "HDF5 requires MPI standard 3.0 or greater")
endif ()

# MPI checks, only do these if MPI_C_FOUND is true, otherwise they always fail
# and once set, they are cached as false and not regenerated
set (CMAKE_REQUIRED_LIBRARIES "${MPI_C_LIBRARIES}")
Expand Down
14 changes: 14 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -2654,6 +2654,20 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
fi
fi

# Requires MPI standard 3.0 and greater
if test "X${enable_parallel}" = "Xyes"; then
AC_MSG_CHECKING([whether MPI meets the minimum 3.0 standard])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <mpi.h>
#if MPI_VERSION < 3
#error, found MPI_VERSION < 3
#endif]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_ERROR([HDF5 requires MPI standard 3.0 or greater])]
)
fi

AC_MSG_CHECKING([for parallel support files])
case "X-$enable_parallel" in
X-|X-no|X-none)
Expand Down
6 changes: 6 additions & 0 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,12 @@ Bug Fixes since HDF5-1.14.0 release
===================================
Library
-------

- Dropped support for MPI-2

The MPI-2 supporting artifacts have been removed due to the cessation
of MPI-2 maintenance and testing since version HDF5 1.12.

- Fixed a bug with the way the Subfiling VFD assigns I/O concentrators

During a file open operation, the Subfiling VFD determines the topology
Expand Down
16 changes: 0 additions & 16 deletions src/H5Dmpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -3645,7 +3645,6 @@ H5D__mpio_share_chunk_modification_data(H5D_filtered_collective_io_info_t *chunk
int H5_ATTR_NDEBUG_UNUSED mpi_size, unsigned char ***chunk_msg_bufs,
int *chunk_msg_bufs_len)
{
#if H5_CHECK_MPI_VERSION(3, 0)
H5D_filtered_collective_chunk_info_t *chunk_table = NULL;
H5S_sel_iter_t *mem_iter = NULL;
unsigned char **msg_send_bufs = NULL;
Expand Down Expand Up @@ -3867,20 +3866,12 @@ H5D__mpio_share_chunk_modification_data(H5D_filtered_collective_io_info_t *chunk
* post a non-blocking receive to receive it
*/
if (msg_flag) {
#if H5_CHECK_MPI_VERSION(3, 0)
MPI_Count msg_size = 0;

if (MPI_SUCCESS != (mpi_code = MPI_Get_elements_x(&status, MPI_BYTE, &msg_size)))
HMPI_GOTO_ERROR(FAIL, "MPI_Get_elements_x failed", mpi_code)

H5_CHECK_OVERFLOW(msg_size, MPI_Count, int);
#else
int msg_size = 0;

if (MPI_SUCCESS != (mpi_code = MPI_Get_elements(&status, MPI_BYTE, &msg_size)))
HMPI_GOTO_ERROR(FAIL, "MPI_Get_elements failed", mpi_code)
#endif

if (msg_size <= 0)
HGOTO_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "invalid chunk modification message size");

Expand Down Expand Up @@ -4033,13 +4024,6 @@ H5D__mpio_share_chunk_modification_data(H5D_filtered_collective_io_info_t *chunk
#endif

FUNC_LEAVE_NOAPI(ret_value)
#else
FUNC_ENTER_PACKAGE
HERROR(
H5E_DATASET, H5E_WRITEERROR,
"unable to send chunk modification data between MPI ranks - MPI version < 3 (MPI_Ibarrier missing)")
FUNC_LEAVE_NOAPI(FAIL)
#endif
} /* end H5D__mpio_share_chunk_modification_data() */

/*-------------------------------------------------------------------------
Expand Down
Loading

0 comments on commit 6edd9a0

Please sign in to comment.