summaryrefslogtreecommitdiffstats
path: root/src/H5Sprivate.h
diff options
context:
space:
mode:
authorrjzamora <rzamora@anl.gov>2018-12-14 23:18:32 (GMT)
committerrjzamora <rzamora@anl.gov>2018-12-14 23:18:32 (GMT)
commitb5120771b1076ff32421b5d3cf71f76a25b2f8c7 (patch)
tree4457f7972e1735fcfe405827b1047dffbaa24e8f /src/H5Sprivate.h
parent7670f112caea0748574b6b1b9752543a168f2538 (diff)
downloadhdf5-b5120771b1076ff32421b5d3cf71f76a25b2f8c7.zip
hdf5-b5120771b1076ff32421b5d3cf71f76a25b2f8c7.tar.gz
hdf5-b5120771b1076ff32421b5d3cf71f76a25b2f8c7.tar.bz2
First commit of ccio branch to add changes for the topology-aware MPIO VFD. The topology-aware VFD is part of the custom-collective I/O (CCIO) verison of the MPIO VFD. All CCIO modifications rely on a flattened-buffer (flatbuf) representation of the data in file and memory space. The CCIO options are enabled by Env Vars, and work by rerouting the usual collective-IO calls into new select_read and select_write VFD callback functions. The flatbuf selections are performed using exisiting HDF5 functionalities for dataspace selections.
Diffstat (limited to 'src/H5Sprivate.h')
-rw-r--r--src/H5Sprivate.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h
index 32ac51a..899a2c9 100644
--- a/src/H5Sprivate.h
+++ b/src/H5Sprivate.h
@@ -314,10 +314,35 @@ H5_DLL herr_t H5S_mpio_space_type(const H5S_t *space, size_t elmt_size,
/* out: */ MPI_Datatype *new_type,
int *count,
hbool_t *is_derived_type,
- hbool_t do_permute,
+ hbool_t do_permute,
hsize_t **permute_map,
hbool_t * is_permuted);
+
+/*
+ * Buffer-flattening struct for derived MPI_Types.
+ * All values are in bytes.
+ */
+typedef struct H5S_flatbuf_t {
+ hsize_t count; /* number of contiguous blocks */
+ size_t *blocklens; /* array of contiguous block lengths (bytes)*/
+ hsize_t *indices; /*array of byte offsets of each block */
+ hsize_t extent; /* offset range for one instance of this flatbuf */
+ hsize_t size; /* number of bytes of block data */
+} H5S_flatbuf_t;
+H5_DLL herr_t H5S__hyper_get_seq_list(const H5S_t *space, unsigned H5_ATTR_UNUSED flags, H5S_sel_iter_t *iter,
+ size_t maxseq, size_t maxelem, size_t *nseq, size_t *nelem,
+ hsize_t *off, size_t *len);
+H5_DLL herr_t H5S__all_get_seq_list(const H5S_t *space, unsigned flags,
+ H5S_sel_iter_t *iter, size_t maxseq, size_t maxbytes,
+ size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len);
+H5_DLL herr_t H5S_point_get_seq_list(const H5S_t *space, unsigned flags, H5S_sel_iter_t *iter,
+ size_t maxseq, size_t maxelem, size_t *nseq, size_t *nelem,
+ hsize_t *off, size_t *len);
+
+H5_DLL herr_t H5S_mpio_return_space_rank_and_extent(const H5S_t *space, unsigned *rank, hsize_t *extent);
+
+H5_DLL herr_t H5S_mpio_return_space_extent_and_select_type(const H5S_t *space, hbool_t *is_permuted, hbool_t *is_regular, H5S_class_t *space_extent_type, H5S_sel_type *space_sel_type);
+
#endif /* H5_HAVE_PARALLEL */
#endif /* _H5Sprivate_H */
-