Description: Mainly are header message changes for dataspace. In last round
of check-in, a new header message for dataspace to created, which is not a good
way. Now, there will be no new message for dataspace, but just add the type of
dataspace in the message while increment its version number. Backward compatibility
is addressed. The attribute design is modified accordingly.
Platforms tested: h5committest
Code optimization
Description:
Check for only performing I/O on a single chunk and re-use memory dataspace,
instead of re-creating the same dataspace & selection the hard way.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Code optimization
Description:
Eliminate more dataspace copying, etc.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
Code optimization
Description:
Reduce the number of dataspace copies made when performing I/O on chunked
datasets.
Platforms tested:
Solaris 2.7 (arabica)
too minor to require h5committest
Description: NULL dataspace. This step is mainly for dataspace header
message and a test.
Solution: The test mainly checks NULL dataspace features. Backward compatibility
is tested in the fill value test.
Platforms tested: h5committest
Code optimization
Description:
Eliminate unnecessary allocation and point at existing data structure
instead.
Platforms tested:
Solaris 2.7 (arabica)
too minor to require h5committest
Code optimization
Description:
Fix H5S_select_hyperslab to use arrays on the stack instead of dynamically
allocating them each time.
Platforms tested:
Solaris 2.7 (arabica)
too small to require h5committest
Code optimization
Description:
Fix H5S_select_copy so it doesn't call calloc() for allocating memory that
will be immediately overwritten.
Platforms tested:
Solaris 2.7 (arabica)
too small to require h5committest
Code optimization
Description:
Minor tweaks on the optimized offset/length sequence generator to improve
performance by reducing the number of 64-bit multiplies and calls to memcpy().
Platforms tested:
Solaris 2.7 (arabica)
too minor to require h5committest
Code optimization
Description:
Compute the size of a chunk once, when the layout information is set,
instead of each time I/O is performed on the chunk.
Platforms tested:
h5committest
Solaris 2.7 (arabica)
Code optimization
Description:
Move handling for free list arrays that have no maximum size to separate
set of routines and optimize computations for free list arrays with maximum
size to avoid re-computing sizes all the time.
Platforms tested:
h5committest
Solaris 2.7 (arabica)
Bug fix/code cleanup
Description:
Copy Robb's feature in SSlib that checks that the name of the function
used in the FUNC_ENTER macro is actually the name of function.
Fixed a bunch of typos & copy-n-pasto's for functions with incorrect names.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
bug fix.
Description:
H5FD_mpio_init was calling the public API version of H5Iget_type()
which would clear the error stack, thus cleared away error messages
prematurely.
Solution:
Changed it to call the private version of H5I_get_type() which
does not clear the error stack.
Platforms tested:
o2 (SGI) parallel.
Description: The algorithm of H5T_bit_neg wasn't general enough.
Solution: Changed it to handle arbitory starting position and size
in a bit sequence.
Platforms tested: h5committest.
Description: The H5T_bit_dec algorithm wasn't general enough.
Solution: Changed it to handle bit sequence starting at any position
and of any length.
Platforms tested: h5committest
bug fix
Description:
the fletcher filter used a temporary 2 byte word buffer to compute the checksum.
this is non portable between big-endian/little endian.
Solution:
replaced with a buffer of 1 byte type
Platforms tested:
linux
solaris
solaris 64 bit
AIX
windows
Misc. update:
Description: C++ comment was used. That caused a problem for a user (see
bug description)
Solution: Changed comment to C type
Platforms tested: eirene
Misc. update:
bug fix in H5Zshuffle.c
add more tests to h5repack that exposed the bug
Description:
when creating a dataset with the shuffle filter and duplicating it in a new dataset (file)
the call to H5Z_set_local_shuffle failed. this is because the value of cd_nelmts of the filter
structure is set to 1 (H5Z_SHUFFLE_TOTAL_NPARMS) when the original dataset is created, but when
the new dataset is created there is a checking instruction that fails if the value of
cd_nelmts is not 0 (its original value, H5Z_SHUFFLE_USER_NPARMS)
Solution:
just remove that check condition, since the value of cd_nelmts is not used anyway.
if we decide that the value of cd_nelmts is necessary, then the H5O_pline_copy function
must be changed to update this value (a different update for each filter)
Platforms tested:
linux
solaris
AIX
Misc. update:
Bug fix.
Description:
The -g in H5detect somehow does not work with 64bit mpicc in arabica.
Remove it for now for better solution.
Platforms tested:
no test as the change is trivia.
Misc. update:
Bug fix, sort of.
Description:
Some compilers, e.g., intel compiler, would take a long time
to compiler H5detect.c if optimization is on.
Solution:
Setup special make rules for H5detect to be compiled always with
optimization off by using -g. Since H5detect is run once to generate H5Tinit.c,
it does not matter that much if it is optimized or not.
Platforms tested:
"h5committested".
Tested in Titan too.
Code cleanup/optimization
Description:
Query property list values once, at the beginning of the I/O routines,
instead of querying the property list values multiple (lots!) of times in
lower level routines.
Solution:
Create "property list caches" for internal library queries of the property
list values.
Platforms tested:
IBM p690 (copper) w/parallel & fphdf5
h5committest
Code cleanup/optimization
Description:
Hoist property list queries up out of inner loops to cache the values at
a higher level and pass them into the lower-level routines.
Platforms tested:
IBM p690 (copper) w/parallel & fphdf5
h5committest
Code cleanup
Description:
Minor tweaks, cleanups & optimizations to new bit operation routines.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Purpose:
replaced name of delete filter with remove filter for the new function H5Premove_filter
Description:
Solution:
Platforms tested:
linux
Misc. update:
Bug fix.
Description:
Revert the optimization to the MPI-I/O VFD from earlier this week that
eliminated calling MPI_File_set_size() when a file was truncated. This doesn't
work because of the way we track the 'eoa' (end of allocated space) in the
file: we just advance the eoa value when space is allocated in the file and we
don't zero out the space in the file. This causes a problem where we assume
that all "newly allocated" space in the file contains zero bytes, but if we
don't call MPI_File_set_size(), the file can contain the previous data (if the
file previously existed) and not zeros.
Unfortunately, because we allow independent raw data parallel I/O, there
is no way to address this issue. :-(
Solution:
Revert to previous method of retrieving the file's size, etc. from before
the optimization.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest.
Fix build with C++ compiler
Description:
Add file driver header files for prototypes.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/CC=g++
too obscure to require h5committest
Bug fix
Description:
Move assertion to allow closing non-HDF5 files with the MPI-I/O VFD to
work correctly again.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fix.
Description:
Allow H5Tget_native_type() to handle opaque fields in compound datatypes.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Optimization
Description:
Speed up various parts of the library by setting a global variable for the
endianness of the machine at library startup and use that variable instead of
repeatedly querying the endianness of the native int datatype.
Platforms tested:
IBM p690 (copper)
too minor to require h5committest
Optimization
Description:
Speed up core ID lookup routine (H5I_find_id) by re-structuring the logic
to reduce the number of 'if' statements.
Platforms tested:
IBM p690 (copper)
too minor to require h5committest
Code cleanup
Description:
Add destructor to match constructor fr VFLs when they are shut down by the
library.
Solution:
Added H5FD_*_term() routines to "undo" changes made in H5FD_*_init()
routines.
Platforms tested:
IBM p690 (copper)
too minor to require h5committest
Bug fix
Description:
Address the failure in the FORTRAN builds by making some more of the
MPI-related typedefs in the library available outside of parallel builds.
Platforms tested:
Linux 2.4 (verbena) w/FORTRAN & C++
Bug fix
Description:
Include the private H5FD header instead of the public one, to address a
failure in building the library with C++ compiler.
Platforms tested:
FreeBSD 4.9 (sleipnit) w/CC=g++
not appropriate for h5committest
Bug fix
Description:
Fix a couple of bugaboos in the serial build that crept in
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Bug fix/optimization
Description:
Address slowdown in MPI-I/O file metadata operations that was introduced
mid-stream. We now _require_ a POSIX compliant parallel file system for the
MPI-I/O file driver (as well as for the MPI-POSIX file driver).
Also optimized file open operation when the file is being created by
reducing the number of collective & syncronizing calls.
Additionally, refactor the MPI routines into a common place, eliminating
duplicated code.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/parallel
h5committest
Code cleanup
Description:
Add C++ and FORTRAN wrappers for new H5Pdelete_filter routine, along with
documentation and a note in the release notes.
Platforms tested:
FreeBSD 4.9 (sleipnir)
Linux 2.4 (verbena) w/ C++ and FORTRAN
Too minor for full h5committest