New Feature
Description:
Added interleaved block pattern to MPI and HDF5 access methods. Also,
changed the blocks to just use the same size as the regular blocks for I/O,
instead of a separate block size.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
Bug Fix
Description:
Was nulling out the RUNPARALLEL and other macros which shouldn't be
nulled out.
Solution:
Removed the code which does the nulling out of those macros.
Bug Fix.
Description:
Contiguous types created for "all" and contiguous hyperslab selections was
not being committed before using them.
Solution:
Commit them. :-) This fixes the problems on the LLNL Blue Pacific machine.
Platforms tested:
LLNL Blue Pacific w/parallel.
Bug Fix
Description:
Making of the programs when using the --srcdir option didn't work. It
couldn't find the files to compile.
Solution:
Specified where the files are by prepending the $(srcdir) macro to
them.
Platforms tested:
Linux
Bug Fix
Description:
Ported the bug fix for h5cc failing on platforms from the 1.4 branch
to 1.5 branch. In a nutshell, when we ran "make check" in the
examples directory, libtool would get in the way trying to compile
things to .lo for us. but we didn't want libtool to do this.
Solution:
Made it so that make check will compile only the .c files to
executables without the intervening .lo stage...
Platforms tested:
Linux (Dangermouse and Platinum)
Bug Fix
Description:
When parallel I/O is used, the MPI-I/O VFL driver uses a "lazy" model to
call MPI_File_set_view() in order to reduce the number of calls to this
function. However, this is unsafe, because if a collective I/O which uses
MPI derived types (and thus uses MPI_File_set_view()) is immediately
followed by an independent I/O, the code will attempt to call
MPI_File_set_view() in order to switch back to the default view of the
file. MPI_File_set_view() is a collective call however, and this causes
the application to hang.
Solution:
Removed "lazy" MPI_File_set_view() code, instead set the file view when it
is needed (with MPI derived types) and immediately set the file view back to
the default view before leaving the I/O routine.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel. Also, tested with the latest development
and release code for the SAF library, which now works correctly with this
change. (Although the release branch of the SAF library seems to have a
bug, this 1.4.4 release candidate code gets as far as the version the SAF
library is released on top of (1.4.2-patch1, I believe)).
New feature.
Description:
There is some discussion among the SAF team as to whether it is better
to use MPI derived types for raw data transfers (thus needing a
MPI_File_set_view() call), or whether it is better to use a sequence of
low-level MPI types (i.e. MPI_BYTE) for the raw data transfer.
Solution:
Added an in internal flag to determine whether derived types are preferred
(the default), or whether they should be avoided. An environment variable
("HDF5_MPI_PREFER_DERIVED_TYPES") can be set by users to control whether MPI
types should be used or not. Set the environment variable to "0" (i.e.:
'setenv HDF5_MPI_PREFER_DERIVED_TYPES 0' to avoid using MPI derived types.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
Code cleanup
Description:
Changed ifdef name from "VERBOSE" to "BARRIER_CHECKS", to better describe
what it affects.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
Code improvement
Description:
Some small code cleanups and took out the code the was turning off the
metadata cache for parallel I/O (!)
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
Code cleanup
Description:
Remove "COALESCE_READS" ifdefs, which were brought in by the DPSS VFL
driver and are no longer used.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
Bug fix.
Description:
The chunking code was using internal allocation routines to put blocks on
a free list for reuse, instead of using the system allocation routines (ie.
malloc, free, etc.). This causes problems when user filters attempt to
allocate/free chunks for their algorithm's use.
Solution:
Switched the chunking code back to using the system allocation routines,
we can address performance issues with them if it becomes a real problem.
Platforms tested:
Linux 2.2.x (eirene) && IRIX64 6.5 (modi4)
Code optimization
Description:
Avoid creating MPI types (and thus requiring a MPI_File_set_view() call)
when contiguous selections are used for dataset I/O. This should be a
performance improvement for those sorts of selections.
Platforms tested:
Linux 2.2.x (eirene) w/parallel && IRIX64 6.5 (modi4) w/parallel & FORTRAN
Feature Add
Description:
Allow you to specify the percentage you'd like a random buffer to be
compressible. It can go from 0% (non-compressible) to 100%
(completely compressible).
Platforms tested:
FreeBSD
Feature Add
Description:
Use the /dev/urandom device for random data if it's available. (That
is stat() doesn't return a -1 when ran on it). Use random() otherwise.
Platforms tested:
Linux, FreeBSD
Code cleanup
Description:
Use dataset transfer property list to hold information about the MPI types
for the current transfer, instead of setting pseudo-global variables in
the file's struct.
Platforms tested:
Linux 2.2.x (eirene) w/parallel & IRIX64 6.5 (modi4) w/parallel & FORTRAN
Code cleanup
Description:
Change MPI-I/O code to use the address of the dataset for the displacement,
instead of having a separate displacement value. Removed displacement
parameter from H5FD_mpio_setup parameters.
Platforms tested:
Linux 2.2.x (eirene) w/parallel & IRIX64 6.5 (modi4) w/parallel.
Possible Bug Fix
Description:
There seems to be a problem with the h5cc script picking up old
header files. This may have something to do with the CPPFLAGS macro
being set to some nefarious thing and the compiler looking in those
directories for the header files instead of the one where HDF5 is
actually installed.
Solution:
Put the -I$includedir first.
Platforms tested:
None...This is really triggered by the nightly tests. I'm kind of
hoping that this will fix things...
Purpose:
[is this a bug fix? feature? ...]
Description:
[describe the bug, or describe the new feature, etc]
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
Bug fix
Description:
Old setup put $(srcdir)/h5redeploy in the install list but this
same list is used for clean too, thus the file is removed from
source. That is bad.
Solution:
Set it to use a cp to do it. Need to change the source version
name to something else because for one, it is confusing to use
the same name. For another, if the build is done in place (i.e.,
not using --srcdir), the source file is removed, again.
So, renamed it with the .in suffix. Who knows, it may take
more processing than just cp when more features are added to it.
Platforms tested:
Eirene
feature
Description:
Removed the search of HDF4 library specifically.
Replaced the locate_hdf4 with a more general locate_sw.
Added the search of zlib.
Platforms tested:
eirene and all hdf group machines.
New feature
Description:
This search for various software (hdf4, hdf5, zlib) among possible
locations. It is customized toward NCSA machines structure.
Platforms tested:
eirene.
Bug fix
Description:
I/O on "Regular" hyperslab selections could fail to transfer correctly
if the number of elements in the selection's row did now fit "evenly"
into the buffer being used for the transfer.
Solution:
Correct the calculation of the block & count offsets within the optimized
"regular" hyperslab routines.
Platforms tested:
FreeBSD 4.5 (sleipnir)
Code cleanup
Description:
The test for inserting a compound datatype into itself (which should fail)
is issuing warnings about this failure.
Solution:
Turn the warnings off during this test.
Platforms tested:
FreeBSD 4.5 (sleipnir)
Purpose:
Bug #774 fix
Description:
Added a test for the H5Tenum_nameof and H5Tenum_valueof functions.
Values that do not exists in the enumeration type are supplied to
the functions; functions should fail instead of succeeding.
Platforms tested:
Solaris 2.7 and Linux 2.2.18
Purpose:
Bug #774 fix
Description:
H5Tenum_valueof and H5Tenum_nameof functions did not fail
when non-existing name or non-existing value were supplied.
This happened because binary search algorithm did not check
if value or name found during the search were equal to the supplied
one.
Solution:
Added an appropriate check condition.
Platforms tested:
Solaris 2.7 and Linux 2.2.18
Update
Description:
Explained that, if the user uses the "make install prefix=NEW_DIR"
option, they'll need to modify the installed h5cc file to reflect the
change.
Bug Fix
Description:
The test for compression needed to be reversed.
Solution:
Instead of "!(defined...) used just "(defined..."
Platforms tested:
Modi4
Bug fix.
Description:
H5P_get was reading a 'hsize_t' field into a 'size_t' variable, causing
problems on the HP's and Windows.
Solution:
Changed the variable to be an hsize_t
Platforms tested:
HP/UX 11.0 (kelgia)
Bug Fix
Description:
H5Dcreate and H5Tcommit allow "empty" compound and enumerated types (i.e.
ones with no members) to be stored in the file, but this causes an assertion
failure and is somewhat vapid.
Solution:
Check the datatype "makes sense" before using it for H5Dcreate and
H5Tcommit.
Platforms tested:
FreeBSD 4.5 (sleipnir)