Commit Graph

57 Commits

Author SHA1 Message Date
Mohamad Chaarawi
3aee46a956 [svn-r28040] avoid use of MPI deprecated routines. 2015-10-12 11:53:51 -05:00
Quincey Koziol
1023374492 [svn-r27768] Description:
Complete revamp of package initialization/shutdown mechanism in the library.
Each package now has a single init/term routine.

    This new way should avoid packages being re-initialized during library
shutdown and is also be _much_ more proactive about giving feedback for
resource leaks internal to the library.

    Introduces a new "module" header file for packages in the library
(e.g src/H5Fmodule.h) which sets up some necessary package configuration macros
for the FUNC_ENTER/LEAVE macros.  (The VFL drivers have their own slightly
modified version of this header, src/H5FDdrvr_module.h)

    Also cleaned up a bunch of resources leaks all across the library and tests,
along with addressing many warnings, as I encountered them.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    Linux/64 3.10.x (kituo) w/serial & parallel
    Linux/64 2.6.x (ostrich) w/serial
2015-09-13 22:58:59 -05:00
Mohamad Chaarawi
a07297e90d [svn-r27271] fix a few warnings in t_mpi.c 2015-06-23 08:54:01 -05:00
Mohamad Chaarawi
382976f3e9 [svn-r25398] add a check to make sure MPI_File_get_size() returns correct value (HDFFV-8856). 2014-07-09 10:19:11 -05:00
Mohamad Chaarawi
06ef71a37f [svn-r25397] - remove configure checks for MPI_File_get_size and Big
MPI_File_set_size as they are supported by most MPI implementations.
- fix bug in t_mpi.c (HDFFV-8856)
2014-07-07 13:22:48 -05:00
Dana Robinson
0aa06db0a4 [svn-r24380] The parallel test code now uses HDfree, HDmalloc, and HDcalloc
exclusively.

Part of the preparation for a fix for HDFFV-8551.

Tested on:
    32-bit LE linux (jam) w/ parallel and Fortran.

There are no behavior changes, so testing was minimal.
2013-10-31 02:44:00 -05:00
Allen Byrne
0cbde329bd [svn-r22388] remove unbalanced bracket 2012-05-22 09:03:43 -05:00
Allen Byrne
5e388aa257 [svn-r22385] Skip tests using sparse file writes on Windows. JIRA issue (JIRA HDDFV-8064) created. 2012-05-21 15:37:19 -05:00
Allen Byrne
cfc3760808 [svn-r21334] HDFFV-7687: add HD macro prefrix to functions and use h5_stat_t where necessary
reviewed
2011-08-30 10:35:30 -05:00
Mike McGreevy
dc9288a447 [svn-r21101] HDFFV-7639
Purpose:

    Remove H5_MPI_SPECIAL_COLLECTIVE_IO_WORKS and
    H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS #defines from source.

Description:

    Two advanced parallel functionalities, special collective IO and
    complex derived datatypes, are not supported by older
    implementations of mpi, and thus our code limits the use of these
    features with #ifdefs and has checks in configure to set them (or
    not). Unfortunately, configure can't actually run a parallel check
    to see if these features are working (nor not) so it resorts to
    looking in the config files where they are explicity enabled or
    disabled based on versions of mpi, sytems being built on, or for
    no documented reason at all (i.e. just set to on or off as some
    'default'). Overriding these settings is easy if need be, provided
    it is known that it needs to be done to get improved performance,
    and oftentimes it is not.

    Most new MPI implementations successfully handle the functionality
    requested when these #defines are set, and many of the "turn these
    features off" cases in the config files are for old (> 5 years)
    versions of MPI and retired systems (such as NCSA's tungsten).

    Therefore, the decision has been made to remove the support for
    these old versions of MPI and systems that cannot handle these
    behaviors. The #ifdefs and supporting setup in the config/ files
    and configure script has been removed, and the code executed when
    these options were not set removed from the source.

    In passing, this commit also cleans up some whitespace issues in
    both t_mpi.c and H5Dmpio.c. Furthermore, in t_mpi.c, the special
    collective IO test was not getting regularly run due to it being
    written to work only with four processes (we regularly test with
    six, previously with three), and thus it failed when actually run
    due to an out of bounds data buffer assignment. It has been
    modified to run at any number of processes greater than four, and
    the memory problem has been fixed so the test passes.

Tested:

    jam, h5committest, ember
2011-07-14 15:33:21 -05:00
Albert Cheng
e6622c86a8 [svn-r19959] Bug: the VRFY macro, for some reason, called MPI_Finalize() when it encountered
error and wanted to exit the test program. This was not good since if only a
subset of processes called MPI_Finalize(), the other processes will likely
hang.  That happened in AIX that it would waited till the alarm signal to kill
the processes. Definitely a waste of time.
Solution: Changed it to call MPI_Abort.

That showed another problem. HDF5 has setup atexit post-process to try to close
unclose objects, release resources, etc.  But if the MPI processes have
encountered an error and has been aborted, it is not likely any more MPI calls
can function properly. E.g., it would attempt to free some communicators in
the HDF5 MPIO file handle. It would again hang.
Solution: need to call H5dont_atexit() to disable any atexit post-processing.
This must be done early, like before calling H5open. This is added to each
parallel test main program.

testphdf5.h:
    Changed macros VRFY and MESG. Added comments too.

testphdf5.c:
t_mpi.c:
t_cache.c:
t_shapesame.c:
    Added H5dont_atexit.

Tested: h5committest.
2011-01-16 04:44:22 -05:00
Mike McGreevy
21518fd05a [svn-r17654] Purpose:
Configure cache-val cleanup

Description:

    Corrected some misnamed cache values in configure / config files.

Tested:

    h5committest
2009-10-15 16:14:27 -05:00
Albert Cheng
da73cc2d02 [svn-r17318] Did some code cleanup.
t_file.c: replace the old variable, color, with a more meaningfule name of
    is_old.
t_mpi.c: use the official mpi_file_delete, instead of remove, to delete a file
    in MPI environment.

Tested: 
Only jam in parallel as changes are trivial.
2009-08-11 05:35:29 -05:00
Quincey Koziol
b4ff3e6e79 [svn-r16560] Description:
Remove another call to H5E_clear_stack() from within the library.

    Clean up lots of compiler warnings.

Tested on:
    Mac OS X/32 10.5.6 (amazon)
    (followup on other platforms forthcoming)
2009-03-10 14:00:39 -05:00
Quincey Koziol
bdd7d59902 [svn-r15628] Description:
Remove trailing whitespace from C/C++ source files, with the following
script:

    foreach f (*.[ch] *.cpp)
        sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
    end

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    No need for h5committest, just whitespace changes...
2008-09-16 10:52:51 -05:00
Raymond Lu
1280f90f81 [svn-r13829] Some systems (only SGI Altix ProPack 4 discovered so far) doesn't return correct
file size from MPI_File_get_size.  Bypass this problem by replacing it with
stat.  Add an option --disable-mpi-size in configure to indicate this function
doesn't work properly.  Add a test in testpar/t_mpi.c, too.  If it returns wrong
file size, print out a warning.

Tested on kagiso (parallel) because already tested the same change to v1.6 on 
several platforms (kagiso, cobalt, copper, and sol).
2007-06-02 13:19:36 -05:00
Albert Cheng
ed7d456e51 [svn-r13253] Updated all C and C++ style source code files with the THG copyright notice.
Tested platform:
Kagiso only since it is only a comment block change.  If it works in one
machine, it should work in all, I hope.  Still need to check the parallel
build on copper.
2007-02-07 09:56:24 -05:00
Quincey Koziol
7be3afb278 [svn-r12440] Purpose:
Code cleanup

Description:
    Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.

Platforms tested:
    None necessary, whitespace only change
2006-06-27 09:45:06 -05:00
MuQun Yang
0f0a5eb918 [svn-r12044] Purpose:
Add new tests

Description:
Collective IO doesn't work for some platforms/mpio packages when more than
one process has no contributions to IO.
Solution:
1. Add a collective IO test to verify the correctness of the library when
   more than one process has no contributions to IO.
2. Add the similar MPI-IO test in t_mpi to help us maintain in more platforms.
Platforms tested:
heping, mir, copper
Misc. update:
2006-03-09 09:52:09 -05:00
Leon Arber
3888942e3a [svn-r11483] Purpose:
bug fix.

Description:
The complex derived datatype test assumed that the fill value would be 0.  This is not
the case on all systems.

Solution:
Modified the test to check against a known value in the outbuf array, instead of the fill value.

Platforms tested:
heping and MCR.

Misc. update:
2005-09-29 15:49:51 -05:00
Leon Arber
202b9ec55c [svn-r11481] Purpose:
bug fix.

Description:
Fixed typo in a comment.  The word "file" was supposed to be "fill."  The explanation of
how the complex derived datatype test works is much clearer now.

Solution:

Platforms tested:
minor change.

Misc. update:
2005-09-29 13:54:57 -05:00
MuQun Yang
e42782fa3a [svn-r11459] Purpose:
A bug fix

Description:
MPI_Status_IGNORE is treated as a NULL pointer for mpich 1.2.4 or similar MPI packages.
It caused segmentation fault for MPI derived datatype test.


Solution:
Define MPI_STATUS status,
and pass &status into MPI_File_read and MPI_File_write.

Platforms tested:
too trivial to test.

Misc. update:
2005-09-22 09:39:32 -05:00
Albert Cheng
d67e59d9b2 [svn-r11458] Purpose:
Improvement.

Description:
The test may hang if there are system failures that some processors
are not working.

Solution:
Added the ALARM calls to limit all tests be done with the default
alarm time.  So, even if a process is hanging, the ALARM signal
would terminate the process.

Platforms tested:
tg-login2 of NCSA.

Misc. update:
2005-09-21 23:32:24 -05:00
Albert Cheng
9c4dd70e36 [svn-r11292] Purpose:
"bug fix"

Description:
The test_mpio_derived_dtype() often hangs when fails.  So it was
not run by default to avoid hanging the daily tests or confusing
users.  But then new system or new codes in collective chunk fails
while one can't tell for sure if it is because of the complicated
derived type failures or something else.

Solution:
Changed the logic so it is skipped only if it is known that
the complicated MPI derived type does not work.  (This is
indicated by macro H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS NOT
defined.

Platforms tested:
heping pp (where it is tested by default).
Modi4 pp (where it is SKIPPED by default.)
I also forced modi4 to test it and modi4 said it actually
is working and should change the setting of
H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS to working?!!

Misc. update:
2005-08-23 17:41:42 -05:00
Albert Cheng
208436bfc4 [svn-r11291] Purpose:
Code cleaning.

Description:
The block of code that is conditioned by the H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS
and manipulates the return code of test_mpio_derived_dtype, does not really
belong in main.  If return code of test_mpio_derived_dtype needs to be
adjusted, it should be done in test_mpio_derived_dtype.

Solution:
Moved that block of code test_mpio_derived_dtype.

Platforms tested:
heping PP.

Misc. update:
2005-08-23 17:19:57 -05:00
Quincey Koziol
6b45f5172c [svn-r11245] Purpose:
Code cleanup

Description:
    Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.

Solution:
    Ran this script in each directory:

foreach f (*.[ch] *.cpp)
    sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end


Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 15:53:35 -05:00
Albert Cheng
7ce84a1d39 [svn-r10510] Purpose:
Improvement.

Description:
The derived datatype test often hangs when it fails.  This blocks
daily test or automatic build. Run it only when hi verbose mode
is used.

Platforms tested:
Tested in eirene pp.

Misc. update:
2005-03-30 10:30:24 -05:00
MuQun Yang
9027e26be9 [svn-r10390] Purpose:
Add detailed comments for MPI derived data type test.

Description:

Solution:

Platforms tested:
heping(Only comments and printf messages were added, no need to test
on all platforms.)

Misc. update:
2005-03-23 13:38:35 -05:00
MuQun Yang
c33f593665 [svn-r10204] Purpose:
Provide a way to warn users on the usage of collective IO because of
potential MPI-IO bugs for some platforms.
Also provide a way for users to give us feedback if the vendor has
already fixed the problem so that we can turn off the hard-code macro
in our configure description file.

Description:
See above.


Solution:
Use a simple MPI complicated derived datatype program to check
whether derived data type works for this MPI-IO package.
Print out some messages to warn users if not working as we had expected.

Platforms tested:
AIX 5.1(copper) and Linux 2.4(heping)

Misc. update:
2005-03-11 17:18:45 -05:00
Albert Cheng
9d8d5392b2 [svn-r10125] Purpose:
Feature--to provide a standalone mode for t_mpi.c so that it can
be built outside of PHDF5 environment.

Description:
Move definitions that are common to all parallel test programs
to a new header file called testpar.h.
Leave only Parallel HDF5 tests related definitions in testphdf5.h.

Platforms tested:
heping (pp) and modi4(PP).  Copper was down.

Misc. update:
2005-03-02 23:06:14 -05:00
Quincey Koziol
427ff7da28 [svn-r9727] Purpose:
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:
2004-12-29 09:26:20 -05:00
Albert Cheng
63a3195fac [svn-r9453] Purpose:
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:
2004-10-22 17:42:05 -05:00
Albert Cheng
1926a6538e [svn-r9130] Purpose:
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:
2004-08-20 00:03:28 -05:00
Albert Cheng
3c59678775 [svn-r9115] Purpose:
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.
2004-08-19 01:32:47 -05:00
Albert Cheng
b6449ce42e [svn-r8501] Purpose:
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.
2004-05-10 14:58:32 -05:00
Quincey Koziol
0a29514b9d [svn-r8383] Purpose:
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
2004-04-17 23:10:09 -05:00
Albert Cheng
d5fb4dfcef [svn-r8111] Purpose:
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:
2004-01-24 18:04:22 -05:00
Albert Cheng
f3113c02d5 [svn-r8096] Purpose:
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:
2004-01-22 18:11:39 -05:00
Albert Cheng
71f3513337 [svn-r7841] Purpose:
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:
2003-11-12 23:01:22 -05:00
Albert Cheng
8f9eb1ae7f [svn-r7835] Purpose:
new test.

Description:
Added test_mpio_1wMr test which verify if the file system can support
1 process writes, many processes read.

Platforms tested:
h5committested.

Misc. update:
2003-11-11 23:55:46 -05:00
Albert Cheng
a9c79d6b61 [svn-r6286] Purpose:
bug fix
Description:
    Added a barrier to ensure all processes have finished using
    the file before cleaning it away.
    Added H5close() to ensure all HDF5 stuff are closed before
    calling MPI_Finalize.
Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}? Yes
2003-01-15 11:06:47 -05:00
Quincey Koziol
ea052ffd55 [svn-r5674] Purpose:
Code cleanup

Description:
    Removed more compiler warnings, etc.

Platforms tested:
    Linux 2.2.x (eirene) w/parallel
2002-06-19 11:06:55 -05:00
Quincey Koziol
aefc39ac32 [svn-r5667] Purpose:
Code cleanup

Description:
    Turn on more warnings in the IRIX builds and clean them up.

Platforms tested:
    IRIX64 6.5 (modi4) w/parallel
2002-06-19 07:54:53 -05:00
Albert Cheng
dbca4a4022 [svn-r5516] Purpose:
Tidy up
Description:
    Old version showed tons of output even if MPI_Offset is too small
    to support multiple GB sized files and destined to fail.
    Output is pretty confusing.
Solution:
    Prints the signness and size of MPI_Offset for information.
    Skipped tests if MPI_Offset is not big enough to support the file
    sizes.
Platforms tested:
    modi4, eirene, burrwhite (all parallel).
2002-06-03 20:33:00 -05:00
Albert Cheng
5aeda255db [svn-r5222] Purpose:
feture
Description:
    add calls to show hostname.
Platforms tested:
    eirene (linux 2.2) parallel.
2002-04-22 15:24:59 -05:00
Albert Cheng
f28193d92c [svn-r4975] Description:
Users were alarmed by the OFFSET overflow and GB file size tests.
    Those tests only checks the limits of the MPI implementation, not
    really as an error.
Solution:
    Changed the VRFY macro to indicate it is an "ERROR".
    Modified the INFO macro to print messages as "REMARK (not an error)"
    so that users would not be alarmed.

    Added an explanation string in the GB file size write/read.
Platforms tested:
    eirene and modi4 (parallel)
2002-02-15 09:55:38 -05:00
Albert Cheng
cc8ba71296 [svn-r4399] Purpose:
Code cleanup
Description:
    This was "thrown" together in a quick way to test MPIO functionality.
    Cleaned out some embrassingly useless declaration to reduce compiler
    warnings.
Platforms tested:
    modi4-pp and eirene-pp.
2001-08-20 15:05:36 -05:00
Albert Cheng
80737b93ef [svn-r3973] Purpose:
Bug fix
Description:
    The t_mpi used to fail and exit if any error detected.
    That aborted other process in a "make check" situation.
Solution:
    Introduced a new error verification as INFO.  INFO is for
    information only.  It does not increase nerrors count.
    The program always exits with 0.
Platforms tested:
    eirene with mpich.
2001-06-07 01:36:08 -05:00
Albert Cheng
9c0f0b60dc [svn-r3903] Purpose:
Bug fix
Description:
    test_mpio_offset() was called with wrong syntax.  Dumb mistake.
Platforms tested:
    modi4, pp
2001-05-10 08:47:17 -05:00
Albert Cheng
3214f19350 [svn-r3901] Purpose:
Bug fix
Description:
    added a barrier to prevent racing condition before remove file and
    open file.
Platforms tested:
    modi4,pp
cVS: ----------------------------------------------------------------------
2001-05-10 08:40:07 -05:00