Commit Graph

4162 Commits

Author SHA1 Message Date
Quincey Koziol
41aa2ec073 [svn-r5562] Purpose:
Code cleanup

Description:
    Allow H5FD_free to return successfully (but ignore) freeing objects with
    size 0.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-06-10 10:31:06 -05:00
Quincey Koziol
5f2b8eee13 [svn-r5560] Purpose:
Bug Fix for bug #789

Description:
    Creating a 1-D dataset region reference caused the library to hang (go into
    an infinite loop).

Solution:
    Corrected algorithm for serializing hyperslab regions.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-06-10 10:19:19 -05:00
Bill Wendling
c6d6257ba2 [svn-r5556] Purpose:
Feature Add
Description:
    Added ability to fill the data buffer with random data.
Platforms tested:
    Linux
2002-06-07 17:23:02 -05:00
Bill Wendling
b77825d9a7 [svn-r5555] Purpose:
Feature Update
Description:
    It now writes an uncompressed version of the file out. The first
    tests didn't look all that wonderful. Here is a typical output:

        Buffer size == 1MB
            Uncompressed Write Time: 0.55s
            Uncompressed Write Throughput: 116.00MB/s
            Compressed Write Time: 8.76s
            Compressed Write Throughput: 7.31MB/s
Platforms tested:
    Linux
2002-06-07 17:06:27 -05:00
Bill Wendling
c8721abdbc [svn-r5554] Purpose:
Compress I/O Test Add
Description:
    This is the initial check-in of the compress I/O test. It will write
    out compressed buffers to a file.

    I need to implement a write of uncompressed data first for
    comparison...
Platforms tested:
    Linux
2002-06-07 16:06:10 -05:00
Quincey Koziol
ff3f6f1a67 [svn-r5551] Purpose:
Bug fix.

Description:
    Added extra check to locations where metadata and "small data" blocks were
    being returned to the file's list of free space to avoid freeing 0-sized
    blocks.  This should fix the problems in last night's daily tests.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-06-07 09:15:22 -05:00
Quincey Koziol
35c3c893e8 [svn-r5550] Purpose:
Code Improvement

Description:
    Split the metadata accumulator code into two parts: one for allowing writes
    of the accumulator buffer during reads (when the buffer is dirty and needs
    to be flushed to disk in order to hold the new metadata being read in) and
    another for only allowing writes of the buffer during writes.

    This allows the MPI-I/O VFL driver to use the metadata accumulator (but
    only during writes) and benefit from the reduced number of metadata I/O
    operations that it brings.

Platforms tested:
    IRIX64 6.5 (modi4) w/parallel
2002-06-06 22:34:21 -05:00
Quincey Koziol
01f102c2d4 [svn-r5547] Purpose:
Bug fix.

Description:
    H5Fopen call was using H5P_DEFAULT instead of file access flags

Solution:
    Changed H5P_DEFAULT to H5F_ACC_RDONLY

Platforms tested:
    IRIX64 6.5 (modi4) w/parallel
2002-06-06 14:09:58 -05:00
Quincey Koziol
b5dfb3116d [svn-r5545] Purpose:
Code cleanup

Description:
    Back out [apparently] unnecessary include of H5F package include files.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-06-06 10:43:02 -05:00
Quincey Koziol
74c3fec9f5 [svn-r5543] Purpose:
Bug fix.

Description:
    Return H5S_all_opt_possible() prototype to original position in H5Spkg.h,
    it is not related to parallel I/O.
Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-06-06 10:00:33 -05:00
Quincey Koziol
754f4780f2 [svn-r5542] Purpose:
Code cleanup/bug fix

Description:
    Unused space in the file was being "dropped on the floor" when the metadata
    or "small data" block was moved to a new location in the file and there was
    unused space in the old block.

Solution:
    Put the space left in the allocation block into the free list of space for
    the file.  This allows it to be [potentially] reused and sometimes allows
    the file to be smaller.

Platforms tested:
    Solaris 2.7 (arabica) w/FORTRAN and FreeBSD 4.5 (sleipnir) w/C++
2002-06-06 08:54:26 -05:00
Albert Cheng
7292287c89 [svn-r5539] Description:
Added the '-D v' option for "verify data correctness".
Platforms tested:
    modi4, eirene, burrwhite (all pp).
2002-06-05 23:58:29 -05:00
Quincey Koziol
b803308acd [svn-r5538] Purpose:
Code improvement.

Description:
    Added boot block and driver info block checksumming feature to the shared
    file information.  This prevents these blocks from being written out
    multiple times when they haven't changed.

    This reduces the number of I/O operations which hit the disk for my test
    program from 15 to 14 (i.e. from 393 to 14, overall).

Platforms tested:
    Solaris 2.7 (arabica) w/FORTRAN and FreeBSD 4.5 (sleipnir) w/C++
2002-06-05 13:18:56 -05:00
Quincey Koziol
6b1208407f [svn-r5536] Purpose:
New feature.

Description:
    Added a "small data" block allocation mechanism to the library, similar to
    the mechanism used for allocating metadata currently.

    See the RFC for more details:
        http://hdf.ncsa.uiuc.edu/RFC/SmallData/SmallData.html

    This reduces the number of I/O operations which hit the disk for my test
    program from 19 to 15 (i.e. from 393 to 15, overall).

Platforms tested:
    Solaris 2.7 (arabica) w/FORTRAN and FreeBSD 4.5 (sleipnir) w/C++
2002-06-05 10:23:20 -05:00
Albert Cheng
c72c322f62 [svn-r5534] Purpose:
Updated the instructions for tflops and O2K.
Platforms tested:
    eye balled.
2002-06-04 17:49:24 -05:00
Bill Wendling
12fc7df0d1 [svn-r5531] Purpose:
Feature Add
Description:
    Added support for testing only the "write" operations. Use the "-w"
    or "--write-only" flags for this.
Platforms tested:
    Linux (parallel) & Modi4 (parallel)
2002-06-04 16:31:35 -05:00
Bill Wendling
dd51aae3ca [svn-r5530] Purpose:
Code Cleanup
Description:
    Removed some compiler warnings.
Solution:
    In a few cases, NULL was being returned when a FAIL was supposed to
    be returned instead. There were some header files which needed to be
    included in a few of the sources. A couple of if-then statements had
    assignments in the conditional part. The compiler warned that they
    should have extra "()"s around them. Made the code check the values
    instead.
Platforms tested:
    Linux (parallel) Modi4 (parallel)
2002-06-04 16:29:05 -05:00
Quincey Koziol
56e4d8fb0c [svn-r5529] Purpose:
Code improvement

Description:
    Now that the metadata accumulator is working correctly, the buffer size
    tends to get rather large and stay there.

Solution:
    Put a throttle on the accumulator buffer to reduce its size back down when
    it isn't needed.

Platforms tested:
    Solaris 2.7 (arabica) w/FORTRAN & FreeBSD 4.5 (sleipnir) w/C++
2002-06-04 12:27:13 -05:00
Bill Wendling
945e417faa [svn-r5526] Purpose:
Bug Fix
Description:
    Still was calling the POSIX stuff "Raw".
Solution:
    Changed name to POSIX instead of Raw...
Platforms tested:
    Linux
2002-06-04 11:54:46 -05:00
Elena Pourmal
6eb49711cb [svn-r5525]
Purpose:
    Bug fix (#699), fix provided by a user, approved by Quincey
Description:
    When a scalar dataspace was written to the file and then
    subsequently queried with the H5Sget_simple_extent_type function,
    type was reported H5S_SIMPLE instead of H5S_SCALAR.
Solution:
    Applied a fix (see bug report 699) and modified out test program
    to exercise the case.
Platforms tested:
    Solaris 2.7 and Linux 2.2.18
2002-06-04 11:23:22 -05:00
Elena Pourmal
a7f08bc1bb [svn-r5524]
Purpose:
    Bug fix (#699), fix provided by a user, approved by Quincey
Description:
    When a scalar dataspace was written to the file and then
    subsequently queried with the H5Sget_simple_extent_type function,
    type was reported H5S_SIMPLE instead of H5S_SCALAR.
Solution:
    Applied a fix (see bug report 699)
Platforms tested:
    Solaris 2.7 and Linux 2.2.18
2002-06-04 11:22:19 -05:00
Quincey Koziol
ba26e8f2ad [svn-r5521] Purpose:
Code improvement

Description:
    The metadata aggregation code in the library was not terribly smart about
    extending contiguous regions of metadata in the file and would not extend
    them as far as possible.  This causes space in the file to be wasted, also.

Solution:
    Be smarter about extending the space used in the file for metadata by
    checking whether new metadata blocks allocated in the file are at the end
    of the current metadata aggregation region and append them to the metadata
    region if so.  This has the nice side benefit of reducing the number of
    bytes we waste in the file and reducing the size of the file by a small
    amount in some cases.

    This reduces the number of I/O operations which hit the disk for my test
    program from 53 to 19 (i.e. from 393 to 19, overall).

Platforms tested:
    Solaris 2.7 (arabica) w/FORTRAN and FreeBSD 4.5 (sleipnir) w/C++
2002-06-04 08:37:51 -05:00
Quincey Koziol
8ae371469a [svn-r5519] Purpose:
Bug Fix

Description:
    The "dirty" flag for symbol table entries and symbol table nodes was not
    being cleared when they were flushed to the file, causing lots of extra
    metadata I/O.

Solution:
    Reset the symbol table entry & nodes' flags when thy are flushed to disk.

    This reduces the number of I/O operations which hit the disk for my test
    program from 83 to 53 (i.e. from 393 to 53, overall).

Platforms tested:
    Solaris 2.7 (arabica) w/FORTRAN & FreeBSD 4.5 (sleipnir) w/C++
2002-06-03 21:20:07 -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
Bill Wendling
0cbb77f34f [svn-r5515] Purpose:
Bug Fix
Description:
    There was an error in the way it was determining if there were any
    reads to report.
Solution:
    Wrote a subroutine which would determine if the reads are defined in
    the structure before trying to print them out.
Platforms tested:
    Linux
2002-06-03 15:39:51 -05:00
Bill Wendling
88f9ee489a [svn-r5512] Purpose:
Update
Description:
    Added the "perform/gen_report.pl" file.
2002-06-03 14:57:43 -05:00
Bill Wendling
10b5e1dde4 [svn-r5511] Purpose:
Add Report Generator
Description:
    This is a generator for ASCII and Excel(tm)(c) reports generated by
    the pio_perf benchmark we run. There are instructions at the top of
    the file on how to run the program and the input format it expects,
    etc.
Platforms tested:
    Linux
2002-06-03 14:57:04 -05:00
Quincey Koziol
d74e0290ba [svn-r5510] Purpose:
Code cleanup/bug fix

Description:
    The "metadata accumulator" cache in the library (which is designed to catch
    small metadata writes/reads and bundle them together into larger I/O
    buffers) was incorrectly detecting the important case of metadata pieces
    being written sequentially to the file, adjoining but not overlapping.

    Additionally, the metadata accumulator was not being used to cache data
    read in from disk, only caching writes.

Solution:
    Fix accumulator to correctly cache adjoining metadata writes and also to
    cache metadata read from disk.

    Between these two fixes, the number of I/O requests which resulted in actual
    reads/writes to the filesystem dropped from 393 requests to 82 for the
    particular test I was using. :-)

Platforms tested:
    Solaris 2.7 (arabica) w/FORTRAN & FreeBSD 4.5 (sleipnir) w/C++
2002-06-03 14:11:43 -05:00
Elena Pourmal
373d8b0edb [svn-r5508]
Purpose:
    Maintenance
Description:
    User reported a spelling error (bug 686).
Solution:
    Fixed spelling
Platforms tested:
    N/A
2002-06-03 10:53:00 -05:00
HDF Admin
ce3122b69a [svn-r5506] Snapshot version 1.5 release 29 2002-06-01 23:11:23 -05:00
Albert Cheng
3ccff1357f [svn-r5503] Purpose:
Features
Description:
    Added a few macros to print rank and size of MPI_COMM_WORLD in
    a unifed style.
Platforms tested:
    modi4, eirene, burrwhite
2002-06-01 18:01:48 -05:00
Quincey Koziol
44a72a6777 [svn-r5502] Purpose:
Test Bug Fix

Description:
    Under certain [obscure] circumstances, an object header would get paged out
    of the metadata cache, and when it was accessed again and brought back into
    the cache, and immediately had additional metadata added to it (an
    attribute, usually, or perhaps adding an object to a group), and needed to
    be extended with a continuation message, but there was no room in any
    existing object header chunks for the continuation message and an existing
    object header message needed to be moved to the new object header chunk (I
    told you it was obscure :-), the object header message moved to the new
    chunk (not the new metadata being added) would get corrupted. *whew* :-)

Solution:
    Actually copy the "raw" object header message information of the object
    header message being moved to the new chunk, instead of relying on the
    "native" object header message information being re-encoded when the object
    header is flushed.  This is because when an object header is paged out of
    the metadata cache and subsequently brought back in, the "native"
    information pointer in memory is reset to NULL and only the "raw"
    information exists.

    [Actually, this additional testing doesn't trigger the bug, which needs
    _lots_ of objects to be created and accessed, but it does execise the
    object header continuation code more than other tests in the library.]

Platforms tested:
    Solaris 2.7 (arabica) & FreeBSD 4.5 (sleipnir)
2002-05-31 22:11:34 -05:00
Quincey Koziol
8249ec87a2 [svn-r5501] Purpose:
Code Bug Fix

Description:
    Under certain [obscure] circumstances, an object header would get paged out
    of the metadata cache, and when it was accessed again and brought back into
    the cache, and immediately had additional metadata added to it (an
    attribute, usually, or perhaps adding an object to a group), and needed to
    be extended with a continuation message, but there was no room in any
    existing object header chunks for the continuation message and an existing
    object header message needed to be moved to the new object header chunk (I
    told you it was obscure :-), the object header message moved to the new
    chunk (not the new metadata being added) would get corrupted. *whew* :-)

Solution:
    Actually copy the "raw" object header message information of the object
    header message being moved to the new chunk, instead of relying on the
    "native" object header message information being re-encoded when the object
    header is flushed.  This is because when an object header is paged out of
    the metadata cache and subsequently brought back in, the "native"
    information pointer in memory is reset to NULL and only the "raw"
    information exists.

Platforms tested:
    Solaris 2.7 (arabica) & FreeBSD 4.5 (sleipnir)
2002-05-31 22:10:40 -05:00
Quincey Koziol
3d8696ae55 [svn-r5500] Purpose:
Document Bug Fix

Description:
    Under certain [obscure] circumstances, an object header would get paged out
    of the metadata cache, and when it was accessed again and brought back into
    the cache, and immediately had additional metadata added to it (an
    attribute, usually, or perhaps adding an object to a group), and needed to
    be extended with a continuation message, but there was no room in any
    existing object header chunks for the continuation message and an existing
    object header message needed to be moved to the new object header chunk (I
    told you it was obscure :-), the object header message moved to the new
    chunk (not the new metadata being added) would get corrupted. *whew* :-)

Solution:
    Actually copy the "raw" object header message information of the object
    header message being moved to the new chunk, instead of relying on the
    "native" object header message information being re-encoded when the object
    header is flushed.  This is because when an object header is paged out of
    the metadata cache and subsequently brought back in, the "native"
    information pointer in memory is reset to NULL and only the "raw"
    information exists.

Platforms tested:
    Solaris 2.7 (arabica) & FreeBSD 4.5 (sleipnir)
2002-05-31 22:09:59 -05:00
Bill Wendling
dfe2b45ee1 [svn-r5495] Purpose:
Bug Fix
Description:
    C++ uses the "off_t" type for external files as well. I'm assuming
    that there's going to be a problem with 4 byte off_ts and 8 byte
    off_ts in the C++ code as well. I compiled everything on Linux and it
    worked, but I don't think we have a check for this bug in the library
    yet...
Platforms tested:
    Linux
2002-05-31 17:25:37 -05:00
Elena Pourmal
ae818ca9df [svn-r5492]
Purpose:
    Code clean up.
Description:
    Many F90 compilers were not happy about character*(*) declarations.
Solution:
    Used F90 character(len=*) declarations.
Platforms tested:
    Solaris 2.7 and Linux 2.4
2002-05-31 15:11:54 -05:00
Bill Wendling
4a3fa29c25 [svn-r5491] Purpose:
Feature Enhancement
Description:
    We can now set the MPI_Info object to more than one key/value
    pairing. By setting the HDF5_MPI_INFO environment variable to a
    semicolon separated list of "key=value" pairs, we can set the
    MPI_Info variable to them.
Platforms tested:
    Linux
2002-05-31 13:43:22 -05:00
Elena Pourmal
f4d1614943 [svn-r5490] Purpose:
Code cleanup
Description:
    While working on the "External test" failure I restructured and
    cleaned up some C stub code.
Platforms tested:
    dangermouse (Linux 2.4)
2002-05-31 09:36:35 -05:00
Bill Wendling
96f0b001a0 [svn-r5488] Purpose:
Bug Fix
Description:
    On Linux 2.4 kernel, we need to check for Linux LFS support. There
    was a failure in the Fortran code when we tried to pass a 4 byte off_t
    variable to a function which expected an 8 byte off_t. This is due to
    there being no check for the LFS support in the Fortran code.
Solution:
    Added the check for Linux LFS support.
Platforms tested:
    Elena will test on Linux platform...
2002-05-30 13:15:44 -05:00
Quincey Koziol
685821526f [svn-r5487] Purpose:
Bug fix

Description:
    H5Ewalk_cb was being called from a C++ API, when it really is an
    internal routine to the H5E interface.

Solution:
    Removed C++ API wrapper for it.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-05-30 07:42:55 -05:00
Albert Cheng
be18b5da13 [svn-r5486] Purpose:
Code cleanup and new feature.
Description:
    Cleaned out some old debug print statments.
    Added option -B for interleaved I/O block size.
    (Just parsing and sanity check is done.  Real I/O implementation
    is not done yet.)
Platforms tested:
    eirene(pp)
2002-05-30 03:46:59 -05:00
Bill Wendling
9fcb8dd010 [svn-r5485] Purpose:
Removal of bad code
Description:
    Albert came up with a better way of determining which performance
    tests to run. I removed the broken way I did them...
Platforms tested:
    Linux-pp
2002-05-29 18:31:12 -05:00
Raymond Lu
1bf7cb7af1 [svn-r5484]
Purpose:
    Bug Fixing
Description:
    In H5FD_family_write and H5FD_family_read, size_t is checked against
    hsize_t for overflow, which fails on IA32 architecture machine supporting
    large files.
Solution:
    Use temporary variable which won't pass the limit of size_t.
Platforms tested:
    Linux 2.4(platinum) and IRIX64 6.5(modi4)
2002-05-29 16:42:00 -05:00
Albert Cheng
02350ea835 [svn-r5483] Description:
Show IO API types selected. (Changed the default setting algorithm
    slightly.)
Platforms tested:
    eirene(pp)
2002-05-29 15:48:12 -05:00
Albert Cheng
770c707da1 [svn-r5481] Description:
Renamed pio_info_g as h5_io_info_g to better reflect its
    general purpose.
Platforms tested:
    eirene(pp)
2002-05-29 13:40:29 -05:00
Albert Cheng
f1ce8aa946 [svn-r5477] Purpose:
updated the Dependencies file
Platforms tested:
    no test.
2002-05-29 12:52:18 -05:00
Albert Cheng
ca46f7a6d5 [svn-r5475] Purpose:
Sync with changes Kent made to v1.4.
    still need to sync changes here back to v.14
Platforms tested:
    eirene(pp)
2002-05-29 12:14:39 -05:00
Albert Cheng
1ebc181088 [svn-r5472] Purpose:
bug fix
Description:
    pio_info_g has been moved to the test/libh5test.a but the
    pio_* source files still have the old definition and declaration.
    Some compilers hated the duplcation.
Solution:
    Replaced the duplication with #include h5test.h and added test/ to
    the include search path too.
Platforms tested:
    eirene, modi4.
2002-05-29 11:18:33 -05:00
Quincey Koziol
e69e970a1c [svn-r5471] Purpose:
Code cleanup

Description:
    Broke the FUNC_ENTER macro into several macros, with more specialized
    uses (which followup mail will describe).  This was designed to move
    most/all of the checks which could be done at compile time to that point,
    instead of needlessly performing them (over & over :-) at run-time.
    This reduces the library's size (and thus staticly linked binaries) and
    has a minor speedup effect also.

Platforms tested:
    IRIX64 6.5 (modi4) with parallel & FORTRAN enabled, and additional testing
    on FreeBSD and Solaris immediately after the checkin.
2002-05-29 10:07:55 -05:00
Bill Wendling
0ba943194e [svn-r5470] Purpose:
Update
Description:
    Only print out the parameters for a run if we're in debug mode one
    and the 0'th process or if we're in debug mode > 0.
Platforms tested:
    Linux
2002-05-28 17:00:26 -05:00