diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/H5Dio.c | 2 | ||||
-rw-r--r-- | src/H5Dmpio.c | 74 | ||||
-rw-r--r-- | src/H5Dprivate.h | 2 | ||||
-rw-r--r-- | src/H5FDmpio.c | 8 | ||||
-rw-r--r-- | src/H5FDmpiposix.c | 2 | ||||
-rw-r--r-- | src/H5Fsuper_cache.c | 2 | ||||
-rw-r--r-- | src/H5Ppublic.h | 4 | ||||
-rw-r--r-- | src/H5trace.c | 2 |
8 files changed, 76 insertions, 20 deletions
diff --git a/src/H5Dio.c b/src/H5Dio.c index b4b4afc..34e6784 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -369,7 +369,7 @@ done: * *------------------------------------------------------------------------- */ -#ifndef JK_ORI +#ifdef JK_ORI herr_t H5Dwrite(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t dxpl_id, const void *buf) diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c index 2ae3e90..64b7438 100644 --- a/src/H5Dmpio.c +++ b/src/H5Dmpio.c @@ -53,12 +53,15 @@ /* Macros to represent different IO options */ #define H5D_ONE_LINK_CHUNK_IO 0 +#ifdef JK_MCHUNK_OPT_REMOVE // ---I #define H5D_MULTI_CHUNK_IO 1 #define H5D_ONE_LINK_CHUNK_IO_MORE_OPT 2 #define H5D_MULTI_CHUNK_IO_MORE_OPT 3 -#ifndef JK_WORK -#define H5D_ALL_CHUNK_IND_IO 4 -#endif +#endif // JK_MCHUNK_OPT_REMOVE ---O +/* TODO: add this as part of HDFFV-8244 work for collectively + * independent IO feature + * #define H5D_ALL_PIECE_IND_IO 1 + */ /***** Macros for One linked collective IO case. *****/ /* The default value to do one linked collective IO for all chunks. @@ -80,9 +83,11 @@ collective IO is done for this chunk. */ +#ifdef JK_MCHUNK_OPT_REMOVE /* Macros to represent different IO modes(NONE, Independent or collective)for multiple chunk IO case */ #define H5D_CHUNK_IO_MODE_IND 0 #define H5D_CHUNK_IO_MODE_COL 1 +#endif /* Macros to represent the regularity of the selection for multiple chunk IO case. */ #define H5D_CHUNK_SELECT_REG 1 @@ -113,9 +118,11 @@ static herr_t H5D__chunk_collective_io(H5D_io_info_t *io_info, static herr_t H5D__piece_mdset_io(const hid_t file_id, const size_t count, H5D_io_info_md_t *io_info_md); #endif +#ifdef JK_MCHUNK_OPT_REMOVE static herr_t H5D__multi_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, H5D_chunk_map_t *fm, H5P_genplist_t *dx_plist); +#endif static herr_t H5D__link_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, H5D_chunk_map_t *fm, int sum_chunk, H5P_genplist_t *dx_plist); @@ -139,8 +146,10 @@ static herr_t H5D__sort_chunk(H5D_io_info_t *io_info, const H5D_chunk_map_t *fm, static herr_t H5D__sort_piece(H5D_io_info_md_t *io_info_md, H5D_chunk_addr_info_t chunk_addr_info_array[], int sum_chunk); #endif +#ifdef JK_MCHUNK_OPT_REMOVE static herr_t H5D__obtain_mpio_mode(H5D_io_info_t *io_info, H5D_chunk_map_t *fm, H5P_genplist_t *dx_plist, uint8_t assign_io_mode[], haddr_t chunk_addr[]); +#endif static herr_t H5D__ioinfo_xfer_mode(H5D_io_info_t *io_info, H5P_genplist_t *dx_plist, H5FD_mpio_xfer_t xfer_mode); static herr_t H5D__ioinfo_coll_opt_mode(H5D_io_info_t *io_info, H5P_genplist_t *dx_plist, @@ -1010,11 +1019,17 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf { H5P_genplist_t *dx_plist; /* Pointer to DXPL */ H5FD_mpio_chunk_opt_t chunk_opt_mode; + #ifdef JK_MCHUNK_OPT_REMOVE int io_option = H5D_MULTI_CHUNK_IO_MORE_OPT; + #else // NEW + int io_option = H5D_ONE_LINK_CHUNK_IO; + #endif int sum_chunk = -1; +#ifdef JK_MCHUNK_OPT_REMOVE #ifdef H5_HAVE_INSTRUMENTED_LIBRARY htri_t temp_not_link_io = FALSE; #endif +#endif // JK_MCHUNK_OPT_REMOVE herr_t ret_value = SUCCEED; FUNC_ENTER_STATIC @@ -1034,6 +1049,7 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf if(H5FD_MPIO_CHUNK_ONE_IO == chunk_opt_mode) io_option = H5D_ONE_LINK_CHUNK_IO; /*no opt*/ /* direct request to multi-chunk-io */ +#ifdef JK_MCHUNK_OPT_REMOVE else if(H5FD_MPIO_CHUNK_MULTI_IO == chunk_opt_mode) io_option = H5D_MULTI_CHUNK_IO; /* via default path. branch by num threshold */ @@ -1057,6 +1073,7 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf temp_not_link_io = TRUE; #endif } /* end else */ +#endif // JK_MCHUNK_OPT_REMOVE #ifdef H5_HAVE_INSTRUMENTED_LIBRARY { @@ -1077,6 +1094,7 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf HGOTO_ERROR(H5E_IO, H5E_CANTSET, FAIL, "unable to set property value") } /* end if */ } /* end if */ +#ifdef JK_MCHUNK_OPT_REMOVE check_prop = H5P_exist_plist(plist, H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME); if(check_prop > 0) { if(H5D_MULTI_CHUNK_IO == io_option) { @@ -1101,14 +1119,20 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf HGOTO_ERROR(H5E_IO, H5E_CANTSET, FAIL, "unable to set property value") } /* end if */ } /* end if */ +#endif // JK_MCHUNK_OPT_REMOVE } #endif /* step 2: Go ahead to do IO.*/ - if(H5D_ONE_LINK_CHUNK_IO == io_option || H5D_ONE_LINK_CHUNK_IO_MORE_OPT == io_option) { + if(H5D_ONE_LINK_CHUNK_IO == io_option + #ifdef JK_MCHUNK_OPT_REMOVE + || H5D_ONE_LINK_CHUNK_IO_MORE_OPT == io_option + #endif + ) { if(H5D__link_chunk_collective_io(io_info, type_info, fm, sum_chunk, dx_plist) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish linked chunk MPI-IO") } /* end if */ + #ifdef JK_MCHUNK_OPT_REMOVE /* direct request to multi-chunk-io */ else if(H5D_MULTI_CHUNK_IO == io_option) { if(H5D__multi_chunk_collective_io(io_info, type_info, fm, dx_plist) < 0) @@ -1118,6 +1142,7 @@ H5D__chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_inf if(H5D__multi_chunk_collective_io(io_info, type_info, fm, dx_plist) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish optimized multiple chunk MPI-IO") } /* end else */ + #endif // JK_MCHUNK_OPT_REMOVE done: FUNC_LEAVE_NOAPI(ret_value) @@ -1130,9 +1155,9 @@ H5D__piece_mdset_io(const hid_t file_id, const size_t count, H5D_io_info_md_t *i { H5P_genplist_t *dx_plist; /* Pointer to DXPL */ H5FD_mpio_chunk_opt_t chunk_opt_mode; - #ifdef JK_ORI + #ifdef JK_MCHUNK_OPT_REMOVE int io_option = H5D_MULTI_CHUNK_IO_MORE_OPT; - #else + #else // NEW int io_option = H5D_ONE_LINK_CHUNK_IO; #endif int sum_chunk = -1; @@ -1157,8 +1182,13 @@ H5D__piece_mdset_io(const hid_t file_id, const size_t count, H5D_io_info_md_t *i chunk_opt_mode = (H5FD_mpio_chunk_opt_t)H5P_peek_unsigned(dx_plist, H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME); if(H5FD_MPIO_CHUNK_ONE_IO == chunk_opt_mode) io_option = H5D_ONE_LINK_CHUNK_IO; /*no opt*/ + /* TODO: add this as part of HDFFV-8244 work for collectively + * independent IO feature */ + /* else if (H5FD_MPIO_ALL_PIECE_IND_IO == chunk_opt_mode) + io_option = H5D_ALL_PIECE_IND_IO; + */ + #ifdef JK_MCHUNK_OPT_REMOVE /* direct request to multi-chunk-io */ - #ifdef JK_TODO_LATER_ORI_REMOVE // else if(H5FD_MPIO_CHUNK_MULTI_IO == chunk_opt_mode) io_option = H5D_MULTI_CHUNK_IO; /* via default path. branch by num threshold */ @@ -1182,11 +1212,7 @@ H5D__piece_mdset_io(const hid_t file_id, const size_t count, H5D_io_info_md_t *i temp_not_link_io = TRUE; #endif } /* end else */ - #else - // JK_TODO add this as part of HDFFV-8244 work - // else if (H5FD_MPIO_ALL_CHUNK_IND_IO == chunk_opt_mode) - // io_option = H5D_ALL_CHUNK_IND_IO; - #endif // JK_TODO_LATER_ORI_REMOVE + #endif // JK_MCHUNK_OPT_REMOVE #ifdef H5_HAVE_INSTRUMENTED_LIBRARY htri_t check_prop; @@ -1201,6 +1227,7 @@ H5D__piece_mdset_io(const hid_t file_id, const size_t count, H5D_io_info_md_t *i HGOTO_ERROR(H5E_IO, H5E_CANTSET, FAIL, "unable to set property value") } /* end if */ } /* end if */ +#ifdef JK_MCHUNK_OPT_REMOVE check_prop = H5Pexist(io_info_md->dxpl_id, H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME); if(check_prop > 0) { if(H5D_MULTI_CHUNK_IO == io_option) { @@ -1225,10 +1252,15 @@ H5D__piece_mdset_io(const hid_t file_id, const size_t count, H5D_io_info_md_t *i HGOTO_ERROR(H5E_IO, H5E_CANTSET, FAIL, "unable to set property value") } /* end if */ } /* end if */ +#endif // JK_MCHUNK_OPT_REMOVE #endif /* step 2: Go ahead to do IO.*/ - if(H5D_ONE_LINK_CHUNK_IO == io_option || H5D_ONE_LINK_CHUNK_IO_MORE_OPT == io_option) { + if(H5D_ONE_LINK_CHUNK_IO == io_option + #ifdef JK_MCHUNK_OPT_REMOVE + || H5D_ONE_LINK_CHUNK_IO_MORE_OPT == io_option + #endif + ) { #ifdef JK_ORI if(H5D__link_chunk_collective_io(io_info, type_info, fm, sum_chunk, dx_plist) < 0) #else @@ -1236,7 +1268,7 @@ H5D__piece_mdset_io(const hid_t file_id, const size_t count, H5D_io_info_md_t *i #endif HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish linked chunk MPI-IO") } /* end if */ - #ifdef JK_SKIP1 //------------------------I + #ifdef JK_MCHUNK_OPT_REMOVE /* direct request to multi-chunk-io */ else if(H5D_MULTI_CHUNK_IO == io_option) { if(H5D__multi_chunk_collective_io(io_info, type_info, fm, dx_plist) < 0) @@ -1247,7 +1279,7 @@ H5D__piece_mdset_io(const hid_t file_id, const size_t count, H5D_io_info_md_t *i HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL, "couldn't finish optimized multiple chunk MPI-IO") } /* end else */ - #endif // JK_SKIP + #endif // JK_MCHUNK_OPT_REMOVE done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__piece_mdset_io */ @@ -1693,8 +1725,14 @@ H5D__all_piece_collective_io(UNUSED const hid_t file_id, const size_t count, #ifndef JK_ACTUALIO_MDSET if (io_info_md->dsets_info[i].layout->type == H5D_CHUNKED) actual_io_mode |= H5D_MPIO_CHUNK_COLLECTIVE; - else if (io_info_md->dsets_info[i].layout->type == H5D_CONTIGUOUS) + else if (io_info_md->dsets_info[i].layout->type == H5D_CONTIGUOUS) { actual_io_mode |= H5D_MPIO_CONTIGUOUS_COLLECTIVE; + #ifndef JK_TODO_MCHUNK_OPT + /* if only single-dset */ + if (1 == count) + actual_chunk_opt_mode = H5D_MPIO_NO_CHUNK_OPTIMIZATION; + #endif + } else HGOTO_ERROR(H5E_IO, H5E_UNSUPPORTED, FAIL, "unsupported storage layout") #endif @@ -2125,6 +2163,7 @@ if(H5DEBUG(D)) * *------------------------------------------------------------------------- */ +#ifdef JK_MCHUNK_OPT_REMOVE static herr_t H5D__multi_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, H5D_chunk_map_t *fm, H5P_genplist_t *dx_plist) @@ -2314,6 +2353,7 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__multi_chunk_collective_io */ +#endif // JK_MCHUNK_OPT_REMOVE @@ -2821,6 +2861,7 @@ done: * *------------------------------------------------------------------------- */ +#ifdef JK_MCHUNK_OPT_REMOVE static herr_t H5D__obtain_mpio_mode(H5D_io_info_t* io_info, H5D_chunk_map_t *fm, H5P_genplist_t *dx_plist, uint8_t assign_io_mode[], haddr_t chunk_addr[]) @@ -2990,4 +3031,5 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__obtain_mpio_mode() */ #endif /* H5_HAVE_PARALLEL */ +#endif // JK_MCHUNK_OPT_REMOVE diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h index 7adc231..538531f 100644 --- a/src/H5Dprivate.h +++ b/src/H5Dprivate.h @@ -82,11 +82,13 @@ #ifdef H5_HAVE_INSTRUMENTED_LIBRARY /* Collective chunk instrumentation properties */ #define H5D_XFER_COLL_CHUNK_LINK_HARD_NAME "coll_chunk_link_hard" +#ifdef JK_MCHUNK_OPT_REMOVE #define H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME "coll_chunk_multi_hard" #define H5D_XFER_COLL_CHUNK_LINK_NUM_TRUE_NAME "coll_chunk_link_true" #define H5D_XFER_COLL_CHUNK_LINK_NUM_FALSE_NAME "coll_chunk_link_false" #define H5D_XFER_COLL_CHUNK_MULTI_RATIO_COLL_NAME "coll_chunk_multi_coll" #define H5D_XFER_COLL_CHUNK_MULTI_RATIO_IND_NAME "coll_chunk_multi_ind" +#endif // JK_MCHUNK_OPT_REMOVE /* Definitions for all collective chunk instrumentation properties */ #define H5D_XFER_COLL_CHUNK_SIZE sizeof(unsigned) diff --git a/src/H5FDmpio.c b/src/H5FDmpio.c index 508cff3..a2075e5 100644 --- a/src/H5FDmpio.c +++ b/src/H5FDmpio.c @@ -632,6 +632,9 @@ done: * *------------------------------------------------------------------------- */ +/* TODO: This can be removed as we decided to remove multi-chunk-opt feature. + * For now, leave it here to make 'enc_dec_plist_with_endianess' test pass. + * This can be removed after HDFFV-8281 done */ herr_t H5Pset_dxpl_mpio_chunk_opt_num(hid_t dxpl_id, unsigned num_chunk_per_proc) { @@ -677,6 +680,9 @@ done: * *------------------------------------------------------------------------- */ +/* TODO: This can be removed as we decided to remove multi-chunk-opt feature. + * For now, leave it here to make 'enc_dec_plist_with_endianess' test pass. + * This can be removed after HDFFV-8281 done */ herr_t H5Pset_dxpl_mpio_chunk_opt_ratio(hid_t dxpl_id, unsigned percent_num_proc_per_chunk) { @@ -1999,7 +2005,7 @@ H5FD_mpio_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing) HGOTO_ERROR(H5E_INTERNAL, H5E_BADRANGE, FAIL, "cannot convert from haddr_t to MPI_Offset") /* Extend the file's size */ - #ifndef JK_FCLOSE_PATCH // from Quincey to make Fclose faster + #ifdef JK_FCLOSE_PATCH // from Quincey to make Fclose faster // Suren's modifications to disable truncate // Original code: commented out the following 2 lines // if(MPI_SUCCESS != (mpi_code = MPI_File_set_size(file->f, mpi_off))) diff --git a/src/H5FDmpiposix.c b/src/H5FDmpiposix.c index 9797502..e8f1e4b 100644 --- a/src/H5FDmpiposix.c +++ b/src/H5FDmpiposix.c @@ -1380,7 +1380,7 @@ H5FD_mpiposix_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closi if(-1 == HDlseek(file->fd, (HDoff_t)0, SEEK_SET)) HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position") #endif /* H5_VMS */ - #ifndef JK_FCLOSE_PATCH // from Quincey to make Fclose faster + #ifdef JK_FCLOSE_PATCH // from Quincey to make Fclose faster // Suren modification to disable file_truncate // Original code: two lines commented out // if(-1 == HDftruncate(file->fd, (HDoff_t)file->eoa)) diff --git a/src/H5Fsuper_cache.c b/src/H5Fsuper_cache.c index debf948..7b88336 100644 --- a/src/H5Fsuper_cache.c +++ b/src/H5Fsuper_cache.c @@ -475,7 +475,7 @@ H5F_sblock_load(H5F_t *f, hid_t dxpl_id, haddr_t UNUSED addr, void *_udata) /* (Account for the stored EOA being absolute offset -QAK) */ if((eof + sblock->base_addr) < stored_eoa) - #ifndef JK_FCLOSE_PATCH // from Quincey to make Fclose faster + #ifdef JK_FCLOSE_PATCH // from Quincey to make Fclose faster if((shared->flags & H5F_ACC_RDWR) || getenv("HDF5_TRUNCATE")) { HGOTO_ERROR(H5E_FILE, H5E_TRUNCATED, NULL, "truncated file: eof = %llu, sblock->base_addr = %llu, stored_eoa = %llu", (unsigned long long)eof, (unsigned long long)sblock->base_addr, (unsigned long long)stored_eoa) } diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h index 6b17e0b..2962e12 100644 --- a/src/H5Ppublic.h +++ b/src/H5Ppublic.h @@ -130,8 +130,12 @@ typedef enum H5D_mpio_actual_chunk_opt_mode_t { * I/O and contiguous collective I/O. */ H5D_MPIO_NO_CHUNK_OPTIMIZATION = 0, + #ifdef JK_MCHUNK_OPT_REMOVE H5D_MPIO_LINK_CHUNK, H5D_MPIO_MULTI_CHUNK + #else + H5D_MPIO_LINK_CHUNK + #endif } H5D_mpio_actual_chunk_opt_mode_t; typedef enum H5D_mpio_actual_io_mode_t { diff --git a/src/H5trace.c b/src/H5trace.c index 2babcd4..5a98f16 100644 --- a/src/H5trace.c +++ b/src/H5trace.c @@ -608,9 +608,11 @@ H5_trace(const double *returning, const char *func, const char *type, ...) fprintf(out, "H5D_MPIO_LINK_CHUNK"); break; + #ifdef JK_MCHUNK_OPT_REMOVE case H5D_MPIO_MULTI_CHUNK: fprintf(out, "H5D_MPIO_MULTI_CHUNK"); break; + #endif default: fprintf(out, "%ld", (long)chunk_opt_mode); |