Commit Graph

3995 Commits

Author SHA1 Message Date
Quincey Koziol
c581a07235 [svn-r5439] Purpose:
Code cleanup

Description:
    Change variable casts to use H5_ASSIGN_OVERFLOW, or check for overflow
    before the cast with H5_CHECK_OVERFLOW.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-05-20 08:39:57 -05:00
Pedro Vicente Nunes
e12beea624 [svn-r5437]
Purpose:
   eliminate warnings on win32
Description:
   some conversion warnings were being issued
Solution:
    added some type casts
Platforms tested:
    w2000, linux

changed the HDmemset to include a cast in win32; this was just to eliminate a compiler
warning. probably the macro can also be used in unix

#ifdef WIN32
#define HDmemset(X,C,Z)		memset((void*)(X),C,Z)
#else /* WIN32 */
#define HDmemset(X,C,Z)		memset(X,C,Z)
#endif /* WIN32 */


the list of previous warnings was
D:\disk_w\hdf5\src\H5FDstdio.c(659) : warning C4244: 'initializing' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Fcontig.c(435) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Fcontig.c(497) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Fcontig.c(915) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Fcontig.c(982) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data

D:\disk_w\hdf5\src\H5Shyper.c(912) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(995) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(1936) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(2019) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(2862) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(2864) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(2948) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(3690) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(3692) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(3776) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(5167) : warning C4244: '+=' : conversion from '__int64 ' to 'unsigned int ', possible loss of data

D:\disk_w\hdf5\src\H5Tvlen.c(371) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
2002-05-18 02:24:49 -05:00
Pedro Vicente Nunes
79dcc35309 [svn-r5436]
Purpose:
    code clean up
Description:
    removed some debugging comments regading the code warrior port
Platforms tested:
    w2000
2002-05-17 22:41:39 -05:00
Quincey Koziol
064d89ddae [svn-r5435] Purpose:
Document Code improvement below:

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).
2002-05-17 09:03:23 -05:00
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
e02ae065f6 [svn-r5430] Purpose:
Document Bug fix/Code improvement below:

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.
2002-05-17 07:54:42 -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
Binh-Minh Ribler
567c042761 [svn-r5428]
Purpose:
    New Feature - per library change

Description:
    Added the new member function getMemberIndex to classes EnumType and
    CompType to match the new C API H5Tget_member_index.  Given the name
    of a member of an enumeration or compound datatype, this new function
    queries the index of the member.

Platforms:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
2002-05-16 17:41:00 -05:00
Binh-Minh Ribler
97a2a55cf4 [svn-r5427] Purpose:
New Feature - per library change

Description:
    Added new member function DataSet::fillMemBuf for the new
    C API H5Dfill.  Quincey's description of H5Dfill is as followed:

    Added new H5Dfill() routine to fill the elements in a selection for a
    memory buffer with a fill value.  This is a user API wrapper around some
    internal routines which were needed for the fill-value modifications
    from Raymond as well as Pedro's code for reducing the size of a chunked
    dataset.

Platforms:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
2002-05-16 09:03:53 -05:00
Albert Cheng
de3af15daf [svn-r5426] Purpose:
Folded the added feature of setting MPI Info object from v1.4 to this
    branch.
Platforms tested:
    modi4
2002-05-16 08:51:48 -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
da155dfd4b [svn-r5415] Purpose:
Document Bug Fix
2002-05-14 13:06:18 -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
f2d3f450ba [svn-r5409] Purpose:
Document Performance enhancement
2002-05-13 15:22:25 -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
Albert Cheng
d07e0dd9a3 [svn-r5407] Purpose:
Bug fix
Description:
    Was not able to handle data size (file size) larger than 32bits.
    Was using long, which is only 4 bytes big in SP, thus overflowing
    into negative when trying to address 2GB or larger.
Solution:
    Changed those variables involved in file size/offset calculation
    to type off_t.  (If a certain system/compiler has off_t defined
    as 4 bytes, it can't write to file size larger than 2GB anyway.)

    Note that the lseek of SP with -D_LARGE_FILE still fails for
    offset larger than 2GB (works for 2GB).  That has to be fixed
    soon.
Platforms tested:
   burrwhite (linux 2.4) and modi4 parallel.
2002-05-13 14:55:33 -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
f2fbab6664 [svn-r5404] Purpose:
Back out change

Description:
    Back out description of VFL 'flush' change.
2002-05-13 12:55:40 -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
Elena Pourmal
dbcce6d77f [svn-r5401]
Purpose:
    Code clean-up
Description:
    Removed unused HAVE_XXXX macros from the H5f90i.h file.
Platforms tested:
    HP-UX 11.00 (kelgia) and IRIX64-6.5 (modi4)
2002-05-13 11:15:50 -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
Bill Wendling
6cb7accfeb [svn-r5397] Purpose:
Bug Fix
Description:
    Put quotes around some variables so that the shell script doesn't
    complain to us about "too many arguements" for a test.
Platforms tested:
    Linux
2002-05-10 16:06:29 -05:00
Bill Wendling
8e13c3a260 [svn-r5396] Purpose:
Bug Fix
Description:
    Placed quotes around strings which could be empty so that the shell
    script doesn't complain to us about "too many arguments for test"
    problems.
Platforms tested:
    Linux
2002-05-10 16:05:06 -05:00
Bill Wendling
0cf1b5cee2 [svn-r5395] Purpose:
Update
Description:
    Added documentation on how you can install in a different directory
    than the one you specified during configuration.
2002-05-10 15:54:20 -05:00
Quincey Koziol
d4b398e542 [svn-r5394] Purpose:
Document new VFL flush parameter.
2002-05-10 13:39:32 -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
dabf675481 [svn-r5389] Purpose:
Update release notes about rotating metadata writes.
2002-05-10 10:43:57 -05:00
Quincey Koziol
1696277a6c [svn-r5386] Purpose:
Bug Fix

Description:
    Currently, only process 0 is writing attribute data to a file.  This is
    incorrect, because the raw data for attributes is cached in memory until
    the object header is written and other processes are not able to read the
    correct attribute information.

Solution:
    Have all processes participate in writing the attribute data.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-10 10:39:44 -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
Bill Wendling
c43feb3092 [svn-r5383] Purpose:
Update
Description:
    Updated how to compile HDF5 with Intel compilers (ecc or icc).
2002-05-09 11:55:04 -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
Frank Baker
6ae92fc622 [svn-r5378]
Purpose:
    Update h5dread/write_f parameters
Description:
    fortran/h5d_FORTRAN.html
        h5dread/write_f -- in the 'reference' versions, which yesterday's
        revisions missed):
            Added new overloading to dims parameter description.
            Corrected prior dims type and noted that it is deprecated and
            will be removed in 1.6.
    fortran/h5a_FORTRAN.html
        Updated "Last modified" tag to reflect yesterday's revisions.
Platforms tested:
    IE 5
2002-05-07 17:13:53 -05:00
Albert Cheng
3a9882a2e5 [svn-r5376] Description:
Added the calculation and printing (when debug >=3) of the
    MPI_write/read statistics.
Platforms tested:
    modi4
2002-05-07 12:34:59 -05:00
Albert Cheng
c038daacec [svn-r5375] Purpose:
Changed all API to use MPI_WTIME timer.  Just to be consistent.
Platforms tested:
    modi4
2002-05-07 12:33:56 -05:00
Bill Wendling
f04b756f6f [svn-r5374] Purpose:
Name Change
Description:
    Changed the macro's name from "MILLISECOND" to "MICROSECOND" since,
    as Quincey pointed out, that's what it is ;).
Platforms tested:
    Linux
2002-05-07 11:56:34 -05:00
Albert Cheng
fc49f1463c [svn-r5373] Purpose:
Bug fix
Description:
    The system timer forgot to add previous cummulated time.
    Fixed.
Platforms tested:
    modi4
2002-05-07 11:43:32 -05:00
Frank Baker
b414cc16ac [svn-r5371]
Purpose:
    Bugfix -- Closes #702
Description:
    Commented out references to and descriptions of unimplemented
    H5S functions.  Particularly in the UG document, Dataspaces.html.
      H5Sopen            H5Slock            H5Ssubspace
      H5Scommit          H5Sselect_op       H5Ssubspace_name
      H5Sis_subspace     H5Sselect_order    H5Ssubspace_location
    Added explanatory "Note to developers" in comments near top of
    Dataspaces.html.
Platforms tested:
    IE 5
2002-05-07 11:12:40 -05:00
Quincey Koziol
470663aef6 [svn-r5369] Purpose:
Code cleanup

Description:
    Remove incorrect MPI_Barrier() call in data I/O loop.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-07 11:06:58 -05:00
Albert Cheng
3984d62ca3 [svn-r5368] Purpose:
Bug fix, feature
Description:
    Added code to time pure MPI_File_write_xxx and read_xxx routines.
    Moved the setting of the timer_g to when timer is created (new)
    and destroyed.
Platforms tested:
    modi4pp
2002-05-07 10:22:31 -05:00
Bill Wendling
74861bfaeb [svn-r5367] Purpose:
Modification
Description:
    Put some of the variables into the global space so that random
    functions can access them. (The output and timer variables which
    point to the output file and timer resp.)

    Placed the debug level 4 prints into the timer module so that it's
    easier to automatically put timer start/stop printfs for new timers
    which are created.

    Added timers for MPI Time calls (called HDF5_MPI_WRITE and
    HDF5_MPI_READ).
Platforms tested:
    Linux
2002-05-06 18:58:57 -05:00
Frank Baker
a82e8892c4 [svn-r5366]
Purpose:
    Update description of h5dread/write_f and h5aread/write_f dims parameter.
Description:
    h5dread/write_f, h5aread/write_f
        Added new overloading to dims parameter description.
        Noted that prior dims type is deprecated and will be removed in 1.6.
Platforms tested:
    IE 5
2002-05-06 15:07:55 -05:00
Elena Pourmal
3f7fdf13fe [svn-r5364]
Purpose:
    Maintenance
Description:
    Added information about Parallel Fortran Support for HP-UX 11.00 SysV
    and write/read overloaded subroutines (bug #670)
2002-05-06 13:22:50 -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
Bill Wendling
2cf0e9f882 [svn-r5348] Purpose:
Bug Fix
Description:
    There was a duplicate declaration of print_indent() in the header and
    in the source files.
Solution:
    Removed the public declaration and made the function static again.
Platforms tested:
    Arabica
2002-05-03 16:09:52 -05:00
Frank Baker
2997ad4c45 [svn-r5343]
Purpose:
    Bugfixes -- Fixes #657.
                Addresses #720 (but does not complete it).
Description:
    H5Pset_fapl_split:  Added note re checking on use of this driver,
        i.e., that H5Pget_driver returns H5FD_MULTI.
        Fixes Bug #657.
    Minor copy edits, including some addressed in Bug #720.
Platforms tested:
    IE 5
2002-05-02 16:46:52 -05:00