![]() |
SIONlib
2.0.0-rc.2
Scalable I/O library for parallel access to task-local files
|
Open (and close) SIONlib files from multiple MPI processes in parallel. More...
Typedefs | |
typedef struct sion_mpi_options | sion_mpi_options |
Holds non-essential arguments for sion_paropen_mpi() . More... | |
typedef struct _sion_file_check_par_args_mpi_struct | sion_file_check_par_args_mpi |
Functions | |
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. More... | |
int | sion_parclose_mpi (int sid) |
Close a SIONlib file using MPI. More... | |
int | sion_parreinit_mpi (int sid, int64_t chunksize) |
int | sion_paropen_mapped_mpi (char *fname, const char *file_mode, int *numFiles, MPI_Comm gComm, int *nlocaltasks, int **globalranks, int64_t **chunksizes, int **mapping_filenrs, int **mapping_lranks, int32_t *fsblksize, FILE **fileptr) |
int | sion_parclose_mapped_mpi (int sid) |
sion_file_check_par_args_mpi * | sion_file_check_par_args_init_mpi (sion_open_mode mode, MPI_Comm communicator, const sion_mpi_options *options) |
void | sion_file_check_par_args_free_mpi (sion_file_check_par_args_mpi *args) |
int | sion_file_check_par_cb_mpi (char *fname, void *args) |
sion_mpi_options * | sion_mpi_options_new () |
Allocates and initializes an instance of sion_mpi_options More... | |
void | sion_mpi_options_delete (sion_mpi_options *options) |
Delete an instance of sion_mpi_options More... | |
void | sion_mpi_options_set_chunksize (sion_mpi_options *options, int64_t chunksize) |
Set the chunk size of a logical file in the container. More... | |
void | sion_mpi_options_set_fsblksize (sion_mpi_options *options, int32_t fsblksize) |
Set the file system block size to assume. More... | |
void | sion_mpi_options_set_multifile_number (sion_mpi_options *options, int multifile_number) |
Set the number of physical files to use. More... | |
void | sion_mpi_options_set_multifile_communicator (sion_mpi_options *options, MPI_Comm multifile_communicator) |
Create multiple physical files based on disjunct communicators. More... | |
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. More... | |
void | sion_mpi_options_set_buddy (sion_mpi_options *options) |
Enable buddy checkpointing mechanism. More... | |
void | sion_mpi_options_set_buddylevel (sion_mpi_options *options, int32_t buddylevel) |
Enable buddy checkpointing mechanism. More... | |
void | sion_mpi_options_set_collective (sion_mpi_options *options) |
Enable collective I/O. More... | |
void | sion_mpi_options_set_collective_size (sion_mpi_options *options, int32_t size) |
Enable collective I/O. More... | |
void | sion_mpi_options_set_collective_merge (sion_mpi_options *options) |
Use collective merging. More... | |
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. More... | |
void | sion_mpi_options_set_endianness (sion_mpi_options *options, sion_endianness endianness) |
Set the endianness for the contents of a container. More... | |
Open (and close) SIONlib files from multiple MPI processes in parallel.
typedef struct sion_mpi_options sion_mpi_options |
Holds non-essential arguments for sion_paropen_mpi()
.
These are:
Definition at line 44 of file sion_mpi.h.
void sion_mpi_options_delete | ( | sion_mpi_options * | options | ) |
Delete an instance of sion_mpi_options
[in] | options | a pointer to the instance to delete |
Definition at line 170 of file sion_mpi_gen.c.
sion_mpi_options* sion_mpi_options_new | ( | ) |
Allocates and initializes an instance of sion_mpi_options
NULL
if allocation failed Definition at line 161 of file sion_mpi_gen.c.
void sion_mpi_options_set_buddy | ( | sion_mpi_options * | options | ) |
Enable buddy checkpointing mechanism.
Has the same effect as sion_generic_options_set_buddylevel(options, 1)
.
[in] | options | an options object |
Definition at line 202 of file sion_mpi_gen.c.
References sion_mpi_options_set_buddylevel().
void sion_mpi_options_set_buddylevel | ( | sion_mpi_options * | options, |
int32_t | buddylevel | ||
) |
Enable buddy checkpointing mechanism.
Enables a specific level of buddy redundancy.
[in] | options | an options object |
[in] | buddylevel | the level of redundancy to use |
Definition at line 207 of file sion_mpi_gen.c.
References sion_generic_options_set_buddylevel().
Referenced by sion_mpi_options_set_buddy().
void sion_mpi_options_set_chunksize | ( | sion_mpi_options * | options, |
int64_t | chunksize | ||
) |
Set the chunk size of a logical file in the container.
[in,out] | options | an options object |
[in] | chunksize | chunk sizes for the logical file opened by this process |
Definition at line 175 of file sion_mpi_gen.c.
References sion_generic_options_set_chunksize().
void sion_mpi_options_set_collective | ( | sion_mpi_options * | options | ) |
Enable collective I/O.
The size of collector groups will be determined via heuristics.
[in] | options | an options object |
Definition at line 212 of file sion_mpi_gen.c.
References sion_mpi_options_set_collective_size().
void sion_mpi_options_set_collective_merge | ( | sion_mpi_options * | options | ) |
Use collective merging.
[in] | options | an options object |
Definition at line 222 of file sion_mpi_gen.c.
References sion_generic_options_set_collective_merge().
void sion_mpi_options_set_collective_size | ( | sion_mpi_options * | options, |
int32_t | size | ||
) |
Enable collective I/O.
[in] | options | an options object |
[in] | size | size of the collector groups |
Definition at line 217 of file sion_mpi_gen.c.
References sion_generic_options_set_collective_size().
Referenced by sion_mpi_options_set_collective().
void sion_mpi_options_set_endianness | ( | sion_mpi_options * | options, |
sion_endianness | endianness | ||
) |
Set the endianness for the contents of a container.
[in,out] | options | an options object |
[in] | endianness | the endianness of the contents |
Definition at line 232 of file sion_mpi_gen.c.
References sion_generic_options_set_endianness().
void sion_mpi_options_set_fsblksize | ( | sion_mpi_options * | options, |
int32_t | fsblksize | ||
) |
Set the file system block size to assume.
[in,out] | options | an options object |
[in] | fsblksize | the file system block size |
Definition at line 180 of file sion_mpi_gen.c.
References sion_generic_options_set_fsblksize().
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.
[in,out] | options | an options object |
[in] | keyval_mode | the key-value mode to use |
Definition at line 197 of file sion_mpi_gen.c.
References sion_generic_options_set_keyval_mode().
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.
[in,out] | options | an options object |
[in] | lowlevel_api | the low-level API to use |
Definition at line 227 of file sion_mpi_gen.c.
References sion_generic_options_set_lowlevel_api().
void sion_mpi_options_set_multifile_communicator | ( | sion_mpi_options * | options, |
MPI_Comm | multifile_communicator | ||
) |
Create multiple physical files based on disjunct communicators.
A separate physical file will be created for every distinct communicator. The union of all the different communicators should be the communicator passed to sion_paropen_mpi()
.
[in,out] | options | an options object |
[in] | multifile_communicator |
Definition at line 191 of file sion_mpi_gen.c.
void sion_mpi_options_set_multifile_number | ( | sion_mpi_options * | options, |
int | multifile_number | ||
) |
Set the number of physical files to use.
[in,out] | options | an options object |
[in] | multifile_number | how many files to use |
Definition at line 185 of file sion_mpi_gen.c.
int sion_parclose_mpi | ( | int | sid | ) |
Close a SIONlib file using MPI.
Uses sion_generic_parclose()
internally.
[in] | sid | SIONlib file handle |
Definition at line 34 of file sion_mpi_gen.c.
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.
This function opens a SIONlib file using MPI. It processes the MPI specific parts and then passes its arguments on to sion_generic_paropen()
.
[in] | filename | name of the file (must match on all processes) |
[in] | mode | what mode to open the file in |
[in] | communicator | a communicator containing all processes that call this function |
[in] | options | additional options or NULL |
Definition at line 237 of file sion_mpi_gen.c.