diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2023-12-07 18:13:21 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-07 18:13:21 (GMT) |
commit | fb84c696a476c39db2c35e7d86b818138e089358 (patch) | |
tree | 56c0fec578e2e0d2eaee455cf3ae133dca541989 /src/H5Fmpi.c | |
parent | dc8b455ac00e899b53127de0d270230f4d4e40a1 (diff) | |
download | hdf5-fb84c696a476c39db2c35e7d86b818138e089358.zip hdf5-fb84c696a476c39db2c35e7d86b818138e089358.tar.gz hdf5-fb84c696a476c39db2c35e7d86b818138e089358.tar.bz2 |
Sync 1.14 branch with develop (#3887)
* Preserve MPI-I/O file hints when fapl is closed (#3755)
* Fix for issue #3025: Save the MPI info in the file struct so H5Fget_access_plist() can retrieve it from there.
* Add compression tests for subfiling (#3769)
* Fix typo in comment (#3775)
* Fixed a file handle leak in the core VFD (#3779)
When opening a file with the core VFD and a file image, if the file
already exists, the file check would leak the POSIX file handle.
Fixes GitHub issue #635
* Fix a format string warning in the C++ examples (#3776)
* Cancel running GitHub workflows on push to same PR (#3772)
* Cancel running GitHub workflows on push to same PR
* Remove github.sha from workflow concurrency groups
* Print some messages in parallel tests on MPI rank 0 only (#3785)
Avoids overly verbose output from all processes emitting progress, etc. info.
* Avoid attempted use of NULL pointer in parallel compression code (#3786)
The parallel compression test code tests for the case where all MPI ranks have no selection in a dataset when writing to it. Add an early exit to the code to avoid attempting to use a NULL pointer due to there being no work to do.
* Don't install h5tools_test_utils test program on system (#3793)
* Add Doxygen to H5FDsplitter.h (#3794)
* H5FD_CURR_SPLITTER_VFD_CONFIG_VERSION
* H5FD_SPLITTER_PATH_MAX
* H5FD_SPLITTER_MAGIC
* H5FD_splitter_vfd_config_t
* H5Pset_fapl_splitter()
* H5Pget_fapl_splitter()
* Update Doxygen initializers & identifiers in VFDs (#3795)
* Add Doxygen for all H5FD_<VFD> initializers
* Add Doxygen for all H5FD_<VFD>_VALUE values
* Mark H5FD_<vfd>_init() calls private in Doxygen
* Fix memory corruption in 'MPI I/O FAPL preserve' test (#3806)
* Fix usage of h5_clean_files in t_pflush2.c (#3807)
* Fix parallel driver check in h5_fixname_real (#3808)
* Fix a couple usages of MPI_Info_get (#3809)
* Remove H5system.c warning on Windows oneAPI. (#3812)
* Add processing of NVHPC flags in linux-gnulibc1 file (#3804)
* Disable testing as tests are failing the same as in CMake
* Use the current toolchain for examples as default (#3810)
* Fix misc. warnings from GCC when compiling with -fsanitize=undefined (#3787)
* Set NVHPC maximum optimization level to -O1 for now (#3800)
* Set NVHPC maximum optimization level to -O1 for now
Compiling HDF5 with NVHPC 23.5 - 23.9 results in test failures in
4 different test files that need to be resolved. Since those tests
pass with an optimization level of -O1 (and -O0) and it is currently
unclear whether the test failures are due to issues in HDF5 or issues
in the 'nvc' compiler, set the maximum optimization level for NVHPC
to -O1 until the test failures are resolved.
* Disable nvhpc Java testing in CMake and amend known issues
* Re-enable testing of Autotools nvhpc
* Update some doxygen links to local refs (#3814)
* Rework MPI Info FAPL preserve PR to use VFD 'ctl' operations (#3782)
* Removed the use of C wrappers from H5P APIs. (#3824)
* fix seg fault on frontier/cray
* fix seg fault on frontier/cray
* fix seg fault on frontier/cray
* removed the use of h5pclose_c
* removed the use of h5pclose_c
* Fortran Wrappers H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f (#3801)
* Added H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f
* Added H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f tests
* Create test for H5Pget_dxpl_mpio (#3825)
* Create test and add to testphdf5
* Renamed h5fuse.sh to h5fuse (#3834)
* provide an alternative to mapfile for older bash
* Disable FP exceptions in H5T init code (#3837)
The H5T floating-point datatype initialization code can raise exceptions when handling signaling NaNs. This change disables FE_INVALID exceptions during initialization.
Also removes the -ieee=full change for NAG Fortran as that shouldn't be necessary anymore.
Fixes #3831
* Add intel oneapi windows build to CI CMake (#3836)
* Remove printf format warning on Windows oneAPI. (#3838)
* Correct ENV variables (#3841)
* Remove Autotools sed hack (#3848)
configure.ac contains a sed line that cleans up incorrect library
flags which was added to paper over some bugs in earlier versions
of the Autotools. These issues are not a problem with the current
versions of the Autootols.
The sed line causes problems on MacOS, so it has been removed.
Fixes #3843
* Make filter unregister callbacks safe for VOL connectors (#3629)
* Make filter callbacks use top-level API functions
When using VOL connectors, H5I_iterate may not provide
valid object pointers to its callback. This change keeps
existing functionality in H5Zunregister() without using
potentially unsafe pointers.
* Filter callbacks use internal API
* Skip MPI work on non-native VOL
* Add extra space in comments for consistency (#3852)
* Add extra space in comments for consistency
* uncomment tfloatsattrs test
* Update Actions badges to link to relevant workflow (#3850)
* Add CMake long double cross-compile defaults (#3683)
HDF5 performs a couple of checks at build time to see if long double
values can be converted correctly (IBM's Power architecture uses a
special format for long doubles). These checks were performed using
TRY_RUN, which is a problem when cross-compiling.
These checks now use default values appropriate for most non-Power
systems when cross-compiling. The cache values can be pre-set if
necessary, which will preempt both the TRY_RUN and the default.
Affected values:
H5_LDOUBLE_TO_LONG_SPECIAL (default no)
H5_LONG_TO_LDOUBLE_SPECIAL (default no)
H5_LDOUBLE_TO_LLONG_ACCURATE (default yes)
H5_LLONG_TO_LDOUBLE_CORRECT (default yes)
H5_DISABLE_SOME_LDOUBLE_CONV (default no)
Fixes GitHub #3585
* Updates for building and testing VOL connectors
* Fix issue with HDF5_VOL_ALLOW_EXTERNAL CMake variable
* Initialize parallel testing with MPI_THREAD_MULTIPLE when testing API
* Add CMake variable to allow specifying a VOL connector's package name
* Remove call to MPI_Init in serial API tests
While previously necessary, it now interferes with VOL connectors that
may need to be initialized with MPI_THREAD_MULTIPLE
* Fixes for CI and presets (#3853)
* Change dest for doxygen (#3856)
* Implement selection vector I/O with collective chunk filling (#3826)
* Changes for ECP-344: Implement selection vector I/O with collective chunk filling.
Also fix a bug in H5FD__mpio_write_vector() to account for fixed size optimization
when computing max address.
* Fixes based on PR review comments:
For H5Dchunk.c: fix H5MM_xfree()
For H5FDmpio.c:
1) Revert the fix to H5FD__mpio_write_vector()
2) Apply the patch from Neil on the proper length of s_sizes reported by H5FD__mpio_vector_build_types()
* Put back the logic of dividing up the work among all the mpi ranks similar to the
original H5D__chunk_collective_fill() routine.
* Add a test to verify the fix for the illegal reference problem in H5FD__mpio_write_vector().
* Do not publish compression headers or docs (#3865)
* Fix typo: look -> loop (#3866)
* Moved the README to markdown and expanded its overview of the files, file generation, and other Fortran wrapper development practices as mentioned in the HDF5 architectural document. I added a new figure and included the SVG file and the original xfig file it was generated from. (#3862)
* Add HDF5_DISABLE_TESTS_REGEX option to skip tests (#3859)
* Fix typo in error message for `MPI_Type_dup`. (#3867)
* Complete the `if command line option` sentence. (#3868)
* Fix h5dump segmentation fault when --vfd-value option is used (#3873)
* Updated URL in funding.yml (#3882)
Using new shortened URL, might look better.
* Remove unused variable from unmerged changes
* Update src/H5Tinit_float.c
Diffstat (limited to 'src/H5Fmpi.c')
-rw-r--r-- | src/H5Fmpi.c | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/src/H5Fmpi.c b/src/H5Fmpi.c index 8a8fdc1..7a535e9 100644 --- a/src/H5Fmpi.c +++ b/src/H5Fmpi.c @@ -97,11 +97,10 @@ done: /*------------------------------------------------------------------------- * Function: H5F_mpi_get_comm * - * Purpose: Retrieves the file's communicator + * Purpose: Retrieves the file's MPI_Comm communicator object * - * Return: Success: The communicator (non-negative) - * - * Failure: Negative + * Return: Success: The communicator object + * Failure: MPI_COMM_NULL * *------------------------------------------------------------------------- */ @@ -123,6 +122,33 @@ done: } /* end H5F_mpi_get_comm() */ /*------------------------------------------------------------------------- + * Function: H5F_mpi_get_info + * + * Purpose: Retrieves the file's MPI_Info info object + * + * Return: Success: The info object + * Failure: MPI_INFO_NULL + * + *------------------------------------------------------------------------- + */ +MPI_Info +H5F_mpi_get_info(const H5F_t *f) +{ + MPI_Info ret_value = MPI_INFO_NULL; + + FUNC_ENTER_NOAPI(MPI_INFO_NULL) + + assert(f && f->shared); + + /* Dispatch to driver */ + if ((ret_value = H5FD_mpi_get_info(f->shared->lf)) == MPI_INFO_NULL) + HGOTO_ERROR(H5E_FILE, H5E_CANTGET, MPI_INFO_NULL, "driver get_info request failed"); + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5F_mpi_get_info() */ + +/*------------------------------------------------------------------------- * Function: H5F_shared_mpi_get_size * * Purpose: Retrieves the size of an MPI process. |