From 341aff1f14c3108dc0a60cb2d54919b4568cbd32 Mon Sep 17 00:00:00 2001 From: Mohamad Chaarawi Date: Tue, 24 Jun 2014 17:06:49 -0500 Subject: [svn-r25356] set array layout in IOD when properties are given. --- examples/h5ff_client_adv_analysis.c | 4 ++-- examples/h5ff_client_dset.c | 19 +++++++++++---- src/H5FF.c | 1 - src/H5VLiod_analysis.c | 3 +++ src/H5VLiod_dset.c | 47 +++++++++++++++++++++++++++++++++++++ src/H5VLiod_group.c | 3 --- src/H5VLiod_view.c | 4 ---- 7 files changed, 67 insertions(+), 14 deletions(-) diff --git a/examples/h5ff_client_adv_analysis.c b/examples/h5ff_client_adv_analysis.c index 784d928..14de9c2 100644 --- a/examples/h5ff_client_adv_analysis.c +++ b/examples/h5ff_client_adv_analysis.c @@ -82,7 +82,7 @@ write_dataset(hid_t group_id, const char *dataset_name, void *buf, hid_t trans_id, hid_t estack_id) { hid_t dataset_id; - hid_t space_id; + hid_t space_id, dcpl_id; hsize_t dims[2] = {ntuples, ncomponents}; int rank = (ncomponents == 1) ? 1 : 2; herr_t ret; @@ -93,7 +93,7 @@ write_dataset(hid_t group_id, const char *dataset_name, /* Create a dataset. */ dataset_id = H5Dcreate_ff(group_id, dataset_name, datatype_id, space_id, - H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT, trans_id, estack_id); + H5P_DEFAULT, dcpl_id, H5P_DEFAULT, trans_id, estack_id); assert(dataset_id); /* Write the first dataset. */ diff --git a/examples/h5ff_client_dset.c b/examples/h5ff_client_dset.c index c0441a8..4b59d9c 100644 --- a/examples/h5ff_client_dset.c +++ b/examples/h5ff_client_dset.c @@ -149,6 +149,8 @@ int main(int argc, char **argv) { Leader can tell its delegates that the transaction is started. */ if(0 == my_rank) { + hid_t dcpl_id; + trans_num = 2; ret = H5TRstart(tid1, H5P_DEFAULT, H5_EVENT_STACK_NULL); assert(0 == ret); @@ -163,12 +165,21 @@ int main(int argc, char **argv) { gid3 = H5Gcreate_ff(gid2, "G3", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT, tid1, e_stack); assert(gid3 > 0); + dcpl_id = H5Pcreate (H5P_DATASET_CREATE); + H5Pset_dcpl_dim_layout(dcpl_id, H5D_COL_MAJOR); + H5Pset_dcpl_stripe_count(dcpl_id, 4); + H5Pset_dcpl_stripe_size(dcpl_id, 5); + /* create datasets */ - did1 = H5Dcreate_ff(gid1, "D1", dtid, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT, tid1, e_stack); + did1 = H5Dcreate_ff(gid1, "D1", dtid, sid, H5P_DEFAULT, dcpl_id, H5P_DEFAULT, tid1, e_stack); assert(did1 > 0); - did2 = H5Dcreate_ff(gid2, "D2", dtid, scalar, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT, tid1, e_stack); + H5Pclose(dcpl_id); + + did2 = H5Dcreate_ff(gid2, "D2", dtid, scalar, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT, tid1, e_stack); assert(did2 > 0); - did3 = H5Dcreate_ff(gid3, "D3", dtid, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT, tid1, e_stack); + did3 = H5Dcreate_ff(gid3, "D3", dtid, sid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT, tid1, e_stack); assert(did3 > 0); } @@ -535,7 +546,7 @@ int main(int argc, char **argv) { ret = H5Gclose_ff(gid1, e_stack); assert(ret == 0); - H5Fclose_ff(file_id, 0, H5_EVENT_STACK_NULL); + H5Fclose_ff(file_id, 1, H5_EVENT_STACK_NULL); H5ESget_count(e_stack, &num_events); diff --git a/src/H5FF.c b/src/H5FF.c index e560914..00c16ba 100644 --- a/src/H5FF.c +++ b/src/H5FF.c @@ -4856,7 +4856,6 @@ H5VLiod_get_file_id(const char *filename, iod_handle_t coh, hid_t fapl_id, hid_t if(ret < 0) HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't free container transaction status object"); - fprintf(stderr, "HDF5 container at version %d\n", (int)rtid); ret = iod_trans_start(coh, &rtid, NULL, 0, IOD_TRANS_R, NULL); if(ret < 0) HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't start transaction"); diff --git a/src/H5VLiod_analysis.c b/src/H5VLiod_analysis.c index a3130f0..46fd560 100644 --- a/src/H5VLiod_analysis.c +++ b/src/H5VLiod_analysis.c @@ -194,6 +194,7 @@ H5VL_iod_server_analysis_invoke_cb(AXE_engine_t UNUSED axe_engine, #if H5_EFF_DEBUG print_iod_obj_map(obj_map); #endif + print_iod_obj_map(obj_map); assert(obj_map->type == IOD_OBJ_ARRAY); if(H5VL__iod_farm_work(obj_map, cohs, dset_id, region, rtid, @@ -1506,7 +1507,9 @@ H5VL_iod_server_container_open(hg_handle_t handle) con_open_hint->hint[0].key = "iod_hint_co_scratch_cksum"; /* open the container */ +#if H5_EFF_DEBUG printf("Calling iod_container_open on %s\n", file_name); +#endif if(iod_container_open(file_name, con_open_hint, IOD_CONT_R, &coh, NULL)) HGOTO_ERROR_FF(FAIL, "can't open file"); diff --git a/src/H5VLiod_dset.c b/src/H5VLiod_dset.c index c6c574a..990b12a 100644 --- a/src/H5VLiod_dset.c +++ b/src/H5VLiod_dset.c @@ -260,6 +260,53 @@ H5VL_iod_server_dset_create_cb(AXE_engine_t UNUSED axe_engine, step ++; + { + H5FF_dset_dim_layout_t dims_layout; + size_t stripe_count; + size_t stripe_size; + iod_dims_seq_t dims_seq = NULL; + hbool_t non_def = FALSE; + uint32_t i; + iod_layout_t iod_layout; + + if(H5Pget_dcpl_dim_layout(dcpl_id, &dims_layout) < 0) + HGOTO_ERROR_FF(FAIL, "can't get dcpl layout property"); + + if(H5D_COL_MAJOR == dims_layout) { + non_def = TRUE; + if(NULL == (dims_seq = malloc (sizeof(uint32_t) * array.num_dims))) + HGOTO_ERROR_FF(FAIL, "can't allocate memory"); + for(i=0 ; ihg_handle, &output); - fprintf(stderr, "Created group RD_OH %"PRIu64" WR_OH %"PRIu64"\n", - grp_oh.rd_oh.cookie, grp_oh.wr_oh.cookie); - done: /* close parent group if it is not the location we started the diff --git a/src/H5VLiod_view.c b/src/H5VLiod_view.c index ed3b4ea..7472d24 100644 --- a/src/H5VLiod_view.c +++ b/src/H5VLiod_view.c @@ -565,8 +565,6 @@ H5VL__iod_apply_query(hid_t file_id, hid_t rcxt_id, hid_t qid, hid_t vcpl_id, /* combine result1 and result2 */ if(H5Q_COMBINE_AND == comb_type) { - fprintf(stderr, "ANDing %d and %d\n", result1, result2); - *result = result1 + result2; if(sid1!=FAIL && sid2!=FAIL) { @@ -580,8 +578,6 @@ H5VL__iod_apply_query(hid_t file_id, hid_t rcxt_id, hid_t qid, hid_t vcpl_id, *region = H5Scopy(sid2); } else if(H5Q_COMBINE_OR == comb_type) { - fprintf(stderr, "ORing %d and %d\n", result1, result2); - *result = result1 + result2 + 1; if(sid1!=FAIL && sid2!=FAIL) { -- cgit v0.12