SIONlib  2.0.0-rc.2
Scalable I/O library for parallel access to task-local files
Typedefs | Functions
MPI+OpenMP Parallel API

Open (and close) SIONlib files from multiple OpenMP threads on multiple MPI processes in parallel. More...

Typedefs

typedef struct sion_ompi_options sion_ompi_options
 Holds non-essential arguments for sion_paropen_ompi(). More...
 

Functions

int sion_paropen_ompi (const char *filename, sion_open_mode mode, MPI_Comm communicator, const sion_ompi_options *options)
 Open a SIONlib file from multiple OpenMP threads on multiple MPI processes in parallel. More...
 
int sion_parclose_ompi (int sid)
 closes a SIONlib file previously opened in OpenMP/MPI mode More...
 
sion_ompi_optionssion_ompi_options_new ()
 Allocates and initializes an instance of sion_ompi_options More...
 
void sion_ompi_options_delete (sion_ompi_options *options)
 Delete an instance of sion_ompi_options More...
 
void sion_ompi_options_set_chunksize (sion_ompi_options *options, int64_t chunksize)
 Set the chunk size of a logical file in the container. More...
 
void sion_ompi_options_set_fsblksize (sion_ompi_options *options, int32_t fsblksize)
 Set the file system block size to assume. More...
 
void sion_ompi_options_set_multifile_number (sion_ompi_options *options, int multifile_number)
 Set the number of physical files to use. More...
 
void sion_ompi_options_set_multifile_communicator (sion_ompi_options *options, MPI_Comm multifile_communicator)
 Create multiple physical files based on disjunct communicators. More...
 
void sion_ompi_options_set_keyval_mode (sion_ompi_options *options, sion_keyval_mode keyval_mode)
 Set the key-value mode to use for a container. More...
 
void sion_ompi_options_set_buddy (sion_ompi_options *options)
 Enable buddy checkpointing mechanism. More...
 
void sion_ompi_options_set_buddylevel (sion_ompi_options *options, int32_t buddylevel)
 Enable buddy checkpointing mechanism. More...
 
void sion_ompi_options_set_collective (sion_ompi_options *options)
 Enable collective I/O. More...
 
void sion_ompi_options_set_collective_size (sion_ompi_options *options, int32_t size)
 Enable collective I/O. More...
 
void sion_ompi_options_set_collective_merge (sion_ompi_options *options)
 Use collective merging. More...
 
void sion_ompi_options_set_lowlevel_api (sion_ompi_options *options, sion_lowlevel_api lowlevel_api)
 Set the low-level API to use for opening a container. More...
 
void sion_ompi_options_set_endianness (sion_ompi_options *options, sion_endianness endianness)
 Set the endianness for the contents of a container. More...
 

Detailed Description

Open (and close) SIONlib files from multiple OpenMP threads on multiple MPI processes in parallel.

Typedef Documentation

◆ sion_ompi_options

Holds non-essential arguments for sion_paropen_ompi().

These are:

  • the sizes of chunks for the logical file opened by this task,
  • the size of a file system block to assume,
  • whether and in what mode to use SIONlib's key-value mechanism,
  • whether to use the buddy redundancy mechanism,
  • whether to use collective I/O,
  • what low-level API to use for file system access,
  • the endianness of user data in the file,
  • how many files to use.

Definition at line 43 of file sion_ompi.h.

Function Documentation

◆ sion_ompi_options_delete()

void sion_ompi_options_delete ( sion_ompi_options options)

Delete an instance of sion_ompi_options

Parameters
[in]optionsa pointer to the instance to delete

Definition at line 72 of file sion_ompi_gen.c.

◆ sion_ompi_options_new()

sion_ompi_options* sion_ompi_options_new ( )

Allocates and initializes an instance of sion_ompi_options

Returns
a pointer to the new instance or NULL if allocation failed

Definition at line 63 of file sion_ompi_gen.c.

◆ sion_ompi_options_set_buddy()

void sion_ompi_options_set_buddy ( sion_ompi_options options)

Enable buddy checkpointing mechanism.

Has the same effect as sion_generic_options_set_buddylevel(options, 1).

See also
resiliency
Parameters
[in]optionsan options object

Definition at line 104 of file sion_ompi_gen.c.

References sion_ompi_options_set_buddylevel().

◆ sion_ompi_options_set_buddylevel()

void sion_ompi_options_set_buddylevel ( sion_ompi_options options,
int32_t  buddylevel 
)

Enable buddy checkpointing mechanism.

Enables a specific level of buddy redundancy.

See also
resiliency
Parameters
[in]optionsan options object
[in]buddylevelthe level of redundancy to use

Definition at line 109 of file sion_ompi_gen.c.

References sion_generic_options_set_buddylevel().

Referenced by sion_ompi_options_set_buddy().

Here is the caller graph for this function:

◆ sion_ompi_options_set_chunksize()

void sion_ompi_options_set_chunksize ( sion_ompi_options options,
int64_t  chunksize 
)

Set the chunk size of a logical file in the container.

Parameters
[in,out]optionsan options object
[in]chunksizechunk sizes for the logical file opened by this process

Definition at line 77 of file sion_ompi_gen.c.

References sion_generic_options_set_chunksize().

◆ sion_ompi_options_set_collective()

void sion_ompi_options_set_collective ( sion_ompi_options options)

Enable collective I/O.

The size of collector groups will be determined via heuristics.

See also
Collective API
Parameters
[in]optionsan options object

Definition at line 114 of file sion_ompi_gen.c.

References sion_ompi_options_set_collective_size().

◆ sion_ompi_options_set_collective_merge()

void sion_ompi_options_set_collective_merge ( sion_ompi_options options)

Use collective merging.

See also
Collective API
Parameters
[in]optionsan options object

Definition at line 124 of file sion_ompi_gen.c.

References sion_generic_options_set_collective_merge().

◆ sion_ompi_options_set_collective_size()

void sion_ompi_options_set_collective_size ( sion_ompi_options options,
int32_t  size 
)

Enable collective I/O.

See also
Collective API
Parameters
[in]optionsan options object
[in]sizesize of the collector groups

Definition at line 119 of file sion_ompi_gen.c.

References sion_generic_options_set_collective_size().

Referenced by sion_ompi_options_set_collective().

Here is the caller graph for this function:

◆ sion_ompi_options_set_endianness()

void sion_ompi_options_set_endianness ( sion_ompi_options options,
sion_endianness  endianness 
)

Set the endianness for the contents of a container.

Parameters
[in,out]optionsan options object
[in]endiannessthe endianness of the contents

Definition at line 134 of file sion_ompi_gen.c.

References sion_generic_options_set_endianness().

◆ sion_ompi_options_set_fsblksize()

void sion_ompi_options_set_fsblksize ( sion_ompi_options options,
int32_t  fsblksize 
)

Set the file system block size to assume.

Parameters
[in,out]optionsan options object
[in]fsblksizethe file system block size

Definition at line 82 of file sion_ompi_gen.c.

References sion_generic_options_set_fsblksize().

◆ sion_ompi_options_set_keyval_mode()

void sion_ompi_options_set_keyval_mode ( sion_ompi_options options,
sion_keyval_mode  keyval_mode 
)

Set the key-value mode to use for a container.

Parameters
[in,out]optionsan options object
[in]keyval_modethe key-value mode to use

Definition at line 99 of file sion_ompi_gen.c.

References sion_generic_options_set_keyval_mode().

◆ sion_ompi_options_set_lowlevel_api()

void sion_ompi_options_set_lowlevel_api ( sion_ompi_options options,
sion_lowlevel_api  lowlevel_api 
)

Set the low-level API to use for opening a container.

Parameters
[in,out]optionsan options object
[in]lowlevel_apithe low-level API to use

Definition at line 129 of file sion_ompi_gen.c.

References sion_generic_options_set_lowlevel_api().

◆ sion_ompi_options_set_multifile_communicator()

void sion_ompi_options_set_multifile_communicator ( sion_ompi_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_ompi().

Parameters
[in,out]optionsan options object
[in]multifile_communicator

Definition at line 93 of file sion_ompi_gen.c.

◆ sion_ompi_options_set_multifile_number()

void sion_ompi_options_set_multifile_number ( sion_ompi_options options,
int  multifile_number 
)

Set the number of physical files to use.

Parameters
[in,out]optionsan options object
[in]multifile_numberhow many files to use

Definition at line 87 of file sion_ompi_gen.c.

◆ sion_parclose_ompi()

int sion_parclose_ompi ( int  sid)

closes a SIONlib file previously opened in OpenMP/MPI mode

Parameters
[in]sidSIONlib file id

Definition at line 50 of file sion_ompi_gen.c.

◆ sion_paropen_ompi()

int sion_paropen_ompi ( const char *  filename,
sion_open_mode  mode,
MPI_Comm  communicator,
const sion_ompi_options options 
)

Open a SIONlib file from multiple OpenMP threads on multiple MPI processes in parallel.

This function opens a distinct logical file in a SIONlib container for each OpenMP thread on each MPI process that calls it.

Parameters
[in]filenamename of file, should be equal on all tasks
[in]modewhether to open the file for reading or writing
[in]communicatora communicator containing all processes that participate in opening the container
[in]optionsadditional options (or NULL)
Returns
a SIONlib file handle or -1 if an error occured

Definition at line 139 of file sion_ompi_gen.c.

References sion_lock_register_lock_callbacks().