Remove feature
Description:
Retire threaded, balanced binary tree code from HDF5 use. Requiescat in
pace...
Also, regenerate dependencies files.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require full h5committesting (the code is already
disconnected from everything except its tests)
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-)
Description:
Generally speaking, this is the "signed->unsigned" change to selections.
However, in the process of merging code back, things got stickier and stickier
until I ended up doing a big "sync the two branches up" operation. So... I
brought back all the "infrastructure" fixes from the development branch to the
release branch (which I think were actually making some improvement in
performance) as well as fixed several bugs which had been fixed in one branch,
but not the other.
I've also tagged the repository before making this checkin with the label
"before_signed_unsigned_changes".
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel & fphdf5
FreeBSD 4.10 (sleipnir) w/threadsafe
FreeBSD 4.10 (sleipnir) w/backward compatibility
Solaris 2.7 (arabica) w/"purify options"
Solaris 2.8 (sol) w/FORTRAN & C++
AIX 5.x (copper) w/parallel & FORTRAN
IRIX64 6.5 (modi4) w/FORTRAN
Linux 2.4 (heping) w/FORTRAN & C++
Misc. update:
Check in testing code for irregular hyperslab selection with multiple chunks.
Description:
For debugging only, will not be tested by h5committest.
Solution:
Platforms tested:
Linux 2.4 (mpich 1.2.6)
Misc. update:
Adding routines to test irrgular hyperslab selection inside one chunk.
Description:
For debugging purpose, tests are turned off now.
Solution:
Platforms tested:
AIX 5.1 and Linux 2.4 with parallel enabled.
Misc. update:
Modifying testing code for derived datatype.
However, this test won't be run in the HDF5 parallel test.
The code is checked in only for debugging purpose.
Description:
Solution:
Platforms tested:
Linux 2.4(mpich 1.2.6)
Misc. update:
To test MPI derived datatype
Description:
A very simple irregular hyperslab selection in parallel.
Will not be tested when testing HDF5 library.
Check in only for debugging purpose.
This code will be tested in the future.
Solution:
Platforms tested:
AIX 5.1, Linux 2.4+mpich 1.2.6
Misc. update:
Adding general MPI derived datatype testing code.
Description:
The testing code will not be tested. The purpose of checking in is for
better debugging later. HDF5 routine or daily test should not be aware of this.
Solution:
Platforms tested:
Copper(AIX 5.1),
Heping(Linux 2.4 + MPICH 1.2.6).
Misc. update:
Improvement.
Description:
Made all processes print hostname() by default so that it is easier
to spot problems.
Platforms tested:
Tested in copper only. It is a trivial small change.
Misc. update:
Bug fix
Description:
Relax restrictions on parallel I/O to allow compressed, chunked datasets
to be read in parallel (collective access will be degraded to independent
access, but will retrieve the information still).
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Solaris 2.7 (arabica)
IRIX64 6.5 (modi4)
h5committest
Code clean up
Description:
The tests used to have their own test file names due to
the original program layout. Now that it is using the
common test interface, individual test can be invoked
at will (via -o). There is no need to have different
test filenames. Only requirement is that certain read
tests must follow immediately the corresponding write
test since they use the same file.
I have combined all test file names into just one common
file name. This reduces the printout of test file name,
very beneficial when the test is run by large number of processes.
It makes future code maintenance easier too.
Platforms tested:
Tested in Eirene(PP) only. No h5committest because this is
limited to the parallel tests and the changes are trivial.
Misc. update:
Cleanup
Description:
Remove old hack for H5Eget_auto() which is not needed any more.
Reverse H5E_set_auto_stack(H5EDEFAULT,...) back to previous
code of H5E_set_auto(...). Same for H5E_get_auto_stack.
Platforms tested:
Only tested in Eirene PP as the change is pretty straight
forward.
Misc. update:
Add test to verify the fix of the parallel I/O mode confusion bug.
Description:
While the parallel I/O mode confusion bug is fixed, an automated
regression test for this bug would be useful.
Solution:
Added a modified version of the original bug demonstration program
to testphdf5.
Platforms tested:
copper
h5committested
eirene (parallel)
Misc. update:
Code cleanup
Description:
Tweak recent "forward compatibility" changes to the H5E* API (which allowed
for the old H5E API functions to remain unchanged) by allowing for the error
stack callback function (H5E_auto_t) to also remain unchanged from the 1.6
branch. This required changing the H5E{get|set}_auto routines to have the
old style H5E_auto_t type (which didn't have a stack ID parameter) and the new
H5E{get|set}_auto_stack routines to have a newer "H5E_auto_stack_t" type (which
has a stack ID parameter). This should make the H5E API changes as forwardly
compatible as possible.
One side-affect of this change was that it was impossible to determine if
the current auto error callback was the old style (H5E_auto_t) or the new style
(H5E_auto_stack_t) of callback, so a new API function (H5Eauto_is_stack) was
adde to query this.
Platforms tested:
FreeBSD 4.10 (sleipnir)
IRIX64 6.5 (modi4)
h5committest
Purpose:
Shrink HDF5 parallel test
Description:
Previously the collective chunk IO tests created and opened four HDF5 files;
it turned out that all collective chunk IO tests can use one file for testing.
Solution:
To use one file for all collective chunk IO tests with trunc option to be set in H5Fcreate.
Platforms tested:
copper(no need to use h5committest)
Misc. update:
Description: Restore 6 old error API functions back to the library to be backward
compatible with v1.6. They are H5Epush, H5Eprint, H5Ewalk, H5Eclear, H5Eset_auto,
H5Eget_auto. These functions do not have error stack as parameter.
Solution: Internally, these functions use default error stack.
Platforms tested: h5committest and fuss.
Misc. update: RELEASE.txt
Text display change
Description:
Changed the test names to much shorter strings for easier
use.
Platforms tested:
No h5committed test. Only test parallel in eirene.
Misc. update:
Fix of bug/feature which caused testphdf5 to fail when run with more than
32 processes. This fix was originally applied to the 1.6 branch, and is
now ported to the 1.7 branch.
Description:
32 process limit was a hard coded constant.
Solution:
Modified most of the routines in t_mdset.c to adapt dynamically to
the current number of processes. In passing, I also tidied up a
few memory leaks.
Note that one new routine had been added to the 1.7 version of
t_mdset.c since the 1.6/1.7 split. I applied changes to this
routine as well.
Platforms tested:
h5committested
Tested on eirene with 4 and 8 processes. Couldn't go higher.
I would have like to repeat my 32 - 64 process tests on copper,
but was unable to do so as I don't have access to cu12t at
present. Perhaps I will be able to manage this in the next
few days. However, Albert wanted these changes checked in to
the 1.7 branch so he could work with them.
Misc. update:
Code cleanup.
Removed bunch of old options (r,w,v,i,b,e) that are no longer valid
or useful after adopting the general test interface. Moved the test
of sizeof MPI_Offset into the test routine itself.
Platforms tested:
Eirene and Sol using pp mode.
bug fix.
Description:
The test routines only print error messages but not all of them
return number of errors detected back to the main routine which
always exit with a 0 status. Thus make or shell commands could
not detect there were errors.
Solution:
Changed the test routines to return appropriate number of
errors to main routine which in turn exit with the appropriate
exit code if errors found.
Platforms tested:
Tested in Sol and eirene (pp).
Misc. update:
feature
Description:
Another revamp of the test interface.
TestInit: is used to register Test Program name, test program specific
Usage and option parsing routines.
TestUsage: will invoke extra usage routine if provided.
TestParseCmdLine: will invoke extra option parsing routine if provided.
GetTestSummary() and GetTestCleanup() replaces the previous Summary and
CleanUp arguments of TestParseCmdLine.
test/testhdf5, test/ttsafe.c, testpar/t_mpi.c, testpar/testphdf5.c:
All have been updated to use the new Test Routines.
testpar/t_mpi.c:
Also a fix of a compiler optimization bug when pgcc in Linux is
used to compile it. Changed buf[] and expected to unsigned char
type to avoid a bug that failed to do sign-extension.
Platforms tested:
"h5committested"
Also tested thread-safe option in eirene.
Purpose:
bug fix
Description:
1. The IF-block of skipping collective chunk IO tests when the number of
processes is greater than some number essentially skipped all parallel tests.
2. John tested at copper with the number of processor = 64 and collective
chunk IO tests passed, so we increase the number of precessor =24 to 64 for
skipping the test.
Solution:
1. change the IF block flow so that it only skips collective chunk IO tests when
the number of process is greater than 64.
Platforms tested:
copper(only change a bit of parallel test code, no needs to test on other platforms).
Misc. update:
Correction of the previous check.
Description:
forget moving "debug #if macro" out of this file.
Solution:
remove that "#if 0 #endif" macro block.
Platforms tested:
Compile at eirene
Too trivial to test
Misc. update:
Better collective chunk IO test arrangements
Description:
collective chunk IO tests have been verified with the number of process greater than 24 and
the test is very slow with big number of process.
That may cause confusions to users who run collective chunk IO tests.
Solution:
To avoid possible confusions, A if-block will be used to check whether the number of process
is greater than 24. If yes, the collective chunk tests will be skipped and a message will be printed out.
Platforms tested:
linux 2.4
(too trivial to use h5committest)
Misc. update:
Make collective chunk IO test more general
Description:
Previously collective chunk IO test is only fit for processor =4 with
the dimension size to be set small; sometimes people would like to test
with more than 4 processors(5,6 or more), the test therefore failed.
Solution:
To make the test case more general, dimensional size of the data is set to be large(right now 288 for each dimension), the disjoint hyperslab selection is re-calculated. Now the test cases should pass with 5,6 or 12 processors. Note, there is nothing wrong with the implementation of the library, it is the test case that causes the failure with the number of processor greater than 4.
Platforms tested:
Only at eirene, since only the test code is modified a little and it is very slow to test the parallel case.
Misc. update:
Cleanup and bug fix.
Description:
Bug fix:
the checking of dobig test was done in the wrong place
such that tests added after it would be run even for the -b option.
Moved the dobig test checking to AFTER all tests are added.
Cleanup:
Removed old code now that the new way is working fine.
Platforms tested:
Tested in Eirene parallel only.
Misc. update:
Feature
Description:
Added a feature such that if the test name starts with '-', do not run it
by default.
Platforms tested:
Eirene both serial and parallel.
Misc. update:
Code cleanup
Description:
Fix another batch of minor differences between the development and release
branches.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code cleanup
Description:
Clean up collective chunking code a bit.
Also, add '--enable-instrument' configure flag to have a mechanism for
determining that optimized operations happened correctly in the library (instead
of just the "normal" way) by allowing 'flag' properties to be set outside the
library and set when the "right" thing happens. This is mainly for debugging
and regression checks, so we make certain we don't break optimized I/O by
accident. It's enabled by default when --enable-debug is on (which is on by
default in the development branch and off by default in the release branch),
but can also be independently controlled with its own configure flag.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
IBM p690 (copper) w/parallel
To test collective chunk IO properly.
Description:
See the previous message.
Solution:
See the previous message.
Platforms tested:
arabica(Sol 2.7), eirene(Linux), copper(AIX)
Misc. update:
To add collective chunk IO tests.
Description:
three tests are added.
1. Only one hyperslab for each process, and this hyperslab is fit in exactly one chunk.
2. non-contiguous hyperslabs in each process, these hyperslabs are fit in one chunk.
3. Single hyperslab for each process, smaller chunk is assigned. Number of chunks for
every process is equal.
Solution:
the dataset size is set to be very small, will enlarge later.
Platforms tested:
AIX 5.1(copper)
Misc. update:
Bug fix
Description:
Fix error in chunked dataset I/O where data written out wasn't read
correctly from a chunked, extendible dataset after the dataset was extended.
Also, fix parallel I/O tests to gather error results from all processes,
in order to detect errors that only occur on one process.
Solution:
Bypass chunk cache for reads as well as writes, if parallel I/O driver is
used and file is opened for writing.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Improvement
Description:
The MPI atomicity and file_sync tests may hang if a filesystem
is not able to support the operation. This will block the
whole tests. PHDF5 is not using either features. So, removed
them from the default tests.
Platforms tested:
Only in eirene using pp. Copper is still down.
Bug fix.
Description:
The data verification code didn't work. Also numerous minor bugs.
Solution:
Re-wrote data write and verification code. In particular, I
modified the verification code so it actually verifies data.
In the future, this test should be modified so it exercises
object deletes and chunk I/O.
Platforms tested:
h5committested
Code cleanup
Description:
Clean up lots of warnings based on those reported from the SGI compilers
as well as gcc.
Platforms tested:
SGI O3900, IRIX64 6.5 (Cheryl's SGI machine)
FreeBSD 4.9 (sleipnir) w/ & w/o parallel
h5committest
feature
Description:
Change testphdf5 to use the common test program syntax.
Needed to change the protocols of all test programs to
fit the requirement of the common test syntax.
Platforms tested:
"h5committested".
Also tested in sol with PP mode.
Bug fix
Description:
make check without doing make first would fail to build testphdf5.
Solution:
Put the testphdf5 back in the target of TEST_PROG_PP and removed
the "testphdf" without any parameter from testph5.sh.
Platforms tested:
copper parallel. This is not relevant to non-parallel cases.
Misc. update:
Improvement
Description:
Changed parsing of verbose level by the common test library routine.
Change t_mpi.c to use the Verbose control better.
Platforms tested:
verena (pp).
Misc. update:
Improvement.
Description:
Complete change of the verbose control to use the routines provided by
the test/libh5test.a.
Also put in a temporary fix for the H5Eset_auto() and H5Eget_auto()
so that the Compat code are isolated in one place rather than all over
the source file.
Platforms tested:
Tested in Eirene (parallel).
Misc. update:
Added a test of fill value before any data is written to a dataset.
Rename short_dataset() as dataset_fillvalue() as it reflects better
the tests. Also removed the option of -S since the fill value test
will be tested always.
Platforms tested:
"h5committested"
Misc. update:
Code cleanup.
Description:
The H5Eclear() in the VRFY and INFO macros are not needed.
After removing them, there is no need to have a separate
v1.6 Compat version.
Platforms tested:
"h5committested"
Misc. update:
Code cleanup, bug fixes
Description:
Wrap up rest of changes necessary for fixing the "short" MPI-I/O read
problem that Robb reported.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Feature.
Description:
Added the short_dataset test (was in v1.6 first.)
Platforms tested:
Tested in eirene (pp) only since these have been tested in v1.6 already.
Misc. update:
Bug fix
Description:
Clean up a couple more 1.6 compat bugs that showed up when the library
was compiled with parallel support.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/parallel & 1.6 compat
config not tested with h5committest
Update
Description:
This completes Phase I of the FPHDF5 testing. This test does the
following:
- Creates a file
- Creates multiple non-root groups
- For each process:
For each non-root group:
Create multiple datasets
Access all datasets created above
Write to all datasets created above
- Close the file
- Reopen the file and verify the data is correct
Platforms tested:
AIX (w/ FPHDF5)
Linux (w/ FPHDF5)
Solaris (w/ Fortran & C++)
Misc. update:
new feature.
Description:
Added tests of 1wMr with options to apply Atomicity or File_sync.
Platforms tested:
only tested in eirene and Teragrid as this is just an MPI test.
Misc. update: