Commit Graph

88 Commits

Author SHA1 Message Date
Mohamad Chaarawi
48bebcc39e [svn-r29057] added dxpl type checking when debug mode is enabled (H5_DEBUG_BUILD)
tested on bb-8 with Serial and Parallel, debug and production builds.
2016-02-07 10:37:33 -05:00
Quincey Koziol
4c5bb2b8db [svn-r28797] Description:
Clean up another round of memory allocation mis-matches.

Tested on:
    Linux/32 2.6.x (jam) w/serial
    MacOSX/64 10.11.2 (amazon) w/serial & parallel
2016-01-04 22:28:43 -05:00
Quincey Koziol
ee7612be44 [svn-r27811] Description:
Refactor property list code to "deep copy" properties in the correct way,
retraining the rest of the library to copy & release things correctly.  This
cleans up another batch of memory leaks, etc. within the library.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    Linux/32 2.6.x (jam) w/serial & parallel
    (h5committest forthcoming)
2015-09-16 17:27:49 -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
fc45d5fcb0 [svn-r27133] - Add a new attribute function characterstic for format:
* H5_ATTR_FORMAT(X,Y,Z)  __attribute__((format(X, Y, Z)))
- Rename UNUSED attribute characterstic to H5_ATTR_UNUSED.
- Rename NORETURN attribute characterstic to H5_ATTR_NORETURN

tested with h5committest.
2015-06-01 14:38:09 -05:00
Quincey Koziol
7e231953a2 [svn-r27058] Description:
Convert internal chunk structures to use 'scaled' coordinates instead of
absolute coordinates.

Tested on:
    Mac OSX/64 10.10.3 (amazon) w/parallel & serial
    Linux 2.6.x/32 (jam) w/parallel & serial
    Linux 2.6.x/64 (koala) w/serial
2015-05-13 16:30:24 -05:00
Dana Robinson
67ba6cb57d [svn-r27045] Renamed H5_ASSIGN_OVERFLOW() to H5_CHECKED_ASSIGN() and re-ordered
the arguments to be in a more logical order.

Tested on: h5committest
2015-05-10 17:38:04 -05:00
Quincey Koziol
1eaaae9821 [svn-r26842] Description:
Cache the dataset's rank & dimension sizes, instead of querying them
frequently, to speed up various checks & algorithms.  Also, a few minor
cleanups.

Tested on:
    MacOSX/64 10.10.2 (amazon) w/serial & parallel
    Linux/32 2.6.18 (jam) w/serial & parallel
2015-04-18 01:39:34 -05:00
Quincey Koziol
7bf3a426e8 [svn-r26837] Description:
Separate allocating chunk on disk from inserting the chunk record into the
index.  This allows a "SWMR-safe" insert/update of chunks (the chunk is always
allocated -> written -> inserted/updated in the index).

Tested on:
    Mac OSX/64 10.10.2 (amazon) w/parallel & serial
    Linux/32 2.6.18 (jam) w/serial & parallel
2015-04-17 15:49:27 -05:00
Neil Fortner
1b78408184 [svn-r26149] Fix potential memory error reported by valgrind in
H5D__link_chunk_collective_io.  This would occur when performing collective I/O
on a dataset with only 1 chunk, and a participating process had nothing to read
or write.

Tested: jam, koala, ostrich (h5committest)
2015-02-09 11:31:28 -05:00
Mohamad Chaarawi
1949c40bfd [svn-r25983] HDFFV-1125: Eliminate IS_H5FD_MPI() macro use in the library and replace with driver feature flag(s).
Add an MPI atomicity feature flag and remove the macro from the library.

tested Parallel on Jam.
2015-01-20 10:26:45 -05:00
Quincey Koziol
89e2c8822d [svn-r25766] Description:
Revert r25273, 25283 & 25439 (the hyperslab improvement changes).  They
are buggy and it's taking me a long time to correct the problem.  I'll check
in a revised form of the changes when I've got them straightened out.

Tested on:
    Mac OSX 10.10.0 (amazon) w/gcc 4.9.x, C++, FORTRAN
    Linux 2.6.x (jam) w/parallel
2014-11-03 15:13:25 -05:00
Mohamad Chaarawi
7433fb9dc1 [svn-r25514] Replace MPI deprecated routines with undeprecated ones. 2014-08-05 10:36:38 -05:00
Quincey Koziol
4ccb865c70 [svn-r25273] Description:
Bring in Chao/Neil/my changes to optimize hyperslab selection operations
further, along with 3 new public API routines: H5Scombine_hyperslab(),
H5Sselect_select() and H5Scombine_select(), along with many minor cleanups to
the code and fixing a few compiler warnings.

Tested on:
    Mac OSX/64 10.9.3 w/gcc 4.9.x and parallel w/OpenMPI
    (h5commttest forthcoming)
2014-06-13 01:23:57 -05:00
Quincey Koziol
a613b70f93 [svn-r25197] Description:
Bring changes from hdf5_1_8_coverity branch back to trunk:

r20878:
    Issue 76: Check if H5Tget_nmembers(type) fails and simply return(FALSE). Also move printf to after check.

r20880:
    Issue 192: Create ret_val var set to -1. Add out label for failures to jump to, return ret_val at bottom.

r20882:
    Fixes for coverity:
    1) bug #1679: remove dead code in test/mf.c
    2) bug #1680: remove dead code in tools/lib/h5diff_dset.c

r20883:
    Fix coverity issue 585

    Description:
    Changed variable "c" in processStrData in h5import.c to an int, to match fgetc
    return value, and removed call to feof, instead checking if c == EOF.

Tested on:
    MacOSX/64 10.9.3 (amazon) w/C++, FORTRAN & parallel
    (too minor to require h5committest)
2014-05-16 22:22:51 -05:00
Quincey Koziol
2e4302818a [svn-r24864] Description:
Remove all traces of MPI-POSIX VFD and GPFS detection/code.

    Remove remaining traces of stream VFD.

    Remove testpar/t_posix_compliant test (it's not actually verifying anything).

    Clean up H5D__mpio_opt_possible() further.

    Moved environment variable that disables MPI collective operations into
MPI-IO VFD (instead of it being in src/H5S.c).

    A few other small code cleanups.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/parallel & serial
2014-03-21 18:02:24 -05:00
Quincey Koziol
ac0ef34a41 [svn-r24769] Description:
Check in Mohamad's changes to support collective I/O on point selections,
along with some other minor cleanups.

Tested on:
    Mac OSX/64 10.9.2 (amazon) w/parallel & serial
    (h5committest forthcoming)
2014-03-07 14:12:20 -05:00
Mohamad Chaarawi
863ff882b6 [svn-r24709] rename H5V to H5VM since H5V is needed in the fastforward project for
view objects.  The addition of view objects in the fastforward project
is expected to be brough into the trunk sometimes in the future, which
is why we need to make this change.

Tested Manually on Jam and Ostrich.
Tested with h5commitest - Koala with intel compilers failed, but nothing had to do with those changes.
error on Koala: error while loading shared libraries: libirng.so
2014-02-13 17:12:46 -05:00
Quincey Koziol
424a41f878 [svn-r23713] Description:
Clean up warnings, switch library code to use Standard C/POSIX wrapper
macros, remove internal calls to API routines, update checkapi and checkposix
scripts.

Tested on:
    Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
    Big-Endian Linux/64 (ostrich)
2013-05-21 12:30:54 -05:00
Jonathan Kim
51c5bf8aa7 [svn-r22992] Purpose:
HDFFV-8146 - Remove "multi-chunk IO without optimization" sub-feature from MPI I/O optimization for chunked dataset feature

Description:
  The “multi-chunk IO without optimization” feature is removed and made the related xfer property (H5FD_MPIO_CHUNK_MULTI_IO) go directly to “multi-chunk-io” feature.
  Also update/fix/cleanup testings (chunk collective IO and actual chunk opt mode) accordingly.
    
Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), fred (mac64-LE), Windows (32-LE cmake), cmake (jam)
2012-10-30 11:28:17 -05:00
Jonathan Kim
0aa8d4d88a [svn-r22735] Purpose:
HDFFV-8143 Provide a routine(s) for telling the user why the library broke collective data access

Description:
    Added H5Pget_mpio_no_collective_cause() function that retrive reasons why the collective I/O was broken during Read/Write IO access.
    Reasons to break collective I/O:
     - SET_INDEPENDENT
     - DATATYPE_CONVERSION
     - DATA_TRANSFORMS
     - MPIPOSIX
     - NOT_SIMPLE_OR_SCALAR_DATASPACES  (NULL Space)
     - POINT_SELECTIONS
     - NOT_CONTIGUOUS_OR_CHUNKED_DATASET  (Compact or External-Storage)
     - FILTERS  

Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)
2012-09-04 12:00:38 -05:00
Mohamad Chaarawi
b247ef2d89 [svn-r22378] removed the parallel #endif by mistake.. oops
remove an un-needed bool
2012-05-18 10:01:41 -05:00
Mohamad Chaarawi
886039ab68 [svn-r22377] make the file and memory MPI datatypes as default properties in the
DXPL so that we don't have to insert and remove them everytime we
perform collective I/O.

Test with h5committest
2012-05-18 09:51:41 -05:00
Quincey Koziol
a07c8f9247 [svn-r22287] Description:
Clean up more FUNC_ENTER/FUNC_LEAVE macros and move H5D & H5T code toward
the final design (as exemplified by the H5EA & H5FA code).

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug & parallel
2012-04-16 16:20:26 -05:00
Quincey Koziol
9c9ee2008c [svn-r21919] Description:
Refactor function name macros and simplify the FUNC_ENTER macros, to clear
away the cruft and prepare for further cleanups.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
2012-02-08 22:13:27 -05:00
Quincey Koziol
51d81cb5ef [svn-r21796] Description:
Back out r21782 while I figure out what the problem is with the change.

Tested on:
    Daily tests... :-/
2011-12-02 08:40:37 -05:00
Quincey Koziol
49652319c9 [svn-r21782] Description:
Rearrange checks for reasons why we break collective I/O back to independent
I/O into "global" and "local" sections.  We should try to minimize the checks
in the "local" section...

Tested on:
    Mac OS X/32 10.7.2 (amazon) w/parallel
    (too minor to require h5committest)
2011-11-30 15:26:18 -05:00
Quincey Koziol
3d15d9d681 [svn-r21442] Description:
Check in "actual I/O mode" feature to trunk.  Will merge back to 1.8 branch
after it bakes over the weekend.

Tested on:
    FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
    FreeBSD/64 8.2 (freedom) w/gcc4.6, w/C++ & FORTRAN, in debug mode
    Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
        w/C++ & FORTRAN, w/threadsafe, in debug mode
    Linux/64-amd64 2.6 (koala) w/Intel compilers, w/default API=1.6.x,
        w/C++ & FORTRAN, in production mode
    Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
        w/szip filter, w/threadsafe, in production mode
    Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
    Linux/64-ia64 2.6 (ember) w/Intel compilers, w/C++ & FORTRAN,
        in production mode
    Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
    Mac OS X/32 10.6.8 (amazon) in debug mode
    Mac OS X/32 10.6.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
        in production mode
2011-09-30 20:37:23 -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
Quincey Koziol
f82774c0d5 [svn-r19092] Description:
Bring "shape same" changes from LBL branch to trunk.  These changes
allow shapes that are the same, but projected into dataspaces with different
ranks to be detected correctly, and also contains code to project a dataspace
into greater/lesser number of dimensions, so the I/O can proceed in a faster
way.

	These changes also contain several bug fixes and _lots_ of code
cleanups to the MPI datatype creation code.

	Many other misc. code cleanup are included as well...

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.3 (amazon) in debug mode
        Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2010-07-19 00:05:45 -05:00
Neil Fortner
686d856802 [svn-r19006] Purpose: Improve performance of the the chunk cache
Description:
Previously, the chunk cache would, when looking for a chunk, alwaylook for the
chunk in the b-tree before checking the cache.  Reworked the functions that
look up chunks to always check the cache first and avoid the b-tree lookup if
the chunk is in cache.

Tested: jam, linew, amani (h5committest)
2010-06-15 16:21:03 -05:00
Quincey Koziol
13a6885db3 [svn-r18565] Description:
Minor whitespace and compiler warning cleanups

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (too minor to require h5committest)
2010-04-15 13:01:56 -05:00
Quincey Koziol
c243e1e134 [svn-r17148] Description:
Refactor how chunked dataset information is computed, moving it earlier and
avoiding more recomputation.

Tested on:
    FreeBSD/32 6.3 (duty) in debug mode
    FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
    Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
        in debug mode
    Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
        w/C++ & FORTRAN, in production mode
    Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
        w/szip filter, in production mode
    Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
        in production mode
    Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
    Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
    Mac OS X/32 10.5.7 (amazon) in debug mode
    Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
        in production mode
2009-07-02 17:34:20 -05:00
Quincey Koziol
f098d20ab9 [svn-r16847] Description:
Bring r16846 from revise_chunks branch back to trunk:

	Fix broken (for how long?) H5_ASSIGN_OVERFLOW macro to actually detect
overflows during assignments, along with several errors it [now] detected.

	Cleaned up a fix minor warnings and/or pieces of code also.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(h5committest not needed - multi-platform test performed on branch)
2009-04-23 13:25:16 -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
92b11988c8 [svn-r16532] Description:
Pass the chunk "user data" to H5D_chunk_unlock(), so that chunks with
an address already aren't reallocated.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
2009-03-02 15:57:18 -05:00
Neil Fortner
ef425724f7 [svn-r16523] Purpose: Fix bugs related to H5Dset_extent and fill values
Description:
In some situations it was possible for the fill value to not be written to parts
of a chunked dataset, particularly when extending and/or shrinking.  Prior to
the fix for the chunk cache (1015) these bugs would have been exceedingly rare.

Tested: jam, smirom, linew (h5committest)
2009-02-27 12:01:00 -05:00
Raymond Lu
725b4d7ddb [svn-r16465] Performance Improvement(bug #1450). When a chunk is bigger than the cache size and isn't allocated
on disk, the library still loaded it in the cache, which is redundant.  I changed it to bypass the
cache and added a test in dsets.c.

Tested on jam and smirom.
2009-02-11 13:49:17 -05:00
Quincey Koziol
9f60f016ab [svn-r15800] Description:
Bring file free space branch changes through r15795 into trunk, which
includes a fair bit of code cleanup & rearrangement along with a couple of
bug fixes also.

Tested on:
        Mac OS X/32 10.5.5 (amazon) in debug mode
        Mac OS X/32 10.5.5 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-10-06 23:17:35 -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
MuQun Yang
e7ff2aafa5 [svn-r15626] This check-in fixes a bug inside parallel HDF5 testsuite.
When enable-debug is turned on, a special macro block H5_HAVE_INSTRUMENTED_LIBRARY inside HDF5 will be executed to check if some collective chunk IO test cases are being run with the correct settings(one link, multiple chunk etc.). However,when complicated derived datatype in some mpi-io packages are not supported, the library has to switch one link IO with/without the optimization to multiple chunk IO with/without the optimization. The current testsuite doesn't know this and generates a false assertion failure message.

This check-in fix this problem by providing a second property to avoid the false faiure message.


Tested at abe(NCSA linux cluster) and kagiso.
2008-09-16 10:03:21 -05:00
Quincey Koziol
771bae8888 [svn-r15131] Description:
Finish omnibus chunked dataset I/O refactoring, to separate general
actions on chunked datasets from actions that are specific to using the v1
B-tree index.

	Cleaned up a few bugs and added some additional tests also.

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.5.2 (amazon) in debug mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
2008-06-03 14:44:12 -05:00
Quincey Koziol
22f48585bd [svn-r15015] Description:
Detect chunks that are >4GB before dataset gets created and return error
to application.

    Tweak lots of internal variables that hold the chunk size/dimensions to
use an 'uint32_t', instead of a 'size_t', so that the integer size is constant.

    Correct a number of our tests which were creating datasets with chunks
that were >4GB and add some specific tests for >4GB chunk size detection.

    Minor whitespace & other code cleanups.

Tested on:
    Mac OS X/32 10.5.2 (amazon)
    Forthcoming testing on other platforms...
2008-05-15 22:04:56 -05:00
Scot Breitenfeld
aec106e324 [svn-r14903] Undoing change committed in r14902. 2008-04-30 14:51:13 -05:00
Scot Breitenfeld
5773fd34bc [svn-r14902] Merged fortran_1_8 branch changes r14505:14901 into the trunk. New fortran wrappers added. 2008-04-30 14:23:26 -05:00
Quincey Koziol
495ca9c7bb [svn-r14860] Description:
Omnibus raw data I/O revisions, with wide-ranging changes and
refactoring, in order to prepare for implementing "fast append" feature.

	These changes remove the majority of the code duplication for raw data
I/O which has crept in over the last ten years and introduces a more object-
oriented design for operating on different types of dataset storage.

	Chunked storage no longer has it's own I/O routines, it is now handled
as either contiguous (if chunk is not pulled into the cache) or compact (if the
chunk is cached in memory).

	No bug or feature changes, at least intentionally... :-)

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.5.2 (amazon) in debug mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
2008-04-24 10:03:41 -05:00
Quincey Koziol
74c005fdb2 [svn-r14326] Description:
- Keep skip list for tracking chunks with dataset (instead of creating/
        destroying it for each I/O operation) and just delete the skip list
        nodes.
    - Avoid computations for normalizing selection offset when offset not set.
    - Avoid updating object modification time twice during dataset creation.
    - Avoid updating dataset layout message (and object modification time)
        until dataset is closed.

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.4.10 (amazon) in debug mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
2007-12-06 14:24:30 -05:00
Quincey Koziol
598a66048a [svn-r14250] Description:
- Changed name of chunk mapping structure from "fm_map" to "H5D_chunk_map_t"
    - Pushed parallel I/O specific fields into ifdef'ed sections, when building
        chunk map
    - Took out most calls to IS_H5FD_MPI macro

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.4.10 (amazon) in debug mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
2007-11-10 17:36:04 -05:00
Raymond Lu
6262a14f2e [svn-r14096] There're 3 changes in this checkin as below:
1. In H5Dwrite and H5Dread, let the data buffer point to a fake address if the application passes
     in an empty buffer.  This is mainly for MPIO programs that some processes may not have any 
     data to write or read but still participate the I/O.  This solution solves some MPI's problem
     like the ChaMPIon on tungsten which doesn't support empty buffer.
  2. The ChaMPIon on tungsten doesn't support complex derived MPI data type correctly and collective
     I/O when some processes don't have any data to write or read correctly.  Detect the compiler
     "cmpicc" in the system-specific config file and set the variables for these two cases to false.
     The PHDF5 library already has set up a way to switch collective chunked I/O to independent 
     under these two cases.
  3. A bug fix - During the work of the optimization for compound data I/O, the case for switching
     collective chunked I/O to independent I/O was leftout.  Fixed it by adding I/O caching to it in
     H5D_multi_chunk_collective_io in H5Dmpio.c.

Tested on tungsten, cobalt, and kagiso for parallel; on linew and smirom for serial.
2007-08-20 16:55:38 -05:00
Raymond Lu
7f2a3a97c3 [svn-r13997] Moved H5D_istore_lock and H5D_istore_unlock from H5D_istore_writevv and H5D_istore_readvv to
H5D_chunk_write and H5D_chunk_read to avoid frequent lock and unlock and to improve some
performance.

Tested with h5committest on THG machines.
2007-07-21 14:50:43 -05:00