mirror of https://gitee.com/openkylin/hdf5.git
drop-deprecated-mpi-1-api
commit 38c202df4db8eddd5e6f6f7d6506ce97912a3111 Author: Dana Robinson <derobins@hdfgroup.org> Date: Mon Nov 26 22:10:06 2018 -0800 Updated H5S to use the MPI-2 function MPI_Type_get_exten() where available. OpenMPI 4.0 removed the deprecated MPI-1 MPI_type_extent() call by default, so this avoids needing a special OpenMPI build. Gbp-Pq: Name drop-deprecated-mpi-1-api.patch
This commit is contained in:
parent
d1d206e476
commit
e944f8e2ca
2
src/H5.c
2
src/H5.c
|
@ -138,7 +138,7 @@ H5_init_library(void)
|
|||
if (mpi_initialized && !mpi_finalized) {
|
||||
int key_val;
|
||||
|
||||
if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN,
|
||||
if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_COMM_NULL_COPY_FN,
|
||||
(MPI_Comm_delete_attr_function *)H5_mpi_delete_cb,
|
||||
&key_val, NULL)))
|
||||
HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code)
|
||||
|
|
|
@ -879,7 +879,14 @@ H5S_mpio_hyper_type(const H5S_t *space, size_t elmt_size,
|
|||
HMPI_GOTO_ERROR(FAIL, "MPI_Type_contiguous failed", mpi_code)
|
||||
}
|
||||
|
||||
MPI_Type_extent (inner_type, &inner_extent);
|
||||
/* As of version 4.0, OpenMPI now turns off MPI-1 API calls by default,
|
||||
* so we're using the MPI-2 version even though we don't need the lb
|
||||
* value.
|
||||
*/
|
||||
{
|
||||
MPI_Aint unused_lb_arg;
|
||||
MPI_Type_get_extent(inner_type, &unused_lb_arg, &inner_extent);
|
||||
}
|
||||
stride_in_bytes = inner_extent * (MPI_Aint)d[i].strid;
|
||||
|
||||
/* If the element count is larger than what a 32 bit integer can hold,
|
||||
|
@ -1500,7 +1507,14 @@ static herr_t H5S_mpio_create_large_type (hsize_t num_elements,
|
|||
}
|
||||
}
|
||||
|
||||
MPI_Type_extent (old_type, &old_extent);
|
||||
/* As of version 4.0, OpenMPI now turns off MPI-1 API calls by default,
|
||||
* so we're using the MPI-2 version even though we don't need the lb
|
||||
* value.
|
||||
*/
|
||||
{
|
||||
MPI_Aint unused_lb_arg;
|
||||
MPI_Type_get_extent(old_type, &unused_lb_arg, &old_extent);
|
||||
}
|
||||
|
||||
/* Set up the arguments for MPI_Type_struct constructor */
|
||||
type[0] = outer_type;
|
||||
|
|
|
@ -1217,20 +1217,20 @@ setup_derived_types(void)
|
|||
struct mssg_t sample; /* used to compute displacements */
|
||||
|
||||
/* setup the displacements array */
|
||||
if ( ( MPI_SUCCESS != MPI_Address(&sample.req, &displs[0]) ) ||
|
||||
( MPI_SUCCESS != MPI_Address(&sample.src, &displs[1]) ) ||
|
||||
( MPI_SUCCESS != MPI_Address(&sample.dest, &displs[2]) ) ||
|
||||
( MPI_SUCCESS != MPI_Address(&sample.mssg_num, &displs[3]) ) ||
|
||||
( MPI_SUCCESS != MPI_Address(&sample.base_addr, &displs[4]) ) ||
|
||||
( MPI_SUCCESS != MPI_Address(&sample.len, &displs[5]) ) ||
|
||||
( MPI_SUCCESS != MPI_Address(&sample.ver, &displs[6]) ) ||
|
||||
( MPI_SUCCESS != MPI_Address(&sample.count, &displs[7]) ) ||
|
||||
( MPI_SUCCESS != MPI_Address(&sample.magic, &displs[8]) ) ) {
|
||||
if ( ( MPI_SUCCESS != MPI_Get_address(&sample.req, &displs[0]) ) ||
|
||||
( MPI_SUCCESS != MPI_Get_address(&sample.src, &displs[1]) ) ||
|
||||
( MPI_SUCCESS != MPI_Get_address(&sample.dest, &displs[2]) ) ||
|
||||
( MPI_SUCCESS != MPI_Get_address(&sample.mssg_num, &displs[3]) ) ||
|
||||
( MPI_SUCCESS != MPI_Get_address(&sample.base_addr, &displs[4]) ) ||
|
||||
( MPI_SUCCESS != MPI_Get_address(&sample.len, &displs[5]) ) ||
|
||||
( MPI_SUCCESS != MPI_Get_address(&sample.ver, &displs[6]) ) ||
|
||||
( MPI_SUCCESS != MPI_Get_address(&sample.count, &displs[7]) ) ||
|
||||
( MPI_SUCCESS != MPI_Get_address(&sample.magic, &displs[8]) ) ) {
|
||||
|
||||
nerrors++;
|
||||
success = FALSE;
|
||||
if ( verbose ) {
|
||||
HDfprintf(stdout, "%d:%s: MPI_Address() call failed.\n",
|
||||
HDfprintf(stdout, "%d:%s: MPI_Get_address() call failed.\n",
|
||||
world_mpi_rank, FUNC);
|
||||
}
|
||||
|
||||
|
@ -1245,14 +1245,14 @@ setup_derived_types(void)
|
|||
|
||||
if ( success ) {
|
||||
|
||||
result = MPI_Type_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);
|
||||
result = MPI_Type_create_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);
|
||||
|
||||
if ( result != MPI_SUCCESS ) {
|
||||
|
||||
nerrors++;
|
||||
success = FALSE;
|
||||
if ( verbose ) {
|
||||
HDfprintf(stdout, "%d:%s: MPI_Type_struct() call failed.\n",
|
||||
HDfprintf(stdout, "%d:%s: MPI_Type_create_struct() call failed.\n",
|
||||
world_mpi_rank, FUNC);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue