10 #ifndef SION_SION_GENERIC_H
11 #define SION_SION_GENERIC_H
127 #include "sion_enums.h"
138 void **local_commgroup,
void *global_commgroup,
int grank,
int gsize,
int lrank,
int lsize,
int filenumber,
int numfiles);
151 typedef int (*
sion_bcastr_cb)(
void *data,
void *commgroup,
int datatype,
int nelem,
int root);
159 typedef int (*
sion_gatherr_cb)(
void *indata,
void *outdata,
void *commgroup,
int datatype,
int nelem,
int root);
168 typedef int (*
sion_gathervr_cb)(
void *indata,
void *outdata,
void *commdata,
int datatype,
int *count,
int nelem,
int root);
176 typedef int (*
sion_scatterr_cb)(
void *indata,
void *outdata,
void *commgroup,
int datatype,
int nelem,
int root);
185 typedef int (*
sion_scattervr_cb)(
void *indata,
void *outdata,
void *commgroup,
int datatype,
int *count,
int nelem,
int root);
187 typedef char *(*sion_get_multi_filename_cb)(
const char *, int);
189 typedef int64_t (*sion_gather_execute_cb)(
const void *, int64_t,
void *, int, int, int, int,
190 int64_t process_cb(
const void *, int64_t *,
int),
void *,
bool spec_iterator_cb(
void *, int64_t *));
192 typedef int64_t (*sion_execute_scatter_cb)(
void *, int64_t,
void *, int, int, int, int,
193 int64_t process_cb(
void *, int64_t *,
int),
void *,
bool spec_iterator_cb(
void *, int64_t *));
195 typedef int (*sion_get_capability_cb)(
void *);
233 int sion_generic_register_get_multi_filename_cb(
int aid, sion_get_multi_filename_cb cb);
241 int sion_generic_register_get_capability_cb(
int aid, sion_get_capability_cb cb);
349 int gsize,
int *nlocaltasks,
int **globalranks, int64_t **chunksizes,
int **mapping_filenrs,
int **mapping_lranks,
350 int32_t *fsblksize, FILE **fileptr);
352 int sion_generic_paropen_mapped_with_options(
int aid,
const char *fname,
sion_open_mode mode,
int numfiles,
void *gcommgroup,
353 int grank,
int gsize,
int ntasks,
const int *globalranks,
const int *filenumbers,
const int *localranks,
356 int sion_generic_parclose_mapped(
int sid);
358 int sion_generic_parreinit(
int sid, int64_t chunksize);
675 size_t sion_coll_write(
const void *data,
size_t size,
size_t nitems,
int sid);
680 size_t sion_coll_fwrite(
const void *data,
size_t size,
size_t nitems,
int sid);
702 size_t sion_coll_read(
void *data,
size_t size,
size_t nitems,
int sid);
707 size_t sion_coll_fread(
void *data,
size_t size,
size_t nitems,
int sid);
size_t sion_coll_write(const void *data, size_t size, size_t nitems, int sid)
Write data to a SIONlib file using collective I/O.
size_t sion_coll_read(void *data, size_t size, size_t nitems, int sid)
Read data from SIONlib file using collective I/O.
size_t sion_coll_fread(void *data, size_t size, size_t nitems, int sid)
Read data from SIONlib file using collective I/O.
size_t sion_coll_fwrite(const void *data, size_t size, size_t nitems, int sid)
Write data to a SIONlib file using collective I/O.
sion_open_mode
specifies for what type of access to open a file
sion_lowlevel_api
specifies a low-level API to use for file system access
sion_endianness
declares the endianness of user data written to a file
sion_keyval_mode
specifies whether to use SIONlib's key-value mechanism for accessing file content and if so in what m...
void sion_generic_mapped_options_set_endianness(sion_generic_mapped_options *options, sion_endianness endianness)
Set the endianness for the contents of a container.
void sion_generic_options_set_collective(sion_generic_options *options)
Enable collective I/O.
int(* sion_gatherr_cb)(void *indata, void *outdata, void *commgroup, int datatype, int nelem, int root)
performs a gather operation on all tasks described with commgroup (local or global)
void sion_generic_options_set_collective_size(sion_generic_options *options, int32_t size)
Enable collective I/O.
void sion_generic_options_set_fsblksize(sion_generic_options *options, int32_t fsblksize)
Set the file system block size to assume.
void sion_generic_options_set_buddy(sion_generic_options *options)
Enable buddy checkpointing mechanism.
sion_generic_mapped_options * sion_generic_mapped_options_new()
Allocates and initializes an instance of sion_generic_mapped_options
int sion_generic_free_api(int aip)
free new api
void sion_generic_mapped_options_set_lowlevel_api(sion_generic_mapped_options *options, sion_lowlevel_api lowlevel_api)
Set the low-level API to use for opening a container.
int(* sion_create_lcg_cb)(void **local_commgroup, void *global_commgroup, int grank, int gsize, int lrank, int lsize, int filenumber, int numfiles)
creates data structures for local communication group
int sion_generic_register_scattervr_cb(int aid, sion_scattervr_cb cb)
register callback for communication
int(* sion_bcastr_cb)(void *data, void *commgroup, int datatype, int nelem, int root)
performs a broadcast operation from task root to all other tasks described with commgroup (local or g...
void sion_generic_mapped_options_set_chunksizes(sion_generic_mapped_options *options, int64_t *chunksizes)
Set the chunk size of all logical files opened by a task.
int sion_generic_register_barrier_cb(int aid, sion_barrier_cb cb)
register callback for communication
void sion_generic_options_set_collective_merge(sion_generic_options *options)
Use collective merging.
int sion_generic_paropen_mapped(int aid, char *fname, const char *file_mode, int *numFiles, void *gcommgroup, int grank, int gsize, int *nlocaltasks, int **globalranks, int64_t **chunksizes, int **mapping_filenrs, int **mapping_lranks, int32_t *fsblksize, FILE **fileptr)
int sion_generic_paropen(int aid, const char *filename, sion_open_mode mode, void *gcommgroup, int grank, int gsize, int filenumber, int numfiles, int lrank, int lsize, const sion_generic_options *options)
Open a SIONlib file through a generic interface.
int sion_generic_register_scatterr_cb(int aid, sion_scatterr_cb cb)
register callback for communication
int(* sion_free_lcg_cb)(void *local_commgroup)
free data structure which local_commgroup points on
void sion_generic_options_set_endianness(sion_generic_options *options, sion_endianness endianness)
Set the endianness for the contents of a container.
void sion_generic_options_set_chunksize(sion_generic_options *options, int64_t chunksize)
Set the chunk size of a logical file in the container.
int sion_generic_create_api(char *name)
Create new api.
void sion_generic_options_set_buddylevel(sion_generic_options *options, int32_t buddylevel)
Enable buddy checkpointing mechanism.
int sion_generic_register_gathervr_cb(int aid, sion_gathervr_cb cb)
register callback for communication
void sion_generic_mapped_options_set_fsblksize(sion_generic_mapped_options *options, int32_t fsblksize)
Set the file system block size to assume.
int sion_generic_register_bcastr_cb(int aid, sion_bcastr_cb cb)
register callback for communication
struct sion_generic_options sion_generic_options
Holds non-essential arguments for sion_generic_paropen().
void sion_generic_options_set_lowlevel_api(sion_generic_options *options, sion_lowlevel_api lowlevel_api)
Set the low-level API to use for opening a container.
void sion_generic_mapped_options_set_keyval_mode(sion_generic_mapped_options *options, sion_keyval_mode keyval_mode)
Set the key-value mode to use for a container.
int sion_generic_register_create_local_commgroup_cb(int aid, sion_create_lcg_cb cb)
register callback to create local communication group
int(* sion_scatterr_cb)(void *indata, void *outdata, void *commgroup, int datatype, int nelem, int root)
performs a scatter operation on all tasks described with commgroup (local or global)
int sion_generic_register_gatherr_cb(int aid, sion_gatherr_cb cb)
register callback for communication
int(* sion_gathervr_cb)(void *indata, void *outdata, void *commdata, int datatype, int *count, int nelem, int root)
performs a gather operation on all tasks described with commdata (local or global)
int sion_generic_register_gather_and_execute_cb(int aid, sion_gather_execute_cb cb)
register callback for communication
void sion_generic_options_set_keyval_mode(sion_generic_options *options, sion_keyval_mode keyval_mode)
Set the key-value mode to use for a container.
struct sion_generic_mapped_options sion_generic_mapped_options
Holds non-essential arguments for sion_generic_paropen_mapped().
void sion_generic_options_delete(sion_generic_options *options)
Delete an instance of sion_generic_options
void sion_generic_mapped_options_delete(sion_generic_mapped_options *options)
Delete an instance of sion_generic_mapped_options
int(* sion_scattervr_cb)(void *indata, void *outdata, void *commgroup, int datatype, int *count, int nelem, int root)
performs a scatter operation on all tasks described with commgroup (local or global)
int(* sion_barrier_cb)(void *commgroup)
performs a barrier on all tasks described with commgroup (local or global)
int sion_generic_parclose(int sid)
Close a SIONlib file.
int sion_generic_register_execute_and_scatter_cb(int aid, sion_execute_scatter_cb cb)
register callback for communication
sion_generic_options * sion_generic_options_new()
Allocates and initializes an instance of sion_generic_options
int sion_generic_register_free_local_commgroup_cb(int aid, sion_free_lcg_cb cb)
register callback to free local communication group