diff options
-rw-r--r-- | examples/h5ff_client_adv_analysis.c | 4 | ||||
-rw-r--r-- | examples/h5ff_client_dset.c | 19 | ||||
-rw-r--r-- | src/H5FF.c | 1 | ||||
-rw-r--r-- | src/H5VLiod_analysis.c | 3 | ||||
-rw-r--r-- | src/H5VLiod_dset.c | 47 | ||||
-rw-r--r-- | src/H5VLiod_group.c | 3 | ||||
-rw-r--r-- | 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); @@ -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 ; i<array.num_dims ; i++) + dims_seq[i] = array.num_dims - (i+1); + } + + if(H5Pget_dcpl_stripe_count(dcpl_id, &stripe_count) < 0) + HGOTO_ERROR_FF(FAIL, "can't get dcpl stripe count property"); + + if(H5Pget_dcpl_stripe_size(dcpl_id, &stripe_size) < 0) + HGOTO_ERROR_FF(FAIL, "can't get dcpl stripe size property"); + + if(0!=stripe_count || 0!=stripe_size) + non_def = TRUE; + + if(TRUE == non_def) { + iod_layout.loc = IOD_LOC_CENTRAL; + iod_layout.type = IOD_LAYOUT_STRIPED; + iod_layout.target_num = (uint32_t)stripe_count; + iod_layout.stripe_size = stripe_size; + iod_layout.dims_seq = dims_seq; + + ret = iod_obj_set_layout(dset_oh.wr_oh, wtid, NULL, &iod_layout, NULL); + if(ret < 0) + HGOTO_ERROR_FF(ret, "can't set IOD array layout"); + } + + if(dims_seq) { + free(dims_seq); + dims_seq = NULL; + } + } + /* create the attribute KV object for the dataset */ ret = iod_obj_create(coh, wtid, md_obj_create_hint, IOD_OBJ_KV, NULL, NULL, &attrkv_id, NULL); if(ret < 0) diff --git a/src/H5VLiod_group.c b/src/H5VLiod_group.c index 1be384d..420a318 100644 --- a/src/H5VLiod_group.c +++ b/src/H5VLiod_group.c @@ -193,9 +193,6 @@ H5VL_iod_server_group_create_cb(AXE_engine_t UNUSED axe_engine, output.iod_oh.wr_oh.cookie = grp_oh.wr_oh.cookie; HG_Handler_start_output(op_data->hg_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) { |