HDF5 version 1.8.3 released on Wed May 13 10:58:40 CDT 2009 ================================================================================ INTRODUCTION ============ This document describes the differences between HDF5-1.8.2 and HDF5 1.8.3, and contains information on the platforms tested and known problems in HDF5-1.8.3. For more details, see the files HISTORY-1_0-1_8_0_rc3.txt and HISTORY-1_8.txt in the release_docs/ directory of the HDF5 source. Links to the HDF5 1.8.3 source code, documentation, and additional materials can be found on the HDF5 web page at: http://www.hdfgroup.org/products/hdf5/ The HDF5 1.8.3 release can be obtained from: http://www.hdfgroup.org/HDF5/release/obtain5.html User documentation for 1.8.3 can be accessed directly at this location: http://www.hdfgroup.org/HDF5/doc/ New features in the HDF5-1.8.x release series, including brief general descriptions of some new and modified APIs, are described in the "What's New in 1.8.0?" document: http://www.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html All new and modified APIs are listed in detail in the "HDF5 Software Changes from Release to Release" document, in the section "Release 1.8.3 (current release) versus Release 1.8.2": http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html 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, Languages, and Compilers - Bug Fixes since HDF5-1.8.2 - Platforms Tested - Supported Configuration Features Summary - Known Problems New Features ============ Configuration ------------- - Added libtool version numbers to generated c++, fortran, and hl libraries. MAM 2009/04/19. - Regenerated Makefile.ins using Automake 1.10.2. MAM 2009/04/19. - Added a Make target of check-all-install to test the correctness of installing via the prefix= or $DESTDIR options. AKC - 2009/04/14 Library ------- - Embed the content of libhdf5.settings into the hdf5 executables so that an "orphaned" executables can display (via the Unix strings command, for example) the library settings used to build the executables. This is a prototype implementation. Improvement will be added in next release. AKC - 2009/04/20 - Separated "factory" free list class from block free lists. These free lists are dynamically created and manage blocks of a fixed size. H5set_free_list_limits() will use the same settings specified for block free lists for factory free lists. NAF - 2009/04/08 - Added support for dense attributes to H5Ocopy. XCao/NAF - 2009/01/29 - Added H5Pset_elink_cb and H5Pget_elink_cb functions to support a user-defined callback function for external link traversal. NAF - 2009/01/08 - Added H5Pset_elink_acc_flags and H5Pget_elink_acc_flags functions to allow the user to specify the file access flags used to open the target file of an external link. NAF - 2009/01/08 - Added H5Pset_chunk_cache() and H5Pget_chunk_cache() functions to allow individual rdcc configuration for each dataset. Added H5Dget_access_plist() function to retrieve a dataset access property list from a dataset. NAF - 2008/11/12 - Added H5Iis_valid() function to check if an id is valid without producing an error message. NAF - 2008/11/5 - Added code to maintain a min_clean_fraction in the metadata cache when in serial mode. MAM - 2009/01/9 Parallel Library ---------------- - Modified parallel tests to run with arbitrary number of processes. The modified tests are testphdf5 (parallel dataset access), t_chunk_alloc (chunk allocation), and t_posix_compliant (posix compliance). The rest of the parallel tests already use in the code the number of processes available in the communicator. (CMC - 2009/04/28) Tools ----- - h5diff new flag, -c, --compare, list objects that are not comparable. PVN - 2009/4/2 - 1368 - h5diff new flag, -N, --nan, avoids NaNs detection. PVN - 2009/4/2 - h5dump correctly specifies XML dtd / schema urls ADB - 2009/4/3 - 1519 - h5repack now handles group creation order. PVN - 2009/4/2 - 1402 - h5repack: When user doesn't specify a chunk size, h5repack now defines a default chunk size as the same size of the size of the hyperslab used to read the chunks. The size of the hyperslabs are defined as the size of each dimension or a predefined constant, whatever is smaller. This assures that the chunk read fits in the chunk cache. PVN - 2008/11/21 High-Level APIs --------------- - Table: In version 3.0 of Table, the writing of the "NROWS" attribute (used to store number of records) was deprecated. PVN - 2008/11/24 F90 API ------- - Added for the C APIs the Fortran wrappers: h5dget_access_plist_f h5iis_valid_f h5pset_chunk_cache_f h5pget_chunk_cache_f MSB - 2009/04/17 C++ API ------- - None Support for New Platforms, Languages, and Compilers =================================================== Bug Fixes since HDF5-1.8.2 ========================== Configuration ------------- - The --includedir=DIR configuration option now works as intended, and can be used to specify the location to install C header files. The default location remains unchanged, residing at ${prefix}/include. MAM - 2009/03/10 - BZ #1381 - Configure no longer removes the '-g' flag from CFLAGS when in production mode if it has been explicitly set in the CFLAGS environment variable prior to configuration. MAM - 2009/03/09 - BZ #1401 Library ------- - Modified default cache configuration settings in order to address a performance issue due to unintended interactions between supporting a min_clean_fraction in the serial case and the flash cache size increase policy. The new default settings are as follows: - created separate default settings for parallel and serial case. - increased maximum cache size from 16MB to 32MB in both cases. - increased maximum entry size from 10MB to 32MB. - decreased min_clean_fraction from 0.3 to 0.01 in serial case. - increased flash_multiple from 1.0 to 1.4 in serial case. MAM - 2009/05/13 - Added versioning to H5Z_class_t struct to allow compatibility with 1.6 API. NAF - 2009/04/20 - 1533 - Fixed a problem with using data transforms with non-native types in the file. NAF - 2009/04/20 - 1548 - Added direct.h include file to windows section of H5private.h to fix _getcwd() warning. ADB - 2009/04/14 - 1536 - Fixed a bug that prevented external links from working after calling H5close(). NAF - 2009/04/10 - 1539 - Modified library to write cached symbol table information to the superblock, to allow library versions 1.3.0 to 1.6.3 to read files created by this version. NAF - 2009/04/08 - 1423 - Changed skip lists to use a deterministic algorithm. The library should now never call rand() or srand(). NAF - 2009/04/08 - 503 - Fixed a bug where H5Lcopy and H5Lmove wouldn't create intermediate groups when that property was set. NAF - 2009/04/07 - 1526 - Fixed a bug that caused files with a user block to grow by the size of the user block every time they were opened. NAF - 2009/03/26 - 1499 - Fixed a rare problem that could occur with files using the old (pre 1.4) array datatype. NAF - 2009/03/23 - Modified library to be able to open files with corrupt root group symbol table messages, and correct these errors if they are found. Such files can only be successfully opened with write access. NAF - 2009/03/23 - 1189 - Removed the long_long #define and replaced all instances with "long long". This caused problems with third party products. All currently supported compliers support the type. ADB - 2009/03/05 - Fixed various bugs that could prevent the fill value from being written in certain rare cases. NAF - 2009/02/26 - 1469 - Fixed a bug that prevented more than one dataset chunk from being cached at a time. NAF - 2009/02/12 - 1015 - Fixed an assertion failure caused by opening an attribute multiple times through multiple file handles. NAF - 2009/02/12 - 1420 - Fixed a problem that could prevent the user from adding attributes (or any object header message) in some circumstances. NAF - 2009/02/12 - 1427 - Fixed a bug that could cause problems when an attribute was added to a committed datatype using the committed datatype's datatype. NAF - 2009/02/12 - Fixed a bug that could cause problems when copying an object with a shared message in its own object header. NAF - 2009/01/29 - Changed H5Tset_order to properly reject H5T_ORDER_NONE for most datatypes. NAF - 2009/01/27 - 1443 - Fixed a bug where H5Tpack wouldn't remove trailing space from an otherwise packed compound type. NAF - 2009/01/14 - Fixed up some old v2 btree assertions that get run in debug mode that were previously failing on compilation, and removed some of the more heavily outdated and non-rewritable ones. MAM - 2008/12/15 - Fixed a bug that could cause problems when "automatically" unmounting multiple files. NAF - 2008/11/17 - H5Dset_extent: when shrinking dimensions, some chunks were not deleted. PVN - 2009/01/8 Parallel Library ---------------- - None Tools ----- - Fixed many problems that could occur when using h5repack with named datatypes. NAF - 2009/4/20 - 1516/1466 - h5dump, h5diff, h5repack were not reading (by hyperslabs) datasets that have a datatype datum size greater than H5TOOLS_BUFSIZE, a constant defined as 1024Kb, such as array types with large dimensions. PVN - 2009/4/1 - 1501 - h5import: By selecting a compression type, a big endian byte order was being selected. PVN - 2009/3/11 - 1462 - zip_perf.c had missing argument on one of the open() calls. Fixed. AKC - 2008/12/9 F90 API ------ - None C++ API ------ - None High-Level APIs: ------ - Dimension scales: The scale index return value in H5DSiterate_scales was not always incremented. PVN - 2009/4/8 - 1538 Fortran High-Level APIs: ------ - Lite: The h5ltget_dataset_info_f function (gets information about a dataset) was not correctly returning the dimension array PVN - 2009/3/23 Platforms Tested ================ The following platforms and compilers have been tested for this release. AIX 5.3 xlc 7.0.0.8 (LLNL Up) xlf 09.01.0000.0008 xlC 7.0.0.8 mpcc_r 7.0.0.8 mpxlf_r 09.01.0000.0008 Cray XT3 (2.0.41) cc (pgcc) 7.1-4 (SNL red storm) ftn (pgf90) 7.1-4 CC (pgCC) 7.1-4 FreeBSD 6.3-STABLE i386 gcc 3.4.6 [FreeBSD] 20060305 (duty) g++ 3.4.6 [FreeBSD] 20060305 gcc 4.3.4 20090419 g++ 4.3.4 20090419 gfortran 4.3.4 20090419 FreeBSD 6.3-STABLE amd64 gcc 3.4.6 [FreeBSD] 20060305 (liberty) g++ 3.4.6 [FreeBSD] 20060305 gcc 4.4.1 20090421 g++ 4.4.1 20090421 gfortran 4.4.1 20090421 IRIX64 6.5 (64 & n32) MIPSpro cc 7.4.4m F90 MIPSpro 7.4.4m C++ MIPSpro cc 7.4.4m Linux 2.6.18-128.1.6.el5xen gcc (GCC) 4.1.2 #1 SMP i686 i686 i386 G95 (GCC 4.0.3 (g95 0.92!) Feb 4 2009) (jam) PGI C, Fortran, C++ 7.2-1 32-bit PGI C, Fortran, C++ 8.0-1 32-bit Intel(R) C Compiler for 32-bit applications, Versions 10.1, 11.0 Intel(R) C++ Compiler for 32-bit applications, Version 10.1, 11.0 Intel(R) Fortran Compiler for 32-bit applications, Version 10.1, 11.0 Absoft 32-bit Fortran 95 10.0.7 MPICH mpich2-1.0.8 compiled with gcc 4.1.2 and G95 (GCC 4.0.3 (g95 0.92!) Linux 2.6.9-42.0.10.ELsmp #1 gcc (GCC) 3.4.6 SMP i686 i686 i386 G95 (GCC 4.0.3 (g95 0.92!) Feb 4 2009) (kagiso) MPICH mpich2-1.0.8 compiled with gcc 3.4.6 and G95 (GCC 4.0.3 (g95 0.92!) Linux 2.6.16.60-0.37-smp #1 gcc 4.1.2 SMP x86_64 GNU/Linux G95 (GCC 4.0.3 (g95 0.92!) Feb 4 2009) (smirom) Intel(R) C, C++, Fortran Compilers for applications running on Intel(R) 64, Versions 10.1, 11.0. PGI C, Fortran, C++ Version 7.2-1, 8.0-1 for 64-bit target on x86-64 gcc 4.1.2 and G95 (GCC 4.0.3 (g95 0.92!) MPICH mpich2-1.0.8 compiled with gcc 4.1.2 and G95 (GCC 4.0.3 (g95 0.92!) tested for both 32- and 64-bit binaries Linux 2.6.16.54-0.2.5 #1 Intel(R) C++ Version 10.1.017 SGI Altix SMP ia64 Intel(R) Fortran Itanium(R) Version 10.1.017 (cobalt) SGI MPI 1.38 SunOS 5.10 32- and 64-bit Sun WorkShop 6 update 2 C 5.9 Patch 124867-09 (linew) Sun WorkShop 6 update 2 Fortran 95 8.3 Patch 127000-07 Sun WorkShop 6 update 2 C++ 5.8 Patch 124863-11 Intel Xeon Linux 2.6.18- gcc 3.4.6 20060404 92.1.10.el5_lustre.1.6.6smp- Intel(R) C++ Version 10.0.026 perfctr #2 SMP Intel(R) Fortran Compiler Version 10.0.026 (abe) Open MPI 1.2.2 MVAPICH2-0.9.8p28p2patched-intel-ofed-1.2 compiled with icc v10.0.026 and ifort 10.0.026 IA-64 Linux 2.4.21-309.tg1 gcc (GCC) 3.2.2 #1 SMP ia64 Intel(R) C++ Version 8.1.037 (NCSA tg-login) Intel(R) Fortran Compiler Version 8.1.033 mpich-gm-1.2.7p1..16-intel-8.1.037-r1 Linux 2.6.9-55.0.9.EL_lustre Intel(R) C, C++, Fortran Compilers for .1.4.11.1smp #1 SMP applications running on Intel(R) 64, SMP x86_64 GNU/Linux Versions 9.1. (SNL Spirit) Linux 2.6.9-55.0.9.EL_lustre Intel(R) C, C++, Fortran Compilers for .1.4.11.1smp #1 SMP applications running on Intel(R) 64, SMP x86_64 GNU/Linux Versions 10.1. (SNL Thunderbird) Linux 2.6.18-63chaos #1 SMP Intel(R) C, C++, Fortran Compilers for SMP x86_64 GNU/Linux applications running on Intel(R) 64, (SNL Glory) Versions 10.1. Linux 2.6.18-63chaos #1 SMP Intel(R) C, C++, Fortran Compilers for SMP x86_64 GNU/Linux applications running on Intel(R) 64, (LLNL Zeus) Versions 9.1. gcc/gfortran/g++ (GCC) 4.1.2. Windows XP Visual Studio .NET Visual Studio 2005 w/ Intel Fortran 9.1 Cygwin(native gcc compiler and g95) Windows XP x64 Visual Studio 2005 w/ Intel Fortran 9.1 Windows Vista Visual Studio 2005 MAC OS 10.5.6 (Intel) i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 GNU Fortran (GCC) 4.3.0 20070810 G95 (GCC 4.0.3 (g95 0.91!) Apr 24 2008) Intel C, C++ and Fortran compilers 10.1 Supported Configuration Features Summary ======================================== In the tables below y = tested and supported n = not supported or not tested in this release C = Cluster W = Workstation x = not working in this release dna = does not apply ( ) = footnote appears below second table = testing incomplete on this feature or platform Platform C F90 F90 C++ zlib SZIP parallel parallel Solaris2.10 32-bit n y n y y y Solaris2.10 64-bit n y n y y y IRIX64_6.5 32-bit n n n n y y IRIX64_6.5 64-bit n y y y y y Windows XP n y(4) n(4) y y y Windows XP x64 n y(4) n(4) y y y Windows Vista n n n y y y Mac OS X 10.5 Intel n y n y y y AIX 5.3 32- and 64-bit n y n y y n FreeBSD 6.3-STABLE 32&64 bit n y n y y y RedHat EL4 2.6.9-42 i686 GNU (1) W y y y y y y RedHat EL5 2.6.18-128 i686 GNU (1)W y y(2) y y y y RedHat EL5 2.6.18-128 i686 Intel W n y n y y n RedHat EL5 2.6.18-128 i686 PGI W n y n y y n SuSe Linux 2.6.16 x86_64 GNU (1) W y y(3) y y y y SuSe Linux 2.6.16 x86_64 Intel W n y n y y n SuSe Linux 2.6.16 x86_64 PGI W n y n y y y SuSe Linux 2.6.16 SGI Altix ia64 C y y y y y y RedHat EL4 2.6.18 Xeon Lustre C y y y y y n SuSe Linux 2.4.21 ia64 Intel C y y y y y n Cray XT3 2.0.41 y y y y y n Platform Shared Shared Shared Thread- C libs F90 libs C++ libs safe Solaris2.10 32-bit y y y y Solaris2.10 64-bit y y y y IRIX64_6.5 32-bit y dna y y IRIX64_6.5 64-bit y y n y Windows XP y y(4) y y Windows XP x64 y y(4) y y Windows Vista y n n y Mac OS X 10.5 y n y n AIX 5.3 32- and 64-bit n n n n FreeBSD 6.3-STABLE 32&64 bit y n y y RedHat EL4 2.6.9-42 i686 GNU (1) W y y y y RedHat EL5 2.6.18-128 i686 GNU (1)W y y(2) y y RedHat EL5 2.6.18-128 i686 Intel W y y y n RedHat EL5 2.6.18-128 i686 PGI W y y y n SuSe Linux 2.6.16 x86_64 GNU (1) W y y y y SuSe Linux 2.6.16 x86_64 Intel W y y y n SuSe Linux 2.6.16 x86_64 PGI W y y y n SuSe Linux 2.6.16 SGI Altix ia64 C y n RedHat EL4 2.6.18 Xeon Lustre C y y y n SuSe Linux 2.4.21 ia64 Intel C y y y n Cray XT3 2.0.41 n n n n (1) Fortran compiled with g95. (2) With PGI and Absoft compilers. (3) With PGI compiler for Fortran. (4) Using Visual Studio 2005 or Cygwin Compiler versions for each platform are listed in the preceding "Platforms Tested" table. Known Problems ============== * Parallel tests failed with 16 processes with data inconsistency at testphdf5 / dataset_readAll. Parallel tests also failed with 32 and 64 processes with collective abort of all ranks at t_posix_compliant / allwrite_allread_blocks with MPI IO. CMC - 2009/04/28 * There is a known issue in which HDF5 will change the timestamp on a file simply by opening it with read/write permissions, even if the file is not modified in any way. This is due to the way in which HDF5 manages the file superblock. A fix is currently underway and should be included in the 1.8.4 release of HDF5. MAM - 2009/04/28 * For gcc v4.3 and v4.4, with production mode, if -O3 is used, H5Tinit.c would fail to compile. Actually bad H5Tinit.c is produced. If -O (same as -O1) is used, H5Tinit.c compiled okay but test/dt_arith would fail. When -O0 (no optimizatio) is used, H5Tinit.c compilete okay and all tests passed. Therefore, -O0 is imposed for v4.3 and v4.4 of gcc. AKC - 2009/04/20 * For Red Storm, a Cray XT3 system, the tools/h5ls/testh5ls.sh and tools/h5copy/testh5copy.sh will fail some of its sub-tests. These sub-tests are expected to fail and should exit with a non-zero code but the yod command does not propagate the exit code of the executables. Yod always returns 0 if it can launch the executable. The test suite shell expects a non-zero for this particular test, therefore it concludes the test has failed when it receives 0 from yod. Skip all the "failing" test for now by changing them as following. ======== Original tools/h5ls/testh5ls.sh ========= TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5 ======== Change to =============================== echo SKIP TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5 ================================================== ======== Original tools/h5copy/testh5copy.sh ========= TOOLTEST_FAIL -i $TESTFILE -o $FILEOUT -v -s grp_dsets -d grp_rename TOOLTEST_FAIL -i $TESTFILE -o $FILEOUT -v -s grp_dsets -d /grp_rename/grp_dsets TOOLTEST_FAIL -i $TESTFILE -o $FILEOUT -vp -s /grp_dsets -d /E/F/grp_dsets TOOLTEST_FAIL -i $TESTFILE -o $FILEOUT -vp -s /grp_nested -d /G/H/grp_nested H5LSTEST $FILEOUT ======== Change to =============================== echo SKIP TOOLTEST_FAIL -i $TESTFILE -o $FILEOUT -v -s grp_dsets -d grp_rename echo SKIP TOOLTEST_FAIL -i $TESTFILE -o $FILEOUT -v -s grp_dsets -d /grp_rename/grp_dsets echo SKIP TOOLTEST_FAIL -i $TESTFILE -o $FILEOUT -vp -s /grp_dsets -d /E/F/grp_dsets echo SKIP TOOLTEST_FAIL -i $TESTFILE -o $FILEOUT -vp -s /grp_nested -d /G/H/grp_nested echo SKIP H5LSTEST $FILEOUT ================================================== AKC - 2008/11/10 * For Red Storm, a Cray XT3 system, the yod command sometimes gives the message, "yod allocation delayed for node recovery". This interferes with test suites that do not expect seeing this message. See the section of "Red Storm" in file INSTALL_parallel for a way to deal with this problem. AKC - 2008/05/28 * We have discovered two problems when running collective IO parallel HDF5 tests with chunking storage on the ChaMPIon MPI compiler on tungsten, a Linux cluster at NCSA. Under some complex selection cases: 1) MPI_Get_element returns the wrong value. 2) MPI_Type_struct also generates the wrong derived datatype and corrupt data may be generated. These issues arise only when turning on collective IO with chunking storage with some complex selections. We have not found these problems on other MPI-IO compilers. If you encounter these problems, you may use independent IO instead. To avoid this behavior, change the following line in your code H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_COLLECTIVE); to H5Pset_dxpl_mpio(xfer_plist, H5FD_MPIO_INDEPENDENT); KY - 2007/08/24 * On Intel 64 Linux cluster (RH 4, Linux 2.6.9) with Intel 10.0 compilers, use -mp -O1 compilation flags to build the libraries. A higher level of optimization causes failures in several HDF5 library tests. * For LLNL, uP: both serial and parallel tests pass. Zeus: Serial tests pass but parallel tests fail with a known problem in MPI. ubgl: Serial tests pass but parallel tests fail. * On mpich 1.2.5 and 1.2.6, if more than two processes contribute no IO and the application asks to do collective IO, we have found that when using 4 processors, a simple collective write will sometimes be hung. This can be verified with t_mpi test under testpar. * On IRIX6.5, when the C compiler version is greater than 7.4, complicated MPI derived datatype code will work. However, the user should increase the value of the MPI_TYPE_MAX environment variable to some appropriate value to use collective irregular selection code. For example, the current parallel HDF5 test needs to raise MPI_TYPE_MAX to 200,000 to pass the test. * A dataset created or rewritten with a v1.6.3 library or after cannot be read with the v1.6.2 library or before when the Fletcher32 EDC filter is enabled. There was a bug in the calculation of the Fletcher32 checksum in the library before v1.6.3; the checksum value was not consistent between big- endian and little-endian systems. This bug was fixed in Release 1.6.3. However, after fixing the bug, the checksum value was no longer the same as before on little-endian system. Library releases after 1.6.4 can still read datasets created or rewritten with an HDF5 library of v1.6.2 or before. SLU - 2005/6/30 * On IBM AIX systems, parallel HDF5 mode will fail some tests with error messages like "INFO: 0031-XXX ...". This is from the command `poe'. Set the environment variable MP_INFOLEVEL to 0 to minimize the messages and run the tests again. The tests may fail with messages like "The socket name is already in use", but HDF5 does not use sockets. This failure is due to problems with the poe command trying to set up the debug socket. To resolve this problem, check to see whether there are many old /tmp/s.pedb.* files staying around. These are sockets used by the poe command and left behind due to failed commands. First, ask your system administrator to clean them out. Lastly, request IBM to provide a means to run poe without the debug socket. * The --enable-static-exec configure flag fails to compile for Solaris platforms. This is due to the fact that not all of the system libraries on Solaris are available in a static format. The --enable-static-exec configure flag also fails to correctly compile on IBM SP2 platforms for serial mode. The parallel mode works fine with this option. It is suggested that you do not use this option on these platforms during configuration. * There is also a configure error on Altix machines that incorrectly reports when a version of Szip without an encoder is being used. * Information about building with PGI and Intel compilers is available in the INSTALL file sections 4.7 and 4.8.