10 #ifndef SION_SION_MPI_H 11 #define SION_SION_MPI_H 24 #include "sion_const.h" 25 #include "sion_enums.h" 27 #include "sion_datatypes_mpi.h" 69 int sion_parreinit_mpi(
int sid, int64_t chunksize);
78 int sion_paropen_mapped_mpi(
char *fname,
const char *file_mode,
int *numFiles, MPI_Comm gComm,
int *nlocaltasks,
79 int **globalranks, int64_t **chunksizes,
int **mapping_filenrs,
int **mapping_lranks, int32_t *fsblksize, FILE **fileptr);
81 int sion_parclose_mapped_mpi(
int sid);
88 int sion_file_check_par_cb_mpi(
char *fname,
void *args);
sion_lowlevel_api
specifies a low-level API to use for file system access
sion_mpi_options * sion_mpi_options_new()
Allocates and initializes an instance of sion_mpi_options
void sion_mpi_options_set_collective(sion_mpi_options *options)
Enable collective I/O.
void sion_mpi_options_set_buddy(sion_mpi_options *options)
Enable buddy checkpointing mechanism.
void sion_mpi_options_set_collective_size(sion_mpi_options *options, int32_t size)
Enable collective I/O.
void sion_mpi_options_delete(sion_mpi_options *options)
Delete an instance of sion_mpi_options
void sion_mpi_options_set_chunksize(sion_mpi_options *options, int64_t chunksize)
Set the chunk size of a logical file in the container.
int sion_paropen_mpi(const char *filename, sion_open_mode mode, MPI_Comm communicator, const sion_mpi_options *options)
Open a SIONlib file from multiple MPI processes.
void sion_mpi_options_set_fsblksize(sion_mpi_options *options, int32_t fsblksize)
Set the file system block size to assume.
int sion_parclose_mpi(int sid)
Close a SIONlib file using MPI.
void sion_mpi_options_set_multifile_communicator(sion_mpi_options *options, MPI_Comm multifile_communicator)
Create multiple physical files based on disjunct communicators.
void sion_mpi_options_set_keyval_mode(sion_mpi_options *options, sion_keyval_mode keyval_mode)
Set the key-value mode to use for a container.
void sion_mpi_options_set_endianness(sion_mpi_options *options, sion_endianness endianness)
Set the endianness for the contents of a container.
sion_keyval_mode
specifies whether to use SIONlib's key-value mechanism for accessing file content and if so in what m...
void sion_mpi_options_set_multifile_number(sion_mpi_options *options, int multifile_number)
Set the number of physical files to use.
sion_endianness
declares the endianness of user data written to a file
sion_open_mode
specifies for what type of access to open a file
void sion_mpi_options_set_collective_merge(sion_mpi_options *options)
Use collective merging.
void sion_mpi_options_set_buddylevel(sion_mpi_options *options, int32_t buddylevel)
Enable buddy checkpointing mechanism.
struct sion_mpi_options sion_mpi_options
Holds non-essential arguments for sion_paropen_mpi().
void sion_mpi_options_set_lowlevel_api(sion_mpi_options *options, sion_lowlevel_api lowlevel_api)
Set the low-level API to use for opening a container.