Commit Graph

164 Commits

Author SHA1 Message Date
James Laird
eab58732d8 [svn-r8781]
Purpose:
HDF5 now supports SZIP with no encoder.

Description:
SZIP can be configured to have both encoder and decoder or just to have the decoder.  HDF5 can now query the configuration of any filter, and will throw errors if users try to write using a filter with encoding disabled.

Solution:
Added H5Zget_filter_info function, changed API for H5Pget_filter and H5P_get_filter_by_id.  See SZIP RFC.

Platforms tested:
Copper (fortran, C++, parallel), Sleipnir (C++), Arabica (fortran, C++), Verbena (fortran, C++)

Misc. update:
2004-07-01 12:38:04 -05:00
Quincey Koziol
7c3df64cc4 [svn-r8731] Purpose:
Code cleanup & minor optimization

Description:
    Re-work the way interface initialization routines are specified in the
library to avoid the overhead of checking for them in routines where there is
no interface initialization routine.  This cleans up warnings with gcc 3.4,
reduces the library binary size a bit (about 2-3%) and should speedup the
library's execution slightly.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/gcc34
    h5committest
2004-06-23 10:36:35 -05:00
Quincey Koziol
2b81894af7 [svn-r8694] Purpose:
Code optimization

Description:
    Avoid memcpy() when setting up new chunk coordinates

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-15 11:12:29 -05:00
Quincey Koziol
fabb5167ba [svn-r8686] Purpose:
Code optimization

Description:
    Eliminate memcpy() when using default DXPL by pointing at existing
default object, instead of copying it.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-14 15:39:08 -05:00
Quincey Koziol
ef01629bb2 [svn-r8683] Purpose:
Code optimization

Description:
    Use 'size_t' instead of 'hsize_t' to track the number of elements in
memory buffers, especially for type conversion.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-14 14:32:02 -05:00
Quincey Koziol
925f2ba710 [svn-r8673] Purpose:
Code optimization

Description:
    Revised dataspace selections to use a more "object oriented" mechanism
to set the function pointers for each selection and selection iterator.  This
reduces the amount and number of times that dataspace selection info has to
be copied.

    Additionally, change hyperslab selection information to be dynamically
allocated instead of an inline struct.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-13 14:08:17 -05:00
Quincey Koziol
ae64ed8364 [svn-r8651] Purpose:
Code optimization

Description:
    Eliminate redundant memset() when creating chunk map structure.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
2004-06-10 16:34:57 -05:00
Quincey Koziol
70044f9c88 [svn-r8636] Purpose:
Code optimization

Description:
    Don't allocate conversion buffer larger than the user's buffer.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    too minor to require h5committest
2004-06-09 13:07:36 -05:00
Quincey Koziol
339a81a766 [svn-r8613] Purpose:
Refactor code

Description:
    Move chunk and contiguous cached raw data from file information to dataset
information.  This simplifies a number of internal interfaces, aligns the
code with it's purpose better and should allow more optimizations to the
chunked data I/O performance.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir)
    h5committest

Misc. update:
2004-06-05 14:04:49 -05:00
Quincey Koziol
1ec351813b [svn-r8600] Purpose:
Code optimization

Description:
    Don't recompute the internal index value for looking up the chunk in the
hash table, just use the value already computed from iterating through the
chunks.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-31 14:59:59 -05:00
Quincey Koziol
2ce06c3912 [svn-r8590] Purpose:
Code optimization & bug fix

Description:
    When dimension information is being stored in the storage layout message
on disk, it is stored as 32-bit quantities, possibly truncating the dimension
information, if a dimension is greater than 32-bits in size.

Solution:
    Fix the storage layout message problem by revising file format to not store
dimension information, since it is already available in the dataspace.

    Also revise the storage layout data structures to be more compartmentalized
for the information for contiguous, chunked and compact storage.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    h5committest
2004-05-27 15:24:08 -05:00
Quincey Koziol
910e19c646 [svn-r8544] Purpose:
Code optimization

Description:
    Expand the use of macros to inline trivial function pointer lookup and
calls to reduce the overall number of functions invoked during normal operation
of the library.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
    Too minor to require h5committest
2004-05-20 10:32:09 -05:00
Quincey Koziol
a3fd0e95a7 [svn-r8513] Purpose:
Code optimization

Description:
    Defer creating the span trees for hyperslab selections until they are
actually needed (which may be never, in certain circumstances).

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-13 15:33:27 -05:00
Quincey Koziol
0f805b3aa5 [svn-r8496] Purpose:
Code optimization

Description:
    Further reduce the number of copies we make of a hyperslab selection for
chunked I/O, especially when we are only going to throw the old selection away
for a new one.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-08 14:09:50 -05:00
Leon Arber
1867c05efb [svn-r8488] Purpose:
Bug fix.

Description:
Fixed handling of trivial data transform expressions (like 5/3 + 3) and some
data coversion fixes.  Also added more tests to dtransform.c

Solution:
Added some more checks in the H5Z_xform_reduce_tree function to see if perhaps
the transform expression is complicated and is a non-trivial reduction.
Added tests for data conversion to dtransform as well as tests for a trivial
data transform expression.

Platforms tested:
h5committest'ed, except used arabica instead of sol and didn't do on copper
b/c no logon there. Problem noted with mtime test...doesn't appear to be
related to anything having to do with data transforms.
2004-05-06 17:44:38 -05:00
Quincey Koziol
7f99a80b0a [svn-r8482] Purpose:
Code cleanup

Description:
    Refactored data transform code to reduce amount of symbols in the global
scope and also cleaned up & simplified the code a bit.

Platforms tested:
    h5committest (minus copper, plus serial modi4)
    FreeBSD 4.9 (sleipnir) w & w/o parallel
2004-05-05 14:29:09 -05:00
Albert Cheng
0c6229a68d [svn-r8479] Purpose:
New Feature

Description:
Add the data transform function, H5Pset_transform().

Platforms tested:
"h5committested".
Copper was down.  Ran parallel tests in sol instead.

Misc. update:
2004-05-03 18:34:42 -05:00
Quincey Koziol
b0a3d7c970 [svn-r8462] Purpose:
Code optimization

Description:
    Reduce the number of times the number of elements in a selection is
computed.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
    too minor to require h5committest
2004-05-01 14:19:52 -05:00
Quincey Koziol
4b0ff36410 [svn-r8460] Purpose:
Code optimization

Description:
    Move the element size for the selection into the selection iterator instead
    of always passing it as a parameter.

    Also, eleminate another 64-bit multiply for "all" selections.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-05-01 13:16:54 -05:00
Quincey Koziol
4ec99fe2b4 [svn-r8446] Purpose:
Code optimization

Description:
    Avoid dividing the chunk coordinates at the top levels of the chunk I/O
routines, only to multiply them at the bottom of the routines.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-04-30 19:13:07 -05:00
Quincey Koziol
0a29514b9d [svn-r8383] Purpose:
Code cleanup

Description:
    Clean up lots of warnings based on those reported from the SGI compilers
as well as gcc.

Platforms tested:
    SGI O3900, IRIX64 6.5 (Cheryl's SGI machine)
    FreeBSD 4.9 (sleipnir) w/ & w/o parallel
    h5committest
2004-04-17 23:10:09 -05:00
Quincey Koziol
880d8357bf [svn-r8376] Purpose:
Code cleanup

Description:
    Update null dataspace changes to try to write older version of dataspace
information whenever possible.

    Refactor common code to only one location.

    Allow I/O operations to succeed on null dataspaces.


Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2004-04-17 15:31:50 -05:00
Quincey Koziol
fd03553851 [svn-r8364] Purpose:
Code optimization

Description:
    Remove redundant function call by re-using value we already know.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-04-17 11:04:11 -05:00
Quincey Koziol
a7c2871572 [svn-r8342] Purpose:
Code optimization

Description:
    Remove another dataspace copy, in certain circumstances.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-04-10 13:02:27 -05:00
Quincey Koziol
4f7308af91 [svn-r8337] Purpose:
Code optimization

Description:
    Avoid another extraneous dataspace copy.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
    too minor to require h5committest
2004-04-10 11:04:53 -05:00
Quincey Koziol
eb7a675f0a [svn-r8335] Purpose:
Code optimization

Description:
    Change algorithm to directly use coordinates describing a chunk's position
in a dataspace instead of creating a dataspace with the chunk's position
selected.  This reduces the number of copies of dataspaces we need to keep
around.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
    too minor to require h5committest
2004-04-10 09:44:58 -05:00
Quincey Koziol
aa5e1dc4d2 [svn-r8328] Purpose:
Code optimization

Description:
    Check for only performing I/O on a single chunk and re-use memory dataspace,
instead of re-creating the same dataspace & selection the hard way.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
    too minor to require h5committest
2004-04-08 13:19:02 -05:00
Quincey Koziol
b356572029 [svn-r8326] Purpose:
Code optimization

Description:
    Eliminate more dataspace copying, etc.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
    too minor to require h5committest
2004-04-08 11:59:34 -05:00
Quincey Koziol
dffe5b9a2b [svn-r8321] Purpose:
Code optimization

Description:
    Reduce the number of dataspace copies made when performing I/O on chunked
datasets.

Platforms tested:
    Solaris 2.7 (arabica)
    too minor to require h5committest
2004-04-08 09:10:34 -05:00
Quincey Koziol
42e2d9dd37 [svn-r8316] Purpose:
Code optimization

Description:
    Query the dataset creation and transfer properties less often.

Platforms tested:
    Solaris 2.7 (arabica)
    h5committested
2004-04-07 13:16:22 -05:00
Raymond Lu
370a4f930f [svn-r8276] *** empty log message *** 2004-03-24 16:03:52 -05:00
Quincey Koziol
d8cfeadd90 [svn-r8158] Purpose:
Code cleanup/optimization

Description:
    Query property list values once, at the beginning of the I/O routines,
instead of querying the property list values multiple (lots!) of times in
lower level routines.

Solution:
    Create "property list caches" for internal library queries of the property
list values.

Platforms tested:
    IBM p690 (copper) w/parallel & fphdf5
    h5committest
2004-02-06 10:34:01 -05:00
Quincey Koziol
00edaf52c5 [svn-r8053] Purpose:
Bug fix

Description:
    Correct two problems with variable-length datatypes in datasets:
        - When overwriting an entire dataset, writing the fill value to the
            file would be skipped, causing problems for VL datatypes when
            objects in the file had been unlinked (and thus the space in the
            file was not all zeros)
        - When an application has set a fill-value for a dataset and the
            dataset's datatype contained a VL datatype, the library was filling
            space on disk with the memory form of the VL information, instead
            of the disk form.


Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2004-01-13 13:00:59 -05:00
Quincey Koziol
a8161177b9 [svn-r7943] Purpose:
Bug fix.

Description:
    Using a selection offset with hyperslab selections in chunked datasets
was getting into an infinite loop and hanging the application.

Solution:
    Apply the selection offset to the hyperslab selection properly.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w & w/o parallel
    h5committest
2003-12-13 13:14:36 -05:00
Quincey Koziol
31431be374 [svn-r7917] Purpose:
Code cleanup

Description:
    Clean up compiler warnings, especially the 'FUNC' variable not used which
comes out in production mode.

Solution:
    Had to add a new FUNC_ENTER_NOAPI_NOINIT_NOFUNC macro for those non-API
functions which don't need the 'FUNC' variable defined.  (This will be _so_
much easier when C99 is standard on all our supposed platforms, since it has a
__FUNC__ macro... )

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor for h5committest (although there were lots of files changed, the
        change was minor in each one)
2003-12-06 15:38:31 -05:00
Quincey Koziol
e1792ebb22 [svn-r7842] Purpose:
Bug fix

Description:
    Variable length strings and sequences with NULL pointers were not handled
by library, causing problems access the data.  This also affected fill values
for variable-length datatypes.

Solution:
    Address the issues in the library by detecting NULL sequences/strings
and avoid trying to convert them.

    Patched up dumper to display NULL sequences/strings.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-11-13 10:19:50 -05:00
Quincey Koziol
99d8cfc971 [svn-r7759] Purpose:
Fix serial build

Description:
    I accidentally put the "use_par_opt_io" variable in an #ifdef PARALLEL
section.

Solution:
    Hoist it out of parallel section

Platforms tested:
    Eyeballed it - very trivial
2003-10-27 19:16:28 -05:00
Quincey Koziol
8a43391a11 [svn-r7754] Purpose:
Code cleanup

Description:
    Straighten out more goofiness in the MPI code dealing with collective I/O
transfers - mostly make certain that a view is set if-and-only-if collective
I/O is occurring on raw data (and vice versa for views and independent I/O)

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/parallel & FPHDF5
    too minor to repquire h5committest
2003-10-27 16:38:27 -05:00
Quincey Koziol
618c36029c [svn-r7744] Purpose:
Code cleanup

Description:
    More refactoring on setup of MPI-IO parameters: hoisted the code to change
the transfer mode from collective to independent up into the H5D_read and
H5D_write routines, instead of duplicating it inside each of the chunk/contig
read/write routines.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2003-10-27 12:11:24 -05:00
Quincey Koziol
3c7887424f [svn-r7742] Purpose:
Code cleanup

Description:
    Clean up setup code for collective I/O transfers to make the logic more
obvious.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor for h5committest
2003-10-27 11:32:05 -05:00
Quincey Koziol
98dfa67e89 [svn-r7551] Purpose:
Bug/feature fix.

Description:
    Relax restriction on parallel writing to compact datasets to allow partial
I/O.

    Updates to reference manual mentioning the issues involved are delayed until
reference manual 'lock' is removed later this week.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2003-10-06 10:17:09 -05:00
Quincey Koziol
bf1c2f0e8b [svn-r7478] Purpose:
Bug fix

Description:
    H5Dwrite was only checking the "top level" of the datatype to stop parallel
I/O on variable-length datatypes.

Solution:
    Make checks "deeper".

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-09-16 12:25:49 -05:00
Quincey Koziol
9c020d5bd3 [svn-r7384] Purpose:
Code cleanup

Description:
    More linting...

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    too minor to need h5committest
2003-08-19 09:44:45 -05:00
Quincey Koziol
c6ed9cbbae [svn-r7383] Purpose:
Bug fix

Description:
    I/O on chunked datasets with a scalar dataspace for the memory dataspace
was not working correctly.

Solution:
    Translate the scalar dataspace into a n-dimensional (where n is the number
of dimensions of the file's dataspace) dataspace of dimensions 1x1x1...

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest (modulo modi4 which is not working correctly)
2003-08-19 07:18:37 -05:00
Quincey Koziol
b0e350c2d6 [svn-r7259] Purpose:
Bug fix

Description:
    I/O on chunked datasets with point selections was not working correctly.

Solution:
    Re-wrote some parts of raw data I/O routines that build the selections for
    each chunk to correctly handle point selections.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-23 16:18:40 -05:00
Quincey Koziol
49dc443666 [svn-r7223] Purpose:
Code cleanup

Description:
    Clean up more warnings from lint

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    too minor for h5committest
2003-07-14 14:14:18 -05:00
Quincey Koziol
060f36241e [svn-r7219] Purpose:
Bug fix

Description:
    H5T_BKG_TEMP was accidentally removed from library code, but is used by
    application's datatype conversion routines.

Solution:
    Revert removal of H5T_BKG_TEMP.

Platforms tested:
    h5committest
2003-07-14 11:55:31 -05:00
Quincey Koziol
2c92c3ca18 [svn-r7210] Purpose:
Refactoring code

Description:
    Refactored "IS_H5FD_MPIO || IS_H5FD_MPIPOSIX || IS_H5FD_FPHDF5" combination
of macros in many places into single IS_H5FD_MPI macro, which has the same
definition, but should be easier to maintain.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-11 13:01:05 -05:00
Quincey Koziol
55869bd2ff [svn-r7116] Purpose:
Update code

Description:
    Move "PABLO_MASK" definition above header file inclusion to avoid problems
with inline functions in header files.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-27 10:59:48 -05:00
Quincey Koziol
6ea5252281 [svn-r7018] Purpose:
Bug fix

Description:
    The dataset's modification time was getting set whenever raw data was
written with H5Dwrite.  Unfortunately, this is a metadata change (which are
required to be performed collectively) and H5Dwrite may be called independently
from a parallel program, resulting in metadata cache corruption and/or program
hangs.

Solution:
    Don't update the modification time when raw data it written. :-(

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committest

Misc. update:
    Noted in release notes and also sent to Frank for updating the docs.
2003-06-10 13:47:26 -05:00