diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-09-30 18:50:49 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-09-30 18:50:49 (GMT) |
commit | beab7f66e5dd260732fad34b9c26ccb0d8d580a5 (patch) | |
tree | d4513e30c4d6b722d466b295e6d009272e937d54 /src/H5D.c | |
parent | 8460a082a4e1fc9ea9be15cfb6bbdd866ebf9f4b (diff) | |
download | hdf5-beab7f66e5dd260732fad34b9c26ccb0d8d580a5.zip hdf5-beab7f66e5dd260732fad34b9c26ccb0d8d580a5.tar.gz hdf5-beab7f66e5dd260732fad34b9c26ccb0d8d580a5.tar.bz2 |
[svn-r730] Changes since 19980928
----------------------
./MANIFEST
Changed freebsd2.2.1 to freebsd2.2.7 to match change in file name.
Added a few missing files. Are all of these supposed to be
distributed?
./tools/testfiles/h5dumptst.c
+ ./tools/testfiles/tall-1.ddl
+ ./tools/testfiles/tall-2.ddl
+ ./tools/testfiles/tall-3.ddl
./tools/testfiles/tall.ddl
./tools/testfiles/tall.h5
+ ./tools/testfiles/tattr-1.ddl
+ ./tools/testfiles/tattr-2.ddl
+ ./tools/testfiles/tattr-3.ddl
+ ./tools/testfiles/tattr-4.ddl
./tools/testfiles/tattr.ddl
./tools/testfiles/tattr.h5
+ ./tools/testfiles/tdset-1.ddl
+ ./tools/testfiles/tdset-2.ddl
+ ./tools/testfiles/tdset-3.ddl
+ ./tools/testfiles/tdset-4.ddl
./tools/testfiles/tdset.ddl
./tools/testfiles/tdset.h5
+ ./tools/testfiles/tgroup-1.ddl
+ ./tools/testfiles/tgroup-2.ddl
+ ./tools/testfiles/tgroup-3.ddl
./tools/testfiles/tgroup.ddl
./tools/testfiles/tgroup.h5
+ ./tools/testfiles/tslink-1.ddl
+ ./tools/testfiles/tslink-2.ddl
./tools/testfiles/tslink.ddl
./tools/testfiles/tslink.h5
./src/H5B.c
./src/H5Bprivate.h
./src/H5D.c
./src/H5Dprivate.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5Gstab.c
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
./test/istore.c
Implemented split ratios as documented in previous
e-mails. Frank, the new API functions are H5Pget_btree_ratios()
and H5Pset_btree_ratios().
./src/H5Sall.c
./src/H5Shyper.c
./src/H5Spoint.c
./src/H5Sprivate.h
Added more type checking for the data transfer property list
passed to these functions.
./src/H5D.c
Added a dataset transfer property list as an argument to
H5D_allocate() for the parallel version in order to pass split
ratios down to H5F_istore_lock(). Eventually we won't need
the split ratios for H5D_allocate() because we'll build a
completely full B-tree from the leaves up, but it might be
useful to have other transfer properties at that level
anyway. I always caled H5D_allocate() with &H5D_dflt_xfer.
./MANIFEST
./test/Makefile.in
./test/overhead.c [NEW]
Added an `overhead' test run by `make timings'.
Diffstat (limited to 'src/H5D.c')
-rw-r--r-- | src/H5D.c | 41 |
1 files changed, 25 insertions, 16 deletions
@@ -72,12 +72,19 @@ const H5D_xfer_t H5D_xfer_dflt = { NULL, /* Type conversion buffer or NULL */ NULL, /* Background buffer or NULL */ H5T_BKG_NO, /* Type of background buffer needed */ + {0.1, 0.5, 0.9}, /* B-tree node splitting ratios */ #ifndef HAVE_PARALLEL - 1, /* Cache the hyperslab blocks by default */ -#else /* HAVE_PARALLEL */ - 0, /* Don't cache the hyperslab blocks by default (for parallel) */ + 1, /* Cache the hyperslab blocks by default*/ +#else + 0, /* + * Don't cache the hyperslab blocks by + * default (for parallel) + */ #endif /* HAVE_PARALLEL */ - 0, /* Default to no upper limit on hyperslab block size to cache */ + 0, /* + * Default to no upper limit on hyperslab + * block size to cache + */ #ifdef HAVE_PARALLEL H5D_XFER_DFLT, /* Independent data transfer */ #endif @@ -89,7 +96,7 @@ static hbool_t interface_initialize_g = FALSE; static herr_t H5D_init_interface(void); static void H5D_term_interface(void); #ifdef HAVE_PARALLEL -static herr_t H5D_allocate (H5D_t *dataset); +static herr_t H5D_allocate (H5D_t *dataset, const H5D_xfer_t *xfer); #endif @@ -876,7 +883,8 @@ H5D_create(H5G_entry_t *loc, const char *name, const H5T_t *type, * Also, only the slowest varying dimension of a simple data space * can be extendible. */ - if ((ndims=H5S_get_simple_extent_dims(space, new_dset->layout.dim, max_dim))<0) { + if ((ndims=H5S_get_simple_extent_dims(space, new_dset->layout.dim, + max_dim))<0) { HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL, "unable to initialize contiguous storage"); } @@ -1011,7 +1019,7 @@ H5D_create(H5G_entry_t *loc, const char *name, const H5T_t *type, */ if (new_dset->ent.file->shared->access_parms->driver == H5F_LOW_MPIO && new_dset->layout.type == H5D_CHUNKED){ - if (H5D_allocate(new_dset)==FAIL){ + if (H5D_allocate(new_dset, &H5D_xfer_dflt)<0) { HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL, "fail in file space allocation for chunks"); } @@ -1164,7 +1172,7 @@ H5D_open(H5G_entry_t *loc, const char *name) if (dataset->ent.file->shared->access_parms->driver==H5F_LOW_MPIO && dataset->layout.type == H5D_CHUNKED && (dataset->ent.file->intent & H5F_ACC_RDWR)){ - if (H5D_allocate(dataset)==FAIL){ + if (H5D_allocate(dataset, &H5D_xfer_dflt)<0) { HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL, "fail in file space allocation dataset"); } @@ -2052,7 +2060,7 @@ H5D_extend (H5D_t *dataset, const hsize_t *size) */ if (dataset->ent.file->shared->access_parms->driver==H5F_LOW_MPIO && dataset->layout.type==H5D_CHUNKED){ - if (H5D_allocate(dataset)==FAIL){ + if (H5D_allocate(dataset, &H5D_xfer_dflt)<0) { HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "fail in file space allocation for chunks"); } @@ -2141,10 +2149,10 @@ H5D_typeof (H5D_t *dset) *------------------------------------------------------------------------- */ static herr_t -H5D_allocate (H5D_t *dataset) +H5D_allocate (H5D_t *dataset, const H5D_xfer_t *xfer) { - H5S_t *space = NULL; - herr_t ret_value = FAIL; + H5S_t *space = NULL; + herr_t ret_value = FAIL; hsize_t space_dim[H5O_LAYOUT_NDIMS]; intn space_ndims; H5O_layout_t *layout; @@ -2172,7 +2180,8 @@ H5D_allocate (H5D_t *dataset) "unable to read data space info from dataset header"); } /* get current dims of dataset */ - if ((space_ndims=H5S_get_simple_extent_dims(space, space_dim, NULL)) <= 0 || + if ((space_ndims=H5S_get_simple_extent_dims(space, space_dim, + NULL)) <= 0 || space_ndims+1 != layout->ndims){ HRETURN_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to allocate chunk storage"); @@ -2181,9 +2190,9 @@ H5D_allocate (H5D_t *dataset) space_dim[space_ndims] = layout->dim[space_ndims]; if (H5F_istore_allocate(dataset->ent.file, - (layout), space_dim, - &(dataset->create_parms->pline))==FAIL){ - HRETURN(FAIL); + (layout), space_dim, xfer->split_ratios, + &(dataset->create_parms->pline))<0) { + HRETURN(FAIL); } break; |