Go to file
Quincey Koziol 40df66ebd0 [svn-r5834] Purpose:
Large code cleanup/re-write

Description:
    This is phase 1 of the data I/O re-architecture, with the following changes:
        - Changed the selection drivers to not actually do any I/O, they
            only generate the sequences of offset/length pairs needed for
            the I/O (or memory access, in the case of iterating or filling
            a selection in a memory buffer)
        - Wrote more abstract I/O routines which get the sequence of offset/
            length pairs for each selection and access perform the I/O or
            memory access.

    Benefits of this change include:
        - Removed ~3400 lines of quite redundant code, with corresponding
            reduction in the size of library binary.
        - Any selection can now directly access memory when performing I/O,
            if no type conversions are required, instead of just "regular"
            hyperslab and 'all' selections, which speeds up I/O.
        - Sped up I/O for hyperslab selections which have contiguous lower
            dimensions by "flattening" them out into lesser dimensional objects
            for the I/O.

    No file format or API changes were necessary for this change.

    The next phase will be to create a "selection driver" for each type of
        selection, allowing each type of selection to directly call certain
        methods that only apply to that type of selection, instead of passing
        through dozens of functions which have switch statements to call the
        appropriate method for each selection type.  This will also reduce
        the amount of code in the library and speed things up a bit more.

    Phase 3 will involve generating an MPI datatype for all types of selections,
        instead of only "regular" hyperslab and 'all' selections.  This will
        allow collective parallel I/O for all I/O operations which don't
        require type conversions.  It will also open up the door for allowing
        collective I/O on datasets which require type conversion.

    Phase 4 will involve changing the access pattern to deal with chunked
        datasets in a more optimal way (in serial).

    Phase 5 will deal with accessing chunked datasets more optimally for
        collective parallel I/O operations.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/ parallel & C++ and IRIX64 6.5 (modi4) w/parallel
2002-07-24 13:56:48 -05:00
bin [svn-r5623] Purpose: 2002-06-13 06:53:50 -05:00
c++ [svn-r5807] Purpose: 2002-07-17 11:10:46 -05:00
config [svn-r5791] Purpose: 2002-07-15 10:11:27 -05:00
doc [svn-r5774] Snapshot version 1.5 release 31 2002-07-06 07:28:52 -05:00
examples [svn-r5701] Purpose: 2002-06-25 13:59:11 -05:00
fortran [svn-r5774] Snapshot version 1.5 release 31 2002-07-06 07:28:52 -05:00
hl/tools/gif2h5 [svn-r5667] Purpose: 2002-06-19 07:54:53 -05:00
pablo [svn-r5291] 2002-04-30 10:23:11 -05:00
perform [svn-r5807] Purpose: 2002-07-17 11:10:46 -05:00
release_docs [svn-r5814] Purpose: 2002-07-19 14:27:09 -05:00
src [svn-r5834] Purpose: 2002-07-24 13:56:48 -05:00
test [svn-r5833] Purpose: 2002-07-24 13:39:01 -05:00
testpar [svn-r5815] Purpose: 2002-07-19 15:09:16 -05:00
tools [svn-r5674] Purpose: 2002-06-19 11:06:55 -05:00
windows [svn-r5584] 2002-06-11 10:35:45 -05:00
aclocal.m4 [svn-r5727] Purpose: 2002-06-29 18:39:05 -05:00
configure [svn-r5810] Purpose: 2002-07-17 13:03:38 -05:00
configure.in [svn-r5810] Purpose: 2002-07-17 13:03:38 -05:00
COPYING [svn-r5771] 2002-07-05 16:17:15 -05:00
Makefile.dist [svn-r1112] Changes since 19990301 1999-03-02 12:15:35 -05:00
Makefile.in [svn-r5151] Purpose: 2002-04-09 07:41:10 -05:00
MANIFEST [svn-r5804] Purpose: 2002-07-15 10:30:03 -05:00
README.txt [svn-r5774] Snapshot version 1.5 release 31 2002-07-06 07:28:52 -05:00

HDF5 version 1.5.32 currently under development
Please refer to the release_docs/INSTALL file for installation instructions.
------------------------------------------------------------------------------

This release is almost fully functional for the entire API defined in the
documentation, see the RELEASE.txt file in this directory for information
specific to this release of the library.  The INSTALL file contains
instructions on compiling and installing the library.  The INSTALL_parallel
file contains instructions on installing the parallel version of the
library.  The INSTALL* files can be found in the release_docs/ directory.

Documentation for this release is in the html directory.  Start with the
"index.html" in that directory.

Four mailing lists are currently set up for use with the HDF5
library.

   hdf5         - For general discussion of the HDF5 library with
		  other users.

   hdf5dev      - For discussion of the HDF5 library development
		  with developers and other interested parties.

   hdf5announce - For announcements of HDF5 related developments,
		  not a discussion list.

   hdf5cvs      - For checkin notices of code development on the library,
		  not a discussion list.

To subscribe to a list, send mail to "majordomo@ncsa.uiuc.edu",
with "subscribe <list>" in the _body_, not the Subject, of the message.
E.g., subscribe hdf5 

Messages to be sent to the list should be sent to "<list>@ncsa.uiuc.edu".

Nearly daily code snapshots are now being provided at the following URL:
    ftp://hdf.ncsa.uiuc.edu/pub/outgoing/hdf5/snapshots
Please read the readme file in that directory before working with a library
snapshot.

The HDF5 website is located at http://hdf.ncsa.uiuc.edu/HDF5/

Bugs should be reported to hdfhelp@ncsa.uiuc.edu.