diff --git a/src/h5core/h5_hdf5_private.h b/src/h5core/h5_hdf5_private.h index a069d67..2409c9b 100644 --- a/src/h5core/h5_hdf5_private.h +++ b/src/h5core/h5_hdf5_private.h @@ -1007,6 +1007,7 @@ hdf5_set_fapl_mpio_property ( HDF5_WRAPPER_RETURN (H5_SUCCESS); } +#if H5_VERSION_LE(1,8,12) static inline h5_err_t hdf5_set_fapl_mpiposix_property ( hid_t fapl_id, @@ -1024,6 +1025,7 @@ hdf5_set_fapl_mpiposix_property ( " the file access property list.")); HDF5_WRAPPER_RETURN (H5_SUCCESS); } +#endif static inline h5_err_t hdf5_set_dxpl_mpio_property ( diff --git a/src/h5core/h5_model.c b/src/h5core/h5_model.c index 1df7f93..4cdb71e 100644 --- a/src/h5core/h5_model.c +++ b/src/h5core/h5_model.c @@ -165,8 +165,11 @@ h5_set_throttle ( ) { h5_file_p f = (h5_file_p)f_; H5_CORE_API_ENTER (h5_err_t, "f=%p, factor=%d", f, factor); - if ( (f->props->flags & H5_VFD_MPIO_INDEPENDENT) || - (f->props->flags & H5_VFD_MPIO_POSIX) ) { + if ( (f->props->flags & H5_VFD_MPIO_INDEPENDENT) +#if H5_VERSION_LE(1,8,12) + || (f->props->flags & H5_VFD_MPIO_POSIX) +#endif + ) { f->props->throttle = factor; h5_info ( "Throttling enabled with factor = %lld", diff --git a/src/h5core/h5_openclose.c b/src/h5core/h5_openclose.c index 58f57af..8087465 100644 --- a/src/h5core/h5_openclose.c +++ b/src/h5core/h5_openclose.c @@ -79,6 +79,7 @@ mpi_init ( TRY (f->props->access_prop = hdf5_create_property(H5P_FILE_ACCESS)); /* select the HDF5 VFD */ +#if H5_VERSION_LE(1,8,12) if ((f->props->flags & H5_VFD_MPIO_POSIX)) { h5_info("Selecting MPI-POSIX VFD"); hbool_t use_gpfs = 0; // TODO autodetect GPFS? @@ -89,8 +90,7 @@ mpi_init ( h5_info("Selecting CORE VFD"); TRY (hdf5_set_fapl_core (f->props->access_prop, f->props->align, 1)); - } - else if ((f->props->flags & H5_VFD_MPIO_INDEPENDENT)){ + } else if ((f->props->flags & H5_VFD_MPIO_INDEPENDENT)){ h5_info("Selecting MPI-IO VFD, using independent mode"); TRY (hdf5_set_fapl_mpio_property (f->props->access_prop, f->props->comm, MPI_INFO_NULL)); @@ -104,6 +104,27 @@ mpi_init ( TRY (hdf5_set_dxpl_mpio_property (f->props->xfer_prop, H5FD_MPIO_COLLECTIVE) ); } +#else + // VFD_MPIO_POSIX has been removed in HDF5 1.8.13 + if ((f->props->flags & H5_VFD_CORE)) { + h5_info("Selecting CORE VFD"); + TRY (hdf5_set_fapl_core (f->props->access_prop, + f->props->align, 1)); + } else if ((f->props->flags & H5_VFD_MPIO_INDEPENDENT)){ + h5_info("Selecting MPI-IO VFD, using independent mode"); + TRY (hdf5_set_fapl_mpio_property (f->props->access_prop, + f->props->comm, MPI_INFO_NULL)); + TRY (hdf5_set_dxpl_mpio_property (f->props->xfer_prop, + H5FD_MPIO_INDEPENDENT) ); + } else { + // default is MPI-IO colloctive mode + h5_info("Selecting MPI-IO VFD, using collective mode"); + TRY (hdf5_set_fapl_mpio_property (f->props->access_prop, + f->props->comm, MPI_INFO_NULL)); + TRY (hdf5_set_dxpl_mpio_property (f->props->xfer_prop, + H5FD_MPIO_COLLECTIVE) ); + } +#endif #ifdef H5_USE_LUSTRE if (f->flags & H5_FS_LUSTRE) { TRY (h5_optimize_for_lustre(f, filename)); @@ -141,7 +162,7 @@ set_default_file_props ( ) { H5_INLINE_FUNC_ENTER (h5_err_t); h5_prop_file_p props = (h5_prop_file_p)_props; - bzero (props, sizeof (props)); + bzero (props, sizeof (*props)); props->class = H5_PROP_FILE; TRY (props->prefix_step_name = h5_calloc (1, H5_STEPNAME_LEN)); strncpy (