diff options
author | rjzamora <rzamora@anl.gov> | 2018-12-14 23:18:32 (GMT) |
---|---|---|
committer | rjzamora <rzamora@anl.gov> | 2018-12-14 23:18:32 (GMT) |
commit | b5120771b1076ff32421b5d3cf71f76a25b2f8c7 (patch) | |
tree | 4457f7972e1735fcfe405827b1047dffbaa24e8f /src/H5Sprivate.h | |
parent | 7670f112caea0748574b6b1b9752543a168f2538 (diff) | |
download | hdf5-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.h | 29 |
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 */ - |