718 Commits

Author SHA1 Message Date
HDF Admin
dc71e191ed [svn-r6267] Snapshot version 1.5 release 45 2003-01-11 07:13:40 -05:00
Quincey Koziol
9a433b99a5 [svn-r6252] Purpose:
Lots of performance improvements & a couple new internal API interfaces.

Description:
    Performance Improvements:
        - Cached file offset & length sizes in shared file struct, to avoid
            constantly looking them up in the FCPL.
        - Generic property improvements:
            - Added "revision" number to generic property classes to speed
                up comparisons.
            - Changed method of storing properties from using a hash-table
                to the TBBT routines in the library.
            - Share the propery names between classes and the lists derived
                from them.
            - Removed redundant 'def_value' buffer from each property.
            - Switching code to use a "copy on write" strategy for
                properties in each list, where the properties in each list
                are shared with the properties in the class, until a
                property's value is changed in a list.
        - Fixed error in layout code which was allocating too many buffers.
        - Redefined public macros of the form (H5open()/H5check, <variable>)
            internally to only be (<variable>), avoiding innumerable useless
            calls to H5open() and H5check_version().
        - Reuse already zeroed buffers in H5F_contig_fill instead of
            constantly re-zeroing them.
        - Don't write fill values if writing entire dataset.
        - Use gettimeofday() system call instead of time() system when
            checking the modification time of a dataset.
        - Added reference counted string API and use it for tracking the
            names of objects opening in a file (for the ID->name code).
        - Removed redundant H5P_get() calls in B-tree routines.
        - Redefine H5T datatype macros internally to the library, to avoid
            calling H5check redundantly.
        - Keep dataspace information for dataset locally instead of reading
            from disk each time.  Added new module to track open objects
            in a file, to allow this (which will be useful eventually for
            some FPH5 metadata caching issues).
        - Remove H5AC_find macro which was inlining metadata cache lookups,
            and call function instead.
        - Remove redundant memset() calls from H5G_namei() routine.
        - Remove redundant checking of object type when locating objects
            in metadata cache and rely on the address only.
        - Create default dataset object to use when default dataset creation
            property list is used to create datasets, bypassing querying
            for all the property list values.
        - Use default I/O vector size when performing raw data with the
            default dataset transfer property list, instead of querying for
            I/O vector size.
        - Remove H5P_DEFAULT internally to the library, replacing it with
            more specific default property list based on the type of
            property list needed.
        - Remove redundant memset() calls in object header message (H5O*)
            routines.
        - Remove redunant memset() calls in data I/O routines.
        - Split free-list allocation routines into malloc() and calloc()-
            like routines, instead of one combined routine.
        - Remove lots of indirection in H5O*() routines.
        - Simplify metadata cache entry comparison routine (used when
            flushing entire cache out).
        - Only enable metadata cache statistics when H5AC_DEBUG is turned
            on, instead of always tracking them.
        - Simplify address comparison macro (H5F_addr_eq).
        - Remove redundant metadata cache entry protections during dataset
            creation by protecting the object header once and making all
            the modifications necessary for the dataset creation before
            unprotecting it.
        - Reduce # of "number of element in extent" computations performed
            by computing and storing the value during dataspace creation.
        - Simplify checking for group location's file information, when file
            has not been involving in file-mounting operations.
        - Use binary encoding for modification time, instead of ASCII.
        - Hoist H5HL_peek calls (to get information in a local heap)
            out of loops in many group routine.
        - Use static variable for iterators of selections, instead of
            dynamically allocation them each time.
        - Lookup & insert new entries in one step, avoiding traversing
            group's B-tree twice.
        - Fixed memory leak in H5Gget_objname_idx() routine (tangential to
            performance improvements, but fixed along the way).
        - Use free-list for reference counted strings.
        - Don't bother copying object names into cached group entries,
            since they are re-created when an object is opened.

        The benchmark I used to measure these results created several thousand
        small (2K) datasets in a file and wrote out the data for them.  This is
        Elena's "regular.c" benchmark.

        These changes resulted in approximately ~4.3x speedup of the
        development branch when compared to the previous code in the
        development branch and ~1.4x speedup compared to the release
        branch.

        Additionally, these changes reduce the total memory used (code and
        data) by the development branch by ~800KB, bringing the development
        branch back into the same ballpark as the release branch.

        I'll send out a more detailed description of the benchmark results
        as a followup note.

    New internal API routines:
        Added "reference counted strings" API for tracking strings that get
            used by multiple owners without duplicating the strings.
        Added "ternary search tree" API for text->object mappings.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    Other platforms/configurations tested?
        FreeBSD 4.7 (sleipnir) serial & parallel
        Solaris 2.6 (baldric) serial
2003-01-09 12:20:03 -05:00
Albert Cheng
5433de9dfc [svn-r6234] Updated with the new MPE feature. 2003-01-04 10:33:30 -05:00
HDF Admin
221db7cc32 [svn-r6221] Snapshot version 1.5 release 44 2002-12-21 04:27:49 -05:00
Raymond Lu
fe49d0bc4f [svn-r6208]
Misc. update:
    Update an error assertion improvement for nil VL string.
2002-12-16 11:39:11 -05:00
HDF Admin
f7d295517e [svn-r6193] Snapshot version 1.5 release 43 2002-12-07 08:44:24 -05:00
Pedro Vicente Nunes
577bfbfc48 [svn-r6140] Purpose:
code warrior fix
 CW does not recognize the _stati64 type, changed HDstat macro accordingly


Platforms tested:


   windows 2000 (MSVC, Code warrior)
   linux
2002-11-26 11:19:54 -05:00
Raymond Lu
8333adf8ff [svn-r6136]
Purpose:
    new functions
Description:
    H5Gget_num_objs, H5Gget_objname_by_idx and H5Gget_objtype_by_idx.
Platforms tested:
    modi4, arabica, eirene
Misc. update:
    RELEASE.txt updated.
2002-11-25 12:59:14 -05:00
HDF Admin
974a068395 [svn-r6133] Snapshot version 1.5 release 42 2002-11-23 05:41:00 -05:00
Quincey Koziol
04ac348bdd [svn-r6123] *** empty log message *** 2002-11-20 11:12:30 -05:00
Quincey Koziol
892cc41777 [svn-r6113] Purpose:
Note new "H5Zunregister" and "H5Zfilter_avail" functions, along with
    mentioning that Kent's shuffling code added an H5Pset_shuffle API function.
2002-11-20 08:05:44 -05:00
Raymond Lu
0105a3b97c [svn-r6099]
Purpose:
    bug fix.
Description:
    h5dump cannot dump data and datatype for VL string.
Platforms tested:
    eirene, arabica
Misc. update:
    MANIFEST, RELEASE.txt
2002-11-18 11:38:11 -05:00
MuQun Yang
b16a81f5b3 [svn-r6090]
Purpose:
  add "shuffle" filter note
Description:
Solution:
Platforms tested:
Misc. update:
    Update MANIFEST if you add or remove any file.
    Update release_docs/RELEASE for bug fixes, new features, etc.
    Update applicable document files too.
2002-11-13 11:39:37 -05:00
Raymond Lu
2c78145f74 [svn-r6062]
Purpose:
    New function.
Description:
    H5Dget_offset returns the offset of a dataset's data relative to the
    beginning of a file.
Platforms tested:
    arabica(simple function, one test should be enough.)
Misc. update:
    RELEASE.txt
2002-11-07 10:57:53 -05:00
Raymond Lu
a9dea215ed [svn-r6060]
Purpose:
    Add new functions
Description:
    add H5Tget_native_type and H5Tis_variable_str.
Platforms tested:
    arabica, eirene, modi4
Misc. update:
    MANIFEST and release_docs/RELEASE updated.
2002-11-06 16:08:45 -05:00
Albert Cheng
28874d54c4 [svn-r6059] Purpose:
Updated the parallel installation information
Platforms tested:
    Highly sophiscated optical scanning (eyeball it)
2002-11-05 15:19:38 -05:00
Quincey Koziol
22f38d627e [svn-r6055] Purpose:
New feature

Description:
    Add support for scalar dataspaces in parallel I/O.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    Also, FreeBSD 4.7 (sleipnir) serial & parallel
Misc. update:
    Update release_docs/RELEASE for bug fixes, new features, etc.
2002-11-05 11:31:02 -05:00
HDF Admin
30b45c75e2 [svn-r6050] Snapshot version 1.5 release 40 2002-11-02 03:54:27 -05:00
Quincey Koziol
820f4b6fc6 [svn-r6043] Purpose:
Bug fix

Description:
    I/O using "none" selections in parallel wasn't working correctly.  Also,
    add serial "none" selection test.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
2002-10-29 14:42:10 -05:00
Raymond Lu
eee5b4c40f [svn-r6042]
Purpose:
    Change release note for new functions(H5Gget_comment, H5Arename,
    H5Aget_storage_size).
Misc. update:
    Update release_docs/RELEASE for bug fixes, new features, etc.
2002-10-29 11:40:47 -05:00
HDF Admin
f2b49d18fe [svn-r6033] Snapshot version 1.5 release 39 2002-10-26 03:51:04 -05:00
Albert Cheng
a5c793c8be [svn-r6010] Purpose:
Updated.
2002-10-16 00:42:53 -05:00
Quincey Koziol
547812beb8 [svn-r6004] Purpose:
Describe new HDF5_DISABLE_VERSION_CHECK environment feature.
2002-10-15 15:11:49 -05:00
Albert Cheng
a11e928812 [svn-r6001] Purpose:
Updated with bug fix
Platforms tested:
    No test since this is just a text file.
2002-10-15 13:56:14 -05:00
HDF Admin
8e9f6be0f3 [svn-r5979] Snapshot version 1.5 release 38 2002-10-12 03:42:23 -05:00
Elena Pourmal
acb356d309 [svn-r5958]
Purpose:
    Added missing fortran functions h5set(get)_buffer_f.
    Also added  docs and tests for them.
Solution:
    Currently functions do not accept conversion and background buffers.
    This corresponds to H5set(get)_buffer call with buffer pointers
    set to NULL. If there is a demand, I can overload the functions
    to have new parameters and go through all trouble creating functions
    for all supported datatypes.
Platforms tested:
    Solaris 2.7, Linux 2.2., IRIX64-6.5
2002-10-02 14:15:43 -05:00
Elena Pourmal
01a577a4e9 [svn-r5956]
Purpose:
    Added new F90 APIs
Description:
    I added new F90 APIs, tests, and documentation for the following
    functions:
         h5fget_obj_count_f   h5pequal_f               h5tget_member_index_f
         h5fget_obj_ids_f     h5pget_fclose_degree_f
                              h5pset_fclose_degree_f

    Documentation for exisiting functions was missing:

    h5freopen_f, h5fflush_f, h5fmount_f, h5unmount_f, h5fget_create_plist_f,
    h5fget_access_plist_f.
Platforms tested:
    Solaris 2.7, Linux 2.2 and IRIX64-6.5
2002-10-01 13:55:47 -05:00
Raymond Lu
d1e26ae328 [svn-r5951]
Purpose:
    New API functions
Description:
    Added API functions to return pointer to low-level file handle
    (H5Fget_vfd_handle and H5FDget_vfd_handle) and related property list
    setting functions(H5Pset_family_offset and H5Pset_multi_type).
Platforms tested:
    Linux 2.2(eirene), Solaris 2.7(arabica), IRIX64 6.5(modi4)
2002-09-30 11:31:55 -05:00
HDF Admin
4cfb158c29 [svn-r5949] Snapshot version 1.5 release 37 2002-09-28 03:38:31 -05:00
Elena Pourmal
11b0fad3fa [svn-r5948]
Purpose:
    Added new fortran functions
Description:
    Source code, tests and documentation for h5glink2_f and h5gmove2_f
    functions were added. I also added missing man page for h5glink_f
Platforms tested:
    Solaris 2.7, IRIX64-6.5 and Liniux 2.2
2002-09-25 17:24:55 -05:00
Elena Pourmal
f9c3920d28 [svn-r5946]
Purpose:
    Added missing fortran functions.
Description:
    Four Library Fortran API functions have been added:

    h5get_libversion_f, h5_check_version_f, h5garbage_collect_f and
    h5dont_atexit_f. Only first two functions were tested.

    Documentation file and RELEASE.txt were updated.
Platforms tested:
    Solaris 2.7, IRIX64-6.5 and Linux 2.2
2002-09-24 18:27:51 -05:00
HDF Admin
d32ad09043 [svn-r5927] Snapshot version 1.5 release 36 2002-09-14 03:38:10 -05:00
Quincey Koziol
12f8879c40 [svn-r5926] Purpose:
API name change

Description:
    Change all "space time" references to "alloc time", including API functions
    and macro definitions, etc.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/parallel & FORTRAN
2002-09-13 11:57:46 -05:00
HDF Admin
0b99dd414c [svn-r5912] Snapshot version 1.5 release 35 2002-09-07 10:47:53 -05:00
HDF Admin
ac96356230 [svn-r5908] Snapshot version 1.5 release 34 2002-08-31 11:26:35 -05:00
Quincey Koziol
966adccc59 [svn-r5900] Purpose:
Code cleanup/New Feature

Description:
    Improve the space allocation in the file by re-using freed space more
    effectively.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/serial & parallel
2002-08-27 14:59:12 -05:00
Quincey Koziol
44f3c84cc9 [svn-r5899] Purpose:
Update release notes

Description:
    Mention new space allocation features.
2002-08-27 14:54:40 -05:00
Raymond Lu
204426a530 [svn-r5880]
Purpose:
    add information of compact dataset.
2002-08-20 11:25:50 -05:00
HDF Admin
694e9bb380 [svn-r5869] Snapshot version 1.5 release 33 2002-08-10 03:41:20 -05:00
Robb Matzke
b3adb1eb3e [svn-r5859] ./hdf5-devel/release_docs/RELEASE.txt
Purpose:
    Merged from 1.4 branch
Description:
    API tracing improvements
Platforms tested:
    Linux (--disable-hsizet didn't work before my changes and still doesn't
    work, but --enable-hsizet is fine).



Note: This checkin includes temporary code in H5FDmpiposix.c to turn
off GPFS byte range token prefetches on ASCI/Blue.  Once the HDF5 API
supports the necessary prerequisite functionality this temporary code
can be migraged up above HDF5.
2002-08-09 09:55:31 -05:00
HDF Admin
573307786a [svn-r5841] Snapshot version 1.5 release 32 2002-08-03 11:17:14 -05:00
MuQun Yang
79b2b5a321 [svn-r5838]
Purpose:
update windows support.
Description:
1. Since we don't support w98 anymore, delete the description about w98.
Actually DLL may work on w98.
2. Release dll work for new HDF5 release.
Solution:
Platforms tested:
2002-07-25 11:03:37 -05:00
Quincey Koziol
99eee6dff9 [svn-r5814] Purpose:
Bug Fix

Description:
    It was possible to create corrupted metadata information (either in memory
    or in the file or both) with a parallel I/O program because of the way
    metadata writes were being handled for writes out of the metadata cache.

Solution:
    Added a dataset transfer property called "block before metadata write"
    which is used by the MPI-I/O and MPI-posix drivers to sync up all the
    processes before attempting a metadata write.  This property is currently
    only for metadata writes from the metadata cache.

Platforms tested:
    IRIX64 6.5 (modi4) w/parallel
2002-07-19 14:27:09 -05:00
Quincey Koziol
056147b54b [svn-r5802] Purpose:
Update docs

Description:
    Note --with-dmalloc addition to configure flags and new MPI-posix VFL
    driver.
2002-07-15 10:27:58 -05:00
Bill Wendling
a211a322c0 [svn-r5778] Purpose:
Update
Description:
    Changed to say Linux 2.4.18 instead of 2.4.4
2002-07-10 15:00:54 -05:00
Raymond Lu
9c08f4ccfe [svn-r5777]
Purpose:
    Update information
Description:
    Update VL memory freeing information.
2002-07-10 13:16:52 -05:00
HDF Admin
613d55cd11 [svn-r5774] Snapshot version 1.5 release 31 2002-07-06 07:28:52 -05:00
HDF Admin
099ae67264 [svn-r5726] Snapshot version 1.5 release 30 2002-06-29 03:50:06 -05:00
Quincey Koziol
154e4a384e [svn-r5696] Purpose:
Update FreeBSD release info.
2002-06-25 10:44:15 -05:00
Quincey Koziol
ace1f474b7 [svn-r5690] Purpose:
Bug Fix

Description:
    When parallel I/O is used, the MPI-I/O VFL driver uses a "lazy" model to
    call MPI_File_set_view() in order to reduce the number of calls to this
    function.  However, this is unsafe, because if a collective I/O which uses
    MPI derived types (and thus uses MPI_File_set_view()) is immediately
    followed by an independent I/O, the code will attempt to call
    MPI_File_set_view() in order to switch back to the default view of the
    file.  MPI_File_set_view() is a collective call however, and this causes
    the application to hang.

Solution:
    Removed "lazy" MPI_File_set_view() code, instead set the file view when it
    is needed (with MPI derived types) and immediately set the file view back to
    the default view before leaving the I/O routine.

Platforms tested:
    IRIX64 6.5 (modi4) w/parallel.  Also, tested with the latest development
    and release code for the SAF library, which now works correctly with this
    change.  (Although the release branch of the SAF library seems to have a
    bug, this 1.4.4 release candidate code gets as far as the version the SAF
    library is released on top of (1.4.2-patch1, I believe)).
2002-06-24 08:47:14 -05:00