|  | SIONlib
    2.0.0-rc.3
    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_mpi_mapped_options | sion_mpi_mapped_options | 
| Holds non-essential arguments for sion_paropen_mapped_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_paropen_mapped_mpi_with_options (const char *filename, sion_open_mode mode, int numfiles, MPI_Comm gcomm, int ntasks, const int *globalranks, const int *filenumbers, const int *localranks, const sion_mpi_mapped_options *options) | 
| 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_optionsMore... | |
| void | sion_mpi_options_delete (sion_mpi_options *options) | 
| Delete an instance of sion_mpi_optionsMore... | |
| 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... | |
| sion_mpi_mapped_options * | sion_mpi_mapped_options_new () | 
| Allocates and initializes an instance of sion_mpi_mapped_optionsMore... | |
| void | sion_mpi_mapped_options_delete (sion_mpi_mapped_options *options) | 
| Delete an instance of sion_mpi_mapped_optionsMore... | |
| void | sion_mpi_mapped_options_set_chunksizes (sion_mpi_mapped_options *options, int64_t *chunksizes) | 
| Set the chunk size of all logical files opened by a task.  More... | |
| void | sion_mpi_mapped_options_set_fsblksize (sion_mpi_mapped_options *options, int32_t fsblksize) | 
| Set the file system block size to assume.  More... | |
| void | sion_mpi_mapped_options_set_keyval_mode (sion_mpi_mapped_options *options, sion_keyval_mode keyval_mode) | 
| Set the key-value mode to use for a container.  More... | |
| void | sion_mpi_mapped_options_set_lowlevel_api (sion_mpi_mapped_options *options, sion_lowlevel_api lowlevel_api) | 
| Set the low-level API to use for opening a container.  More... | |
| void | sion_mpi_mapped_options_set_endianness (sion_mpi_mapped_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_mapped_options sion_mpi_mapped_options | 
Holds non-essential arguments for sion_paropen_mapped_mpi(). 
These are:
Definition at line 69 of file sion_mpi.h.
| typedef struct sion_mpi_options sion_mpi_options | 
Holds non-essential arguments for sion_paropen_mpi(). 
These are:
Definition at line 1 of file sion_mpi.h.
| void sion_mpi_mapped_options_delete | ( | sion_mpi_mapped_options * | options | ) | 
Delete an instance of sion_mpi_mapped_options 
| [in] | options | a pointer to the instance to delete | 
Definition at line 306 of file sion_mpi_gen.c.
| sion_mpi_mapped_options* sion_mpi_mapped_options_new | ( | ) | 
Allocates and initializes an instance of sion_mpi_mapped_options 
NULL if allocation failed Definition at line 297 of file sion_mpi_gen.c.
| void sion_mpi_mapped_options_set_chunksizes | ( | sion_mpi_mapped_options * | options, | 
| int64_t * | chunksizes | ||
| ) | 
Set the chunk size of all logical files opened by a task.
| [in,out] | options | an options object | 
| [in] | chunksizes | chunk sizes for the logical file opened by this process (one entry per opened logical file) | 
Definition at line 311 of file sion_mpi_gen.c.
References sion_generic_mapped_options_set_chunksizes().
| void sion_mpi_mapped_options_set_endianness | ( | sion_mpi_mapped_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 331 of file sion_mpi_gen.c.
References sion_generic_mapped_options_set_endianness().
| void sion_mpi_mapped_options_set_fsblksize | ( | sion_mpi_mapped_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 316 of file sion_mpi_gen.c.
References sion_generic_mapped_options_set_fsblksize().
| void sion_mpi_mapped_options_set_keyval_mode | ( | sion_mpi_mapped_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 321 of file sion_mpi_gen.c.
References sion_generic_mapped_options_set_keyval_mode().
| void sion_mpi_mapped_options_set_lowlevel_api | ( | sion_mpi_mapped_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 326 of file sion_mpi_gen.c.
References sion_generic_mapped_options_set_lowlevel_api().
| 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 230 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 221 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 262 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 267 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 235 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 272 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 282 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 277 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 292 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 240 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 257 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 287 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 251 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 245 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 336 of file sion_mpi_gen.c.