summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/H5Dio.c2
-rw-r--r--src/H5Dmpio.c74
-rw-r--r--src/H5Dprivate.h2
-rw-r--r--src/H5FDmpio.c8
-rw-r--r--src/H5FDmpiposix.c2
-rw-r--r--src/H5Fsuper_cache.c2
-rw-r--r--src/H5Ppublic.h4
-rw-r--r--src/H5trace.c2
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);