Purpose:
Feature Add
Description:
Added support for dumping Group Comments. This involved a
modification of the DDL as well.
Solution:
Steal code from h5ls and put it in the h5dump. The ddl.html file was
updated as normal. And a test was created...
Platforms tested:
Dangermouse, Modi4, Kelgia
Bug Fix.
Description:
Equation to compute size of attribute in memory was incorrectly using the
disk's datatype (and dataspace, but that turns out not to have been the
actual issue) and when a variable length datatype was used for the
attribute, the wrong size is being computed.
Also, the variable-length datatype conversions aren't handling the
default dataset transfer property list (H5P_DEFAULT) correctly.
Solution:
Changed attribute code to compute the attribute size in memory correctly
by using the memory datatype & dataspace.
Changed the variable-length datatype conversion code to use the default
dataset transfer property list when H5P_DEFAULT is passed as the property
list ID.
Platforms tested:
FreeBSD 4.5 (sleipnir)
Bug fix.
Description:
FreeBSD would fail the threadsafe feature if static-exec is not on.
Solution:
Force enable-static-exec on if enable-threadsafe is on.
Also moved the chunk of FreeBSD specific code for Pthread setup
from configure.in to config/freebsd.
Also changed enable-threadsafe to check on linking pthread program.
That takes care of platforms (e.g. freebsd) that has pthread
support builtin the default C library. Now one can just use
"enable-threadsafe" if the compiler has pthread support by default.
Platforms tested:
eirene, Sleipnir
Purpose:
Feature Add
Description:
Needed to add the DEV_T_IS_SCALAR macro to acconfig.h so that
autoheader will propagate that to the H5config.h file.
Solution:
Added, reran autoheader
Platforms tested:
Linux
Purpose:
Bug fix
Description:
The "make depend" command wasn't propagating down into the tools/
directories.
Solution:
Added the "depend:" part to the Makefile in the tools/ subdirectory.
Platforms tested:
Linux
Removing the DPSS (gridstorage) driver source code.
Description:
The DPSS (using Grid-Storage) driver is retired.
Removed the configure option with-gridstorage from configure.in.
Cvs remove the following files
./src/H5FDdpss.c
./src/H5FDdpss.h
./test/dpss_read.c
./test/dpss_write.c
Regenerated Dependencies files (some had to be hand-edited since
'make depend' did not cover them.)
Removed reference to DPSS Virtual file driver from H5F.c.
Platforms tested:
modi4 (Parallel; -with-gass=...), eirene, arabica (fortran, cxx).
Purpose:
Feature Fix
Description:
Added the minimum, maximum, and average time and MB/s for the write
and read operations. It now prints the report out in a pretty clear
format. It also includes how many iterations were done for the
write/read operation.
Platforms tested:
Linux
Bug fix
Description:
All processes, including those that are not part of the PIO test
sub-communicator, all attempted to run the PIO test. It resulted
in failures for those processes that are not supposed to get involved.
Solution:
The function that creates the sub-communicator also returns a
parameter indicating if the process is included in the PIO test
sub-communicator. Then only those processes will really do the
PIO test.
Platforms tested:
eirene (pp) and Modi4 (pp)
Bug Fix.
Description:
The H5Rget_object_type function could not get the object type for dataset
region references.
Solution:
Added a new function, H5Rget_obj_type, to replace H5Rget_object_type.
The new function requires the reference type as an additional parameter,
in order to allow queries on different reference types to be performed
correctly.
Platforms tested:
FreeBSD 4.4. (sleipnir)
Purpose:
Feature Fix
Description:
Changed so the "pio_perf" module handles creating and destroying the
MPI Comm. Worked it so we get the minimum, maximum, and average times
over a set of iterations.
Solution:
Lots. Had to pull the MPI Comm code from the "pio_engine" module and
place it in the "pio_perf" module. Then worked on a way to have all
processes send their time output to process 0, who collects it and
gives back the min, max, and avg times for the iterations.
Platforms tested:
Linux. Doesn't work if you use more than 1 processor...*hrmph*
Purpose:
Feature Rollback
Description:
Shared C++ libraries aren't working on all platforms (read: Arabica).
We need to switch to the old method until we can sort this out.
Solution:
Re-add the "-static" flag to the library creation lines.
Purpose:
Bug Fix
Description:
There were weird "throw()"s which were being placed into the
configure script. Some C++ compilers were barfing on this syntax
(which was akin to "extern int exit(int) throw ();" wonder why?).
Solution:
Ran a different autoconf on the configure file which I'd downloaded
from ftp.gnu.org. It doesn't have those "throw()"s anymore
Platforms tested:
Linux
Purpose:
Bug Fix
Description:
The --raw, --hdf5, --mpiio options weren't being done correctly.
Solution:
I had to change some of the tests for the io_type to & instead of |
so that they'd work how I wanted them to work.
Platforms tested:
Linux
Bug Fix
Description:
Added regression test for proper library behavior when adding fields past
the end of a datatype.
Platforms Tested:
FreeBSD 4.4 (sleipnir)
Bug Fix
Description:
H5Tinsert was allowing compound datatype fields to be inserted past the end
of the datatype.
Solution:
Added range check in H5T_insert
Platforms Tested:
FreeBSD 4.4 (sleipnir)
Purpose:
Bug Fix
Description:
Shared libraries weren't being built for C++.
Solution:
Removed the -static flag from the libtool compile line. This allows
both shared and static libraries to be built instead of just static
ones. After talking with Quincey and Binh-Minh, there shouldn't be
any reason for C++ to be built static only.
Platforms tested:
Linux
Purpose:
Feature Changes
Description:
Okay, I needed to add in more parameters so that the user can modify
how things are supposed to work with the PIO programs. Also needed
to change the algorithm a bit to make these work. And needed to add
in timing for the READ option.
Solution:
Added the above things. The parameters took a major rewrite of the
command-line parsing stuff. Here's the usage statement:
usage: pio_perf [OPTIONS]
OPTIONS
-h, --help Print a usage message and exit
-d N, --num-dsets=N Number of datasets per file [default:1]
-f S, --file-size=S Size of a single file [default: 64M]
-F N, --num-files=N Number of files [default: 1]
-H, --hdf5 Run HDF5 performance test
-i, --num-iterations Number of iterations to perform [default: 1]
-m, --mpiio Run MPI/IO performance test
-o F, --output=F Output raw data into file F [default: none]
-P N, --max-num-processes=N Maximum number of processes to use [default: 1]
-p N, --min-num-processes=N Minimum number of processes to use [default: 1]
-r, --raw Run raw (UNIX) performance test
-X S, --max-xfer-size=S Maximum transfer buffer size [default: 1M]
-x S, --min-xfer-size=S Minimum transfer buffer size [default: 1K]
F - is a filename.
N - is an integer >=0.
S - is a size specifier, an integer >=0 followed by a size indicator:
K - Kilobyte
M - Megabyte
G - Gigabyte
Example: 37M = 37 Megabytes
Platforms tested:
Linux, but not fully finished...
Purpose:
Bug Fix
Description:
Committing the changes in the MPI/IO stuff so that parallel HDF5
will work on HP-UX. It seems that on HP-UX, the MPI_Status variable
needs to be initialized to 0 for it to work (i.e., in some other MPI
calls, if there's garbage in the MPI_Status variable, then it will
barf).
Solution:
Initialized to 0.
Platforms tested:
HP-UX parallel, Linux.
Added nfiles and ndsets parameters checking.
Removed iteration variable since iterations would be done
in Control routine.
Platforms tested:
Eirene(pp) and modi4(pp)
Purpose:
Feature Fix
Description:
The new feature (allowing the user to specify =DIR for a --with-xxx
option instead of requiring =INC,LIB for them) needed a better
explanation.
Solution:
Created a phoney --with-fnord option whose only purpose is to supply
a --help message.
Platforms tested:
Linux
Purpose:
Feature Add
Description:
Added the feature which will accept a directory for all of the
features which now accept an =INC,LIB directive. The old way of doing
things (=INC,LIB) is still valid, but we prefer the user uses the
=DIR method from now on. It saves typing.
Platforms tested:
Linux
Bug fix (or more like feature)
Description:
MPI_File_open does not truncate the filesize if file already exists.
This created confusion during debugging as what the real file size
is. It also interfere the real write bandwidth since the times
required to allocate new disk-space vanishes for subsequent writes
that are for offset shorter than previous file sizes.
Added a MPI_File_set_size to reset the file size to 0 for every new
file.
Another bug is that the 'remove()' call may not work for MPIO/PHDF5
files. (e.g., filename may have some MPI prefix like "pfs:filename").
Replaced "remove" with MPI_File_delete for those cases.
Platforms tested:
modi4(pp) and eirene (pp)
Purpose:
parameter file
Description:
handle parameters in various special cases.
Users donot even have to use this file if they don't have those special needs.
1) memory optimization (should always be set to 0 without handling huge SDS array conversion)
2) unlimited dimension with zero current size, users can use this file to define
their chunk size.
Solution:
Platforms tested:
RedHat Zoot 6.2
Purpose:
a bug fix
a feature added
Description:
1.conversion of unlimited dimension data with the current dimensional size 0
2. Use a parameter file to control some special cases:
1) To subdivide the huge array into hyperslabs, a memory buffer size has i
to be set.
2) when current dimensional size is 0, a default chunk size can be set.
Solution:
bug fixed 1. Old approach: the current dimensional size is set to H5S_UNLIMITED, which is
a huge number. The default chunk size is set as a *FIXED* default value.
2. New approach: the current dimensional size is set to the current value 0.
Users can provide the chunk size through a parameter file.
Platforms tested:
eirene
[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, new feature
Description:
Added HDF5 write in do_write.
Added a complete do_read.
Still need timing code for the read part.
Platforms tested:
eirene (pp), modi4(pp).
Did not test serial since all changes were done in parallel area.
Purpose:
Removing warnings
Description:
H5IdComponent::operator= shouldn't be virtual because the subclass'
operator= have different type for the rhs argument. Removed virtual.
Platforms tested:
SunOS 5.7 (arabica)
Linux 6.2 (eirene)
Purpose:
DOH!
Description:
Ugh! I forgot to add the -m flag to the list of "short" parameter
codes. It wasn't even looking for them. *sigh*
Solution:
Added it
Platforms tested:
Linux
Bug fixes, new features
Description:
There was a coding error in handling file open flags. Changed it
to use &.
Added do_cleanup to cleanup temporary test files but only if
$HDF5_NOCLEANUP is not set. This is consistent with other test programs.
Added logic so that each process is writing its own slabs of data only.
Moved the number of process, rank of process and the communicator used
for PIO run to be global variables. Makes the coding easier. (but this
is not thread-safe.)
Platforms tested:
modi4(pp) and eirene(pp).
Purpose:
Bug fixing
Description:
H5IdComponent::operator= shouldn't be virtual because the subclass'
operator= have different type for the rhs argument. Removed virtual
Platforms tested:
SunOS 5.7 (arabica)
IRIX64 (modi4) - only tested that the warnings went away, still working
on other configuration problems.
Code cleanup
Description:
Tweaked internal error handling macros to reduce the size of the library's
object code by about 10-20%.
Also cleaned up some compiler warnings...
Platforms tested:
FreeBSD 4.4 (sleipnir)
Purpose:
Feature Fix
Description:
Changed default size of file to 512MB. The "-m" flag is now in
megabytes as well. This makes running things a bit faster.
Platforms tested:
Linux