Commit Graph

6681 Commits

Author SHA1 Message Date
Quincey Koziol
e1e68de8b5 [svn-r5434] Purpose:
Code improvement.

Description:
    Propagated the "fill time" property into the parallel chunk allocation
    routine, allowing it to avoid writing fill values to each new chunk
    allocated.  This improves the performance of chunked datasets in parallel
    I/O to be on par with contiguous datasets again (on modi4).

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-17 09:03:00 -05:00
Quincey Koziol
81137c69e0 [svn-r5433] Purpose:
Code cleanup

Description:
    Cleaned up the function header comment for H5Pset_fill_time.
2002-05-17 08:57:53 -05:00
Quincey Koziol
a6b4cba798 [svn-r5429] Purpose:
Bug fix/Code improvement.

Description:
    Currently, the chunk data allocation routine invoked to allocate space for
    the entire dataset is inefficient.  It writes out each chunk in the dataset,
    whether it is already allocated or not.  Additionally, this happens not
    only when it is created, but also anytime it is opened for writing, or the
    dataset is extended.  Worse, there's too much parallel I/O syncronization,
    which slows things down even more.

Solution:
    Only attempt to write out chunks that don't already exist.  Additionally,
    share the I/O writing between all the nodes, instead of writing everything
    with process 0.  Then, only block with MPI_Barrier if chunks were actually
    created.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-17 07:53:46 -05:00
Albert Cheng
19650b0460 [svn-r5422] Description:
Corrected typos in the FUNC_ENTER macros of H5FD_sec2_flush and
    H5FD_log_flush.
Platforms tested:
    modi4 (just tested it compiled fine.)
2002-05-14 18:04:29 -05:00
Quincey Koziol
2e2a1d8e31 [svn-r5419] Purpose:
Bug fix.

Description:
    Added barrier to flush routine to prevent race condition where file could
    be truncated.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-14 15:28:37 -05:00
Quincey Koziol
390209e72e [svn-r5418] Purpose:
Code cleanup/Performance enhancement

Description:
    The code to extend the file size in H5FD_mpio_flush is getting run even when
    the file size doesn't change.  Also, it's sort of sidestepping MPI-I/O when
    extending the file, instead of using MPI-I/O features to set the file's size.

Solution:
    Only extend the file's size when the allocated size has increased.  Also
    use MPI_File_set_size() to change the file's size.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-14 15:15:12 -05:00
Quincey Koziol
309738c7b0 [svn-r5414] Purpose:
Bug Fix

Description:
    When H5Freopen is called, the file to reopen's 'intent' (read/write
    permissions, etc) is not being copied to the new file's 'intent'
    information.

Solution:
    Copy it. :-)

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-14 13:05:43 -05:00
Quincey Koziol
d7b3f5d35e [svn-r5412] Purpose:
Bug fix

Description:
    Calling MPI_Get_count needs to be done with the same MPI type as was used
    for the transfer and we are always using MPI_BYTE, even when a different
    MPI type was used for the transfer.

Solution:
    Only query MPI_Get_count with MPI_BYTE when we really used MPI_BYTE for the
    transfer.  Wait for later to query MPI_Get_count with other MPI types.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-14 10:08:10 -05:00
Quincey Koziol
c5a9d502a3 [svn-r5408] Purpose:
Performance enhancement

Description:
    Doing an MPI_File_sync() just before a file is closed causing a large
    performance loss.

Solution:
    Add flag to MPI file driver to avoid performance the MPI_File_sync() when
    the flag is set before a call to H5F_flush().

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-13 15:21:59 -05:00
Quincey Koziol
4793f81ae1 [svn-r5406] Purpose:
Code cleanup

Description:
    Restructure H5F_close code to use just one H5F_flush call.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-13 14:40:51 -05:00
Quincey Koziol
14b00edf0a [svn-r5403] Purpose:
Back out changes.

Description:
    Back out changes to VFL 'flush' API function, pending review.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-13 12:48:07 -05:00
Quincey Koziol
9ed006d12f [svn-r5399] Purpose:
Bug Fix

Description:
    Missed adding the 'closing' parameter to one 'flush' function.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-05-11 12:06:20 -05:00
Quincey Koziol
084b35362b [svn-r5393] Purpose:
New Feature

Description:
    The VFL flush function is called immediately before a file is closed.
    This can cause duplicate syncronization actions to occur, if the VFL
    close function also performs them.

Solution:
    Added 'closing' parameter to VFL 'flush' operation.  This allows the VFL
    flush function to bypass operations that will be duplicated within the VFL
    close function.

    Additionally, use the 'closing' parameter to bypass calls to MPI_File_sync()
    when set.  Since MPI_File_close() also syncronizes the file, this avoids
    the terrible performance hit taken when calling MPI_File_sync() as the file
    is closing.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-10 13:38:10 -05:00
Quincey Koziol
9815305745 [svn-r5390] Purpose:
Code cleanup

Description:
    The parallel I/O file driver is optimized to only write metadata with one
    process (and broadcast the results to the other processes).  This is
    currently enabled by a separate call to H5FD_mpio_tas_allsame() before
    each metadata write to the file.  This can easily lead to problems where
    the prelude function call is omitted before the actual write code or, in
    a threaded environment, lead to race condititions where the value set is
    reset before being used.

Solution:
    Since we only want to write metadata from one process, key off of the 'type'
    parameter (which has information about whether the data being written it
    metadata or raw data) to H5FD_mpio_write() as the method for determining
    whether to only write from one process or not.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-10 12:11:06 -05:00
Quincey Koziol
fcdc05f307 [svn-r5385] Purpose:
New Feature

Description:
    Currently, only process 0 writes metadata to disk, leading to a potential
    performance bottleneck as the other processors wait for it to catch up.

Solution:
    Rotate the metadata responsibilities among all processes, speading out the
    work.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-10 10:37:48 -05:00
Quincey Koziol
69cf1dd230 [svn-r5381] Purpose:
Small code cleanup/improvement

Description:
    Query the MPI rank only once and store it in the file structure for each
    process.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-09 07:53:29 -05:00
MuQun Yang
aa305b466b [svn-r5358]
Purpose:
bug fix
Description:
In H5TB.c, previously use an unsigned variable to represent address difference that is maybe a negative value.
This will cause a potential bug in the future when this section of code is run.
Solution:
use H5F_address_cmp macro to compare two addresses.
Platforms tested:
linux 2.2.18
2002-05-06 11:03:55 -05:00
Albert Cheng
3b36f55715 [svn-r5342] Description:
Removed unused code that is related to inline issue.
    hdf5 C source now uses H5_inline for the non-standard
    inline feature.  No need to undefine/redefine the symbol
    inline itself.
Platforms tested:
    eirene.
2002-05-02 16:44:46 -05:00
Quincey Koziol
eec781a081 [svn-r5328] Purpose:
Code cleanup

Description:
    Remove an extraneous data structure for tracking the location of a
    hyperslab iterator when walking through regular hyperslab selections.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-05-02 14:20:17 -05:00
MuQun Yang
7971d2873b [svn-r5325]
Purpose:
   minor bugs fixed
Description:
    Typos in H5Fpkg.h and H5TB.c
Solution:
Platforms tested:
linux 2.2.18
2002-05-02 13:05:11 -05:00
Pedro Vicente Nunes
bcc1b57287 [svn-r5324]
Purpose:
    updated some comments regarding Code Warrior , removed other debugging comments
Platforms tested:
    w2000
2002-05-02 09:50:50 -05:00
Quincey Koziol
92527f751f [svn-r5312] Purpose:
Bug Fix

Description:
    Add TRACE8 and TRACE9 macros

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-05-01 10:35:06 -05:00
Quincey Koziol
6a5008e313 [svn-r5310] Purpose:
Code cleanup

Description:
    Update the API tracing information

Platforms tested:
    Linux 2.2 (eirene) with gcc 2.95.2 and Solaris 2.6 (baldric) with gcc 2.8.1
2002-05-01 10:15:30 -05:00
Quincey Koziol
214aa4a367 [svn-r5308] Purpose:
Update API tracing information
Platforms tested:
    Linux 2.2 (eirene)
2002-05-01 10:03:12 -05:00
MuQun Yang
d9f4d7378c [svn-r5295]
Purpose:
    turn on daylight feature on windows
Description:
    currently we have to hard code daylight feature of windows to make it pass mtime test.
Solution:
Platforms tested:
linux 2.2.18
2002-04-30 13:25:44 -05:00
Quincey Koziol
fb6a11c014 [svn-r5289] Purpose:
Bug Fix

Description:
    Correct coordinates were not computed for iteration through irregular
    hyperslab selection (although the points in the buffer that were selected
    were correct).

Solution:
    Add another array to track selection offset adjusted coordinates in the
    selection.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-30 09:44:46 -05:00
Quincey Koziol
a88d81f4ba [svn-r5286] Purpose:
Bug Fix

Description:
    Selection offsets were not being used correctly when iterating through
    all hyperslabs selections and point selections.

Solution:
    Use the selection offset appropriately.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-29 15:27:31 -05:00
Albert Cheng
73683e4380 [svn-r5278] Purpose:
Migrate from configure macros of XYZ_ABC to H5_XYZ_ABC
Description:
    configure generates many macros definitions on the fly and
    were stored in src/H5config.h which is included by H5public.h.
    But other software that uses hdf5 may also run their own configure.
    There can be a clash in macro name space.  We decided awhile ago
    to prepend all generated macros with "H5_" to avoid conflicts.
    The process has started and this commit completes it (at least attempt
    to).
Solution:
    Many macros symbols (e.g. SIZEOF_xxx and HAVE_xxx were changed to
    H5_SIZEOF_xxx and H5_HAVE_xxx).  Then H5private.h no longer includes
    H5config.h.  This cuts H5config.h away from HDF5 source code.
Pending issues:
    The module of fortran and pablo are to be resolved in a different
    commit.
Platforms tested:
    eirene (parallel), arabica (solaris 7 --enable-fortran, --enable-cxx)
2002-04-28 03:34:17 -05:00
HDF Admin
eb09629a45 [svn-r5275] Snapshot version 1.5 release 27 2002-04-27 04:30:52 -05:00
Raymond Lu
94f11385a6 [svn-r5273]
Purpose:
    New feature
Description:
    Allow H5Glink and H5Gmove to handle links across different locations.
Solution:
    Added H5Glink2 and H5Gmove2 functions with new parameter of destination
    location.
Platforms tested:
    Linux 2.2(eirene)
2002-04-26 15:34:46 -05:00
Quincey Koziol
124979bfc2 [svn-r5272] Purpose:
Bug fix

Description:
    Move iterator initialization in H5D_read & H5D_write before any errors can
    occur.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-26 10:44:08 -05:00
Quincey Koziol
80043b04c0 [svn-r5271] Purpose:
Bug Fix.

Description:
    When the fill value for a dataset is not set, the size is set to zero,
    causing problems with filling unused areas in previously defined chunks
    (i.e. when the dataset shrinks in size)

Solution:
    Use the size of the elements in the dataset directly, instead of relying on
    the size of the fill value (which must be the same size).

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-26 07:38:50 -05:00
Quincey Koziol
53d0c6b050 [svn-r5261] Purpose:
Code cleanup

Description:
    Remove more debugging printf's that were ifdef'd out.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-25 13:29:27 -05:00
Quincey Koziol
d33f7d93a3 [svn-r5259] Purpose:
Code cleanup

Description:
    Previously, the I/O pipeline (pline), external file list (efl) and fill-
    value (fill) structs were passed down the raw data function call chain,
    even into and/or through functions which didn't use them.  Since all three
    of these pieces of information are available from the dataset creation
    property list, just pass the dataset creation property list down the
    function call chain and query for the information needed in a particular
    function.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-25 12:56:56 -05:00
Albert Cheng
112fb8d45c [svn-r5257] Purpose:
Bug fix
Description:
    $(LT_RUN) was used to execute ./H5detect in src/Makefile.in.
    $RUNTEST was set to $(LT_RUN) which was used to execute sequential
    executable.  $(LT_RUN) is "../libtool --mode=execute".  But libtool
    invokes some commands that are not supported in the Tflops machine.
    That caused failures during the build and check processes.
Solution:
    Upon investigation, there does not seem to be need to use $(LT_RUN)
    any more.  The "libtool --mode=link" now generates a "fake" executable
    that is actually a command-script file that can regenerate the real
    executable with dynamic libraries hooks setup properly.
    Undo all those $LT_RUN substitute and let $RUNSERIAL execute those
    sequential executables.
Platforms tested:
    Eirene(serial), modi4(parallel)
2002-04-25 09:48:52 -05:00
Quincey Koziol
5c6f86d9aa [svn-r5255] Purpose:
Code cleanup

Description:
    Reduce gratuitous differences between H5D_write and H5D_read and also
    remove distracting debugging printf's that were ifdef'd out.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-25 08:52:03 -05:00
Quincey Koziol
58b570935b [svn-r5254] Purpose:
Code tweak.

Description:
    Allow the 'fill' parameter of H5S_select_fill to be NULL and allocate a
    temporary buffer for it, if so.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-25 08:15:22 -05:00
MuQun Yang
6030317e1e [svn-r5244]
Purpose:
     update macro HDstat
Description:
    The original defination of HDstat only defines HDstat as stat.
    the file size defined at struct stat is int32,
    However for files greater than 4G(or 2G)file, lookup of file size will
    fail on windows when using stat. Add a macro for windows,define HDstat
    as istat64.
    This fix is the same as HDfstat macro.
Solution:
Platforms tested:
linux 2.2.18
2002-04-24 09:52:36 -05:00
Quincey Koziol
f99a412057 [svn-r5230] Purpose:
Code cleanup

Description:
    Clean up the H5B_iterate code to not have a single hard-wired iterator for
    each interface which uses a B-tree, instead accept a function pointer which
    determines the callback function.  This allows additional iterator
    callbacks to be defined without requiring additional H5B functions to be
    created.

    In that spirit, remove the H5B_prune_by_extent call and convert the
    H5F_istore callback routine for it into a callback routine for H5B_iterate.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-23 11:01:43 -05:00
Quincey Koziol
e5fc40662c [svn-r5219] Purpose:
Code cleanup

Description:
    Clean up warnings from gcc 3.1

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-22 12:48:24 -05:00
HDF Admin
81912c99e7 [svn-r5213] Snapshot version 1.5 release 26 2002-04-20 04:43:19 -05:00
Albert Cheng
f5d5e9e2ff [svn-r5205] Purpose:
Code cleanup
Description:
    Platform dependent code related to the struct stat and fstat
    calls polluted source codes.  Hard to maintain.
Solution:
    Platform dependent code are moved to H5private.h and then internal
    code can #include H5private.h.  Repeat those macro definition for
    the stdio and multi drivers since they area examples for writing
    a virtual file driver.  They must not use any internal code.
Platforms tested:
    eirene (parallel), modi4 (serial including gass driver.)
2002-04-19 02:20:41 -05:00
Quincey Koziol
40117dd384 [svn-r5203] Purpose:
Code cleanup

Description:
    Re-indented new code to match coding style of rest of library.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-18 15:10:05 -05:00
Quincey Koziol
fa3c25fbf0 [svn-r5202] Purpose:
Code cleanup

Description:
    Update 'indent' flags for library to include some flags in later versions
    of GNU indent.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-18 15:08:24 -05:00
Quincey Koziol
ef9c40754b [svn-r5200] Purpose:
Code Cleanup

Description:
    Clean up compiler warnings from the last bunch of checkins

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-18 09:05:38 -05:00
HDF Admin
139af5a517 [svn-r5199] Snapshot version 1.5 release 25 2002-04-18 08:54:09 -05:00
Quincey Koziol
6a0ecf7366 [svn-r5198] Purpose:
Code Cleanup

Description:
    Remove "knowledge" about external file storage from H5D_init_storage and
    call H5F_seq_write instead, which handles things correctly.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-18 08:34:20 -05:00
Quincey Koziol
2694368b66 [svn-r5196] Purpose:
Code cleanup

Description:
    Fix incorrect include from <H5Sprivate.h> to "H5Sprivate.h"

Platforms tested:
    Just eyeballed it.
2002-04-17 14:02:12 -05:00
Quincey Koziol
4433c85766 [svn-r5195] Purpose:
Code cleanup

Description:
    Got rid of the "H5T_BKG_TEMP" setting that was used internally to the
    library, since temporary background buffers are now handled by the
    individual conversion routines instead of in a global background buffer.

    No APIs were changed or affected by this.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-17 13:49:49 -05:00
Quincey Koziol
a9cd833cc8 [svn-r5192] Purpose:
Code cleanup

Description:
    Move the H5T_bkg_t structure from H5Fpublic.h to H5Tpublic.h

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-17 12:03:19 -05:00