summaryrefslogtreecommitdiffstats
path: root/src/H5FDmpi.h
diff options
context:
space:
mode:
authorMuQun Yang <ymuqun@hdfgroup.org>2006-03-14 18:29:35 (GMT)
committerMuQun Yang <ymuqun@hdfgroup.org>2006-03-14 18:29:35 (GMT)
commita4c816eb75c20de14a5e557ffd76c33190152ce2 (patch)
treed486af4248f19dca54b25c525af5e79766a37959 /src/H5FDmpi.h
parent838e79971076a29aea1fbad1c1b8d218d6da8644 (diff)
downloadhdf5-a4c816eb75c20de14a5e557ffd76c33190152ce2.zip
hdf5-a4c816eb75c20de14a5e557ffd76c33190152ce2.tar.gz
hdf5-a4c816eb75c20de14a5e557ffd76c33190152ce2.tar.bz2
[svn-r12090] Purpose:
New APIs to add for collective chunk IO Description: Three new APIs H5Pset_dxpl_mpio_chunk_opt_ratio H5Pset_dxpl_mpio_chunk_opt_num H5Pset_dxpl_mpio_chunk_opt for optional optimization choices from users. Solution: Haven't added tests yet, won't affect other parts of the library. Will add tests after urgent investigations of memory leaking problems from NASA Aura team. Platforms tested: heping: both parallel and sequential shanti Misc. update:
Diffstat (limited to 'src/H5FDmpi.h')
-rw-r--r--src/H5FDmpi.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/H5FDmpi.h b/src/H5FDmpi.h
index aac7bf6..c9da439 100644
--- a/src/H5FDmpi.h
+++ b/src/H5FDmpi.h
@@ -21,12 +21,34 @@
#ifndef H5FDmpi_H
#define H5FDmpi_H
+/***** Macros for One linked collective IO case. *****/
+/* The default value to do one linked collective IO for all chunks.
+ If the average number of chunks per process is greater than this value,
+ the library will create an MPI derived datatype to link all chunks to do collective IO.
+ The user can set this value through an API. */
+
+#define H5D_ONE_LINK_CHUNK_IO_THRESHOLD 0
+/***** Macros for multi-chunk collective IO case. *****/
+/* The default value of the threshold to do collective IO for this chunk.
+ If the average number of processes per chunk is greater than the default value,
+ collective IO is done for this chunk.
+*/
+
+#define H5D_MULTI_CHUNK_IO_COL_THRESHOLD 50
/* Type of I/O for data transfer properties */
typedef enum H5FD_mpio_xfer_t {
H5FD_MPIO_INDEPENDENT = 0, /*zero is the default*/
H5FD_MPIO_COLLECTIVE
} H5FD_mpio_xfer_t;
+/* Type of I/O for data transfer properties */
+typedef enum H5FD_mpio_chunk_opt_t {
+ H5FD_MPIO_OPT_IGNORE = 0,
+ H5FD_MPIO_OPT_ONE_IO, /*zero is the default*/
+ H5FD_MPIO_OPT_MULTI_IO
+} H5FD_mpio_chunk_opt_t;
+
+
#ifdef H5_HAVE_PARALLEL
/* Sub-class the H5FD_class_t to add more specific functions for MPI-based VFDs */