To subscribe/unsubscribe to the hdfnews mailing list, please send your
request to ncsalist@ncsa.uiuc.edu with the appropriate command (e.g.
subscribe hdfnews, unsubscribe hdfnews, help) in the *body* of the message.
HDF Newsletter 45
October 19, 1999
CONTENTS
Release of HDF5-1.2.0
HDF5 version 1.2.0 is now available. You can download this from
the NCSA ftp server at:
ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/
The HDF5 home page is located at:
http://hdf.ncsa.uiuc.edu/HDF5/
The HDF5-1.2.0 documentation is included with the source code and can
be downloaded from the NCSA ftp server at:
ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/docs/
New Features and Changes
Datatypes
- Optimizations to compound datatype conversions and I/O operations.
- Added nearly 100 optimized conversion functions for native datatypes
including support for non-aligned data.
- Added support for bitfield, opaque, and enumeration types.
- Added distinctions between signed and unsigned char types to the
list of predefined native hdf5 datatypes.
- Added HDF5 type definitions for C9x types like int32_t.
- Application-defined type conversion functions can handle non-packed
data.
- Changed the H5Tunregister() function to use wildcards when matching
conversion functions. H5Tregister_hard() and H5Tregister_soft()
were combined into H5Tregister().
- Support for variable-length datatypes (arrays of varying length per
dataset element). Variable length strings are currently supported
only as variable length arrays of 1-byte integers.
Dataspaces
- New query functions for selections.
- I/O operations bypass the stripmining loop and go directly to
storage for certain contiguous selections in the absence of type
conversions. In other cases the stripmining buffers are used more
effectively.
- Reduced the number of I/O requests under certain circumstances,
improving performance on systems with high I/O latency.
Persistent Pointers
- Object (serial and parallel) and dataset region (serial only)
references were implemented.
Parallel Support
- Improved parallel I/O performance.
- Supports new platforms: Cray T3E, Linux, DEC Cluster.
- Uses vendor supported version of MPIO on SGI O2K and Cray platforms.
- Improved algorithm for translating an HDF5 hyperslab selection
into an MPI type for better collective I/O performance.
Debugging
- Improved control and redirection of debugging and tracing messages.
Configuration
- Better detection and support for MPI-IO.
- Recognition of compilers with known code generation problems.
- Support for various compilers on a single architecture (e.g., the
native compiler and the GNU compilers).
- Ability to build from read-only media and with different compilers
and/or options concurrently.
- Added a libhdf5.settings file which summarizes the configuration
information and is installed along with the library.
- Builds a shared library on most systems that support it.
Documentation
- More examples.
- Updated User's Guide, Reference Manual, and Format Specification.
- HDF5 Tutorial was added to the documentation.
- Documentation available in PDF and Postscript. (NOTE: This is not
quite ready but should be available in the near future.)
Tools
- Enhancements to the h5ls tool including the ability to list objects
from more than one file, to display raw hexadecimal data, to
show file addresses for raw data, to format output more reasonably,
to show object attributes, and to perform a recursive listing,
- Enhancements to h5dump: support new data types added since previous
versions.
- h5toh4: An hdf5 to hdf4 converter.
New API functions
Property List Interface:
------------------------
H5Pset_xfer - set data transfer properties
H5Pset_preserve - set dataset transfer property list status
H5Pget_preserve - get dataset transfer property list status
H5Pset_hyper_cache - indicates whether to cache hyperslab blocks during I/O
H5Pget_hyper_cache - returns information regarding the caching of
hyperslab blocks during I/O
H5Pget_btree_ratios - sets B-tree split ratios for a dataset
transfer property list
H5Pset_btree_ratios - gets B-tree split ratios for a dataset
transfer property list
H5Pset_vlen_mem_manager - sets the memory manager for variable-length
datatype allocation
H5Pget_vlen_mem_manager - sets the memory manager for variable-length
datatype allocation
Dataset Interface:
------------------
H5Diterate - iterate over all selected elements in a dataspace
H5Dget_storage_size - return the amount of storage required for a dataset
H5Dvlen_reclaim - reclaim VL datatype memory buffers
Dataspace Interface:
--------------------
H5Sget_select_hyper_nblocks - get number of hyperslab blocks
H5Sget_select_hyper_blocklist - get the list of hyperslab blocks
currently selected
H5Sget_select_elem_npoints - get the number of element points
in the current selection
H5Sget_select_elem_pointlist - get the list of element points
currently selected
H5Sget_select_bounds - gets the bounding box containing
the current selection
Datatype Interface:
-------------------
H5Tget_super - return the base datatype from which a
datatype is derived
H5Tvlen_create - creates a new variable-length dataype
H5Tenum_create - creates a new enumeration datatype
H5Tenum_insert - inserts a new enumeration datatype member
H5Tenum_nameof - returns the symbol name corresponding to a
specified member of an enumeration datatype
H5Tvalueof - return the value corresponding to a
specified member of an enumeration datatype
H5Tget_member_value - return the value of an enumeration datatype member
H5Tset_tag - tags an opaque datatype
H5Tget_tag - gets the tag associated with an opaque datatype
Identifier Interface:
---------------------
H5Iget_type - retrieve the type of an object
Reference Interface:
--------------------
H5Rcreate - creates a reference
H5Rdereference - open the HDF5 object referenced
H5Rget_region - retrieve a dataspace with the specified region selected
H5Rget_object_type - retrieve the type of object that an
object reference points to
Ragged Arrays (alpha) (names of those API functions were changed):
------------------------------------------------------------------
H5RAcreate - create a new ragged array (old name was H5Rcreate)
H5RAopen - open an existing array (old name was H5Ropen)
H5RAclose - close a ragged array (old name was H5Rclose)
H5RAwrite - write to an array (old name was H5Rwrite)
H5RAread - read from an array (old name was H5Rread)
Platforms Tested
AIX 4.3.2 (IBM SP) 3.6.6
Cray J90 10.0.0.6 cc 6.3.0.0
Cray T3E 2.0.4.61 cc 6.2.1.0
mpt.1.3
FreeBSD 3.2 gcc 2.95.1
HP-UX B.10.20 HP C HP92453-01 A.10.32
gcc 2.8.1
IRIX 6.5 MIPSpro cc 7.30
IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1m
mpt.1.3 (SGI MPI 3.2.0.0)
Linux 2.2.10 egcs-2.91.66 configured with
--disable-hsizet
lbraries: glibc2
OSF1 V4.0 DEC-V5.2-040
SunOS 5.6 cc WorkShop Compilers 4.2 no optimization
gcc 2.8.1
SunOS 5.7 cc WorkShop Compilers 5.0
gcc 2.8.1
TFLOPS 2.7.1 cicc (pgcc Rel 3.0-4i)
mpich-1.1.2 with local changes
Windows NT4.0 intel MSVC++ 5.0 and 6.0
Windows NT alpha 4.0 MSVC++ 5.0
Windows 98 MSVC++ 5.0
Known Problems
- NT alpha 4.0: The dumper utility, h5dump, fails if linked with DLL.
- SunOS 5.6 with C WorkShop Compilers 4.2: Hyperslab selections will
fail if library is compiled using optimization of any level.