mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
412 lines
14 KiB
Plaintext
412 lines
14 KiB
Plaintext
HDF5 version 1.14.6-1 currently under development
|
|
================================================================================
|
|
|
|
|
|
INTRODUCTION
|
|
============
|
|
|
|
This document describes the differences between this release and the previous
|
|
HDF5 release. It contains information on the platforms tested and known
|
|
problems in this release. For more details check the HISTORY*.txt files in the
|
|
HDF5 source.
|
|
|
|
Note that documentation in the links below will be updated at the time of each
|
|
final release.
|
|
|
|
Links to HDF5 documentation can be found on:
|
|
|
|
https://support.hdfgroup.org/releases/hdf5/latest-docs.html
|
|
|
|
The official HDF5 releases can be obtained from:
|
|
|
|
https://support.hdfgroup.org/downloads/index.html
|
|
|
|
Changes from Release to Release and New Features in the HDF5-1.14.x release series
|
|
can be found at:
|
|
|
|
https://support.hdfgroup.org/releases/hdf5/documentation/release_specific_info.md
|
|
|
|
If you have any questions or comments, please send them to the HDF Help Desk:
|
|
|
|
help@hdfgroup.org
|
|
|
|
|
|
CONTENTS
|
|
========
|
|
|
|
- New Features
|
|
- Support for new platforms and languages
|
|
- Bug Fixes since HDF5-1.14.4
|
|
- Platforms Tested
|
|
- Known Problems
|
|
- CMake vs. Autotools installations
|
|
|
|
|
|
New Features
|
|
============
|
|
|
|
Configuration:
|
|
-------------
|
|
-
|
|
|
|
|
|
Library:
|
|
--------
|
|
-
|
|
|
|
|
|
Parallel Library:
|
|
-----------------
|
|
-
|
|
|
|
|
|
Fortran Library:
|
|
----------------
|
|
|
|
-
|
|
|
|
|
|
C++ Library:
|
|
------------
|
|
-
|
|
|
|
|
|
Java Library:
|
|
-------------
|
|
-
|
|
|
|
|
|
Tools:
|
|
------
|
|
-
|
|
|
|
|
|
High-Level APIs:
|
|
----------------
|
|
-
|
|
|
|
|
|
C Packet Table API:
|
|
-------------------
|
|
-
|
|
|
|
|
|
Internal header file:
|
|
---------------------
|
|
-
|
|
|
|
|
|
Documentation:
|
|
--------------
|
|
-
|
|
|
|
|
|
Support for new platforms, languages and compilers
|
|
==================================================
|
|
-
|
|
|
|
|
|
Bug Fixes since HDF5-1.14.4 release
|
|
===================================
|
|
Library
|
|
-------
|
|
-
|
|
|
|
|
|
Java Library
|
|
------------
|
|
-
|
|
|
|
|
|
Configuration
|
|
-------------
|
|
-
|
|
|
|
|
|
Tools
|
|
-----
|
|
-
|
|
|
|
|
|
Performance
|
|
-------------
|
|
-
|
|
|
|
|
|
Fortran API
|
|
-----------
|
|
-
|
|
|
|
|
|
High-Level Library
|
|
------------------
|
|
-
|
|
|
|
|
|
Fortran High-Level APIs
|
|
-----------------------
|
|
-
|
|
|
|
|
|
Documentation
|
|
-------------
|
|
-
|
|
|
|
|
|
F90 APIs
|
|
--------
|
|
-
|
|
|
|
|
|
C++ APIs
|
|
--------
|
|
-
|
|
|
|
|
|
Testing
|
|
-------
|
|
-
|
|
|
|
|
|
Platforms Tested
|
|
===================
|
|
|
|
- HDF5 supports the latest macOS versions, including the current and two
|
|
preceding releases. As new major macOS versions become available, HDF5
|
|
will discontinue support for the oldest version and add the latest
|
|
version to its list of compatible systems, along with the previous two
|
|
releases.
|
|
|
|
Linux 6.8.0-1010-aws GNU gcc, gfortran, g++
|
|
#10-Ubuntu SMP 2024 x86_64 (Ubuntu 13.2.0-23ubuntu4) 13.2.0
|
|
GNU/Linux Ubuntu 24.04 Ubuntu clang version 18.1.3 (1ubuntu1)
|
|
Intel(R) oneAPI DPC++/C++ Compiler 2024.2.0
|
|
ifx (IFX) 2024.2.0 20240602
|
|
(cmake and autotools)
|
|
|
|
Linux 6.5.0-1018-aws GNU gcc, gfortran, g++
|
|
#18-Ubuntu SMP x86_64 GNU/Linux (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
|
|
Ubuntu 22.04 Ubuntu clang version 14.0.0-1ubuntu1
|
|
Intel(R) oneAPI DPC++/C++ Compiler 2024.0.2
|
|
ifx (IFX) 2024.0.2 20231213
|
|
(cmake and autotools)
|
|
|
|
Linux 5.14.21-cray_shasta_c cray-mpich/8.1.28
|
|
#1 SMP x86_64 GNU/Linux cce/15.0.0
|
|
(frontier) gcc/13.2
|
|
(cmake)
|
|
|
|
Linux 5.14.0-427.24.1.el9_4 GNU gcc, gfortran, g++ (Red Hat 11.4.1-3)
|
|
#1 SMP x86_64 GNU/Linux clang version 17.0.6
|
|
Rocky 9 Intel(R) oneAPI DPC++/C++ Compiler 2024.2.0
|
|
ifx (IFX) 2024.2.0
|
|
(cmake and autotools)
|
|
|
|
Linux-4.18.0-553.16.1.1toss.t4 openmpi/4.1.2
|
|
#1 SMP x86_64 GNU/Linux clang 14.0.6
|
|
(corona, dane) GCC 12.1.1
|
|
Intel(R) oneAPI DPC++/C++ Compiler 2023.2.1
|
|
ifx (IFX) 2023.2.1
|
|
|
|
Linux-4.18.0-553.5.1.1toss.t4 openmpi/4.1/4.1.6
|
|
#1 SMP x86_64 GNU/Linux clang 16.0.6
|
|
(eclipse) GCC 12.3.0
|
|
Intel(R) oneAPI DPC++/C++ Compiler 2024.0.2
|
|
ifx (IFX) 2024.0.2
|
|
(cmake)
|
|
|
|
Linux 4.14.0-115.35.1.3chaos spectrum-mpi/rolling-release
|
|
#1 SMP ppc64le GNU/Linux clang 17.0.6
|
|
(vortex) GCC 12.2.1
|
|
nvhpc 24.1
|
|
XL 2023.06.28
|
|
(cmake)
|
|
|
|
Linux-4.14.0-115.35.1 spectrum-mpi/rolling-release
|
|
#1 SMP ppc64le GNU/Linux clang 14.0.5, 15.0.6
|
|
(lassen) GCC 8.3.1
|
|
XL 2021.09.22, 2022.08.05
|
|
(cmake)
|
|
|
|
Linux 3.10.0-1160.36.2.el7.ppc64 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
|
|
#1 SMP ppc64be GNU/Linux g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
|
|
Power8 (echidna) GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
|
|
|
|
Linux 3.10.0-1160.80.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++)
|
|
#1 SMP x86_64 GNU/Linux compilers:
|
|
Centos7 Version 4.8.5 20150623 (Red Hat 4.8.5-4)
|
|
(jelly/kituo/moohan) Version 4.9.3, Version 7.2.0, Version 8.3.0,
|
|
Version 9.1.0, Version 10.2.0
|
|
Intel(R) C (icc), C++ (icpc), Fortran (icc)
|
|
compilers:
|
|
Version 17.0.0.098 Build 20160721
|
|
GNU C (gcc) and C++ (g++) 4.8.5 compilers
|
|
with NAG Fortran Compiler Release 7.1(Hanzomon)
|
|
Intel(R) C (icc) and C++ (icpc) 17.0.0.098 compilers
|
|
with NAG Fortran Compiler Release 7.1(Hanzomon)
|
|
MPICH 3.1.4 compiled with GCC 4.9.3
|
|
MPICH 3.3 compiled with GCC 7.2.0
|
|
OpenMPI 3.1.3 compiled with GCC 7.2.0 and 4.1.2
|
|
compiled with GCC 9.1.0
|
|
PGI C, Fortran, C++ for 64-bit target on
|
|
x86_64;
|
|
Versions 18.4.0 and 19.10-0
|
|
NVIDIA nvc, nvfortran and nvc++ version 22.5-0
|
|
(autotools and cmake)
|
|
|
|
|
|
Linux-3.10.0-1160.119.1.1chaos openmpi/4.1.4
|
|
#1 SMP x86_64 GNU/Linux clang 16.0.6
|
|
(skybridge) Intel(R) oneAPI DPC++/C++ Compiler 2023.2.0
|
|
ifx (IFX) 2023.2.0
|
|
(cmake)
|
|
|
|
Linux-3.10.0-1160.90.1.1chaos openmpi/4.1
|
|
#1 SMP x86_64 GNU/Linux clang 16.0.6
|
|
(attaway) GCC 12.1.0
|
|
Intel(R) oneAPI DPC++/C++ Compiler 2024.0.2
|
|
ifx (IFX) 2024.0.2
|
|
(cmake)
|
|
|
|
Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++)
|
|
#1 SMP x86_64 GNU/Linux compilers:
|
|
Centos6 Version 4.4.7 20120313
|
|
(platypus) Version 4.9.3, 5.3.0, 6.2.0
|
|
MPICH 3.1.4 compiled with GCC 4.9.3
|
|
PGI C, Fortran, C++ for 64-bit target on
|
|
x86_64;
|
|
Version 19.10-0
|
|
|
|
Windows 10 x64 Visual Studio 2019 w/ clang 12.0.0
|
|
with MSVC-like command-line (C/C++ only - cmake)
|
|
Visual Studio 2019 w/ Intel (C/C++ only - cmake)
|
|
Visual Studio 2022 w/ clang 17.0.3
|
|
with MSVC-like command-line (C/C++ only - cmake)
|
|
Visual Studio 2022 w/ Intel C/C++ oneAPI 2023 (cmake)
|
|
Visual Studio 2019 w/ MSMPI 10.1 (C only - cmake)
|
|
|
|
|
|
Known Problems
|
|
==============
|
|
|
|
- When building with the NAG Fortran compiler using the Autotools and libtool
|
|
2.4.2 or earlier, the -shared flag will be missing '-Wl,', which will cause
|
|
compilation to fail. This is due to a bug in libtool that was fixed in 2012
|
|
and released in 2.4.4 in 2014.
|
|
|
|
- When the library detects and builds in support for the _Float16 datatype, an
|
|
issue has been observed on at least one MacOS 14 system where the library
|
|
fails to initialize due to not being able to detect the byte order of the
|
|
_Float16 type (https://github.com/HDFGroup/hdf5/issues/4310):
|
|
|
|
#5: H5Tinit_float.c line 308 in H5T__fix_order(): failed to detect byte order
|
|
major: Datatype
|
|
minor: Unable to initialize object
|
|
|
|
If this issue is encountered, support for the _Float16 type can be disabled
|
|
with a configuration option:
|
|
|
|
CMake: HDF5_ENABLE_NONSTANDARD_FEATURE_FLOAT16=OFF
|
|
Autotools: --disable-nonstandard-feature-float16
|
|
|
|
- When HDF5 is compiled with NVHPC versions 23.5 - 23.9 (additional versions may
|
|
also be applicable) and with -O2 (or higher) and -DNDEBUG, test failures occur
|
|
in the following tests:
|
|
|
|
H5PLUGIN-filter_plugin
|
|
H5TEST-flush2
|
|
H5TEST-testhdf5-base
|
|
MPI_TEST_t_filters_parallel
|
|
|
|
Sporadic failures (even with lower -O levels):
|
|
Java JUnit-TestH5Pfapl
|
|
Java JUnit-TestH5D
|
|
|
|
Also, NVHPC will fail to compile the test/tselect.c test file with a compiler
|
|
error of 'use of undefined value' when the optimization level is -O2 or higher.
|
|
|
|
This is confirmed to be a bug in the nvc compiler that has been fixed as of
|
|
23.11. If you are using an affected version of the NVidia compiler, the
|
|
work-around is to set the optimization level to -O1.
|
|
|
|
https://forums.developer.nvidia.com/t/hdf5-no-longer-compiles-with-nv-23-9/269045
|
|
|
|
- CMake files do not behave correctly with paths containing spaces.
|
|
Do not use spaces in paths because the required escaping for handling spaces
|
|
results in very complex and fragile build files.
|
|
|
|
- At present, metadata cache images may not be generated by parallel
|
|
applications. Parallel applications can read files with metadata cache
|
|
images, but since this is a collective operation, a deadlock is possible
|
|
if one or more processes do not participate.
|
|
|
|
- The subsetting option in ph5diff currently will fail and should be avoided.
|
|
The subsetting option works correctly in serial h5diff.
|
|
|
|
- Flang Fortran compilation will fail (last check version 17) due to not yet
|
|
implemented: (1) derived type argument passed by value (H5VLff.F90),
|
|
and (2) support for REAL with KIND = 2 in intrinsic SPACING used in testing.
|
|
|
|
- Fortran tests HDF5_1_8.F90 and HDF5_F03.F90 will fail with Cray compilers
|
|
greater than version 16.0 due to a compiler bug. The latest version verified
|
|
as failing was version 17.0.
|
|
|
|
- Several tests currently fail on certain platforms:
|
|
MPI_TEST-t_bigio fails with spectrum-mpi on ppc64le platforms.
|
|
|
|
MPI_TEST-t_subfiling_vfd and MPI_TEST_EXAMPLES-ph5_subfiling fail with
|
|
cray-mpich on theta and with XL compilers on ppc64le platforms.
|
|
|
|
MPI_TEST_testphdf5_tldsc fails with cray-mpich 7.7 on cori and theta.
|
|
|
|
- File space may not be released when overwriting or deleting certain nested
|
|
variable length or reference types.
|
|
|
|
- Known problems in previous releases can be found in the HISTORY*.txt files
|
|
in the HDF5 source. Please report any new problems found to
|
|
help@hdfgroup.org.
|
|
|
|
|
|
CMake vs. Autotools installations
|
|
=================================
|
|
While both build systems produce similar results, there are differences.
|
|
Each system produces the same set of folders on Linux (only CMake works
|
|
on standard Windows); bin, include, lib and share. Autotools places the
|
|
COPYING and RELEASE.txt file in the root folder, CMake places them in
|
|
the share folder.
|
|
|
|
The bin folder contains the tools and the build scripts. Additionally, CMake
|
|
creates dynamic versions of the tools with the suffix "-shared". Autotools
|
|
installs one set of tools depending on the "--enable-shared" configuration
|
|
option.
|
|
build scripts
|
|
-------------
|
|
Autotools: h5c++, h5cc, h5fc
|
|
CMake: h5c++, h5cc, h5hlc++, h5hlcc
|
|
|
|
The include folder holds the header files and the fortran mod files. CMake
|
|
places the fortran mod files into separate shared and static subfolders,
|
|
while Autotools places one set of mod files into the include folder. Because
|
|
CMake produces a tools library, the header files for tools will appear in
|
|
the include folder.
|
|
|
|
The lib folder contains the library files, and CMake adds the pkgconfig
|
|
subfolder with the hdf5*.pc files used by the bin/build scripts created by
|
|
the CMake build. CMake separates the C interface code from the fortran code by
|
|
creating C-stub libraries for each Fortran library. In addition, only CMake
|
|
installs the tools library. The names of the szip libraries are different
|
|
between the build systems.
|
|
|
|
The share folder will have the most differences because CMake builds include
|
|
a number of CMake specific files for support of CMake's find_package and support
|
|
for the HDF5 Examples CMake project.
|
|
|
|
The issues with the gif tool are:
|
|
HDFFV-10592 CVE-2018-17433
|
|
HDFFV-10593 CVE-2018-17436
|
|
HDFFV-11048 CVE-2020-10809
|
|
These CVE issues have not yet been addressed and are avoided by not building
|
|
the gif tool by default. Enable building the High-Level tools with these options:
|
|
autotools: --enable-hlgiftools
|
|
cmake: HDF5_BUILD_HL_GIF_TOOLS=ON
|