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

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

Typedefs

typedef struct sion_omp_options sion_omp_options
 Holds non-essential arguments for sion_paropen_omp(). More...
 

Functions

int sion_paropen_omp (const char *filename, sion_open_mode mode, const sion_omp_options *options)
 Open a SIONlib file from multiple OpenMP threads. More...
 
int sion_parclose_omp (int sid)
 closes a SIONlib file previously opened in OpenMP mode More...
 
sion_omp_optionssion_omp_options_new ()
 Allocates and initializes an instance of sion_omp_options More...
 
void sion_omp_options_delete (sion_omp_options *options)
 Delete an instance of sion_omp_options More...
 
void sion_omp_options_set_chunksize (sion_omp_options *options, int64_t chunksize)
 Set the chunk size of a logical file in the container. More...
 
void sion_omp_options_set_fsblksize (sion_omp_options *options, int32_t fsblksize)
 Set the file system block size to assume. More...
 
void sion_omp_options_set_keyval_mode (sion_omp_options *options, sion_keyval_mode keyval_mode)
 Set the key-value mode to use for a container. More...
 
void sion_omp_options_set_collective (sion_omp_options *options)
 Enable collective I/O. More...
 
void sion_omp_options_set_collective_size (sion_omp_options *options, int32_t size)
 Enable collective I/O. More...
 
void sion_omp_options_set_collective_merge (sion_omp_options *options)
 Use collective merging. More...
 
void sion_omp_options_set_lowlevel_api (sion_omp_options *options, sion_lowlevel_api lowlevel_api)
 Set the low-level API to use for opening a container. More...
 
void sion_omp_options_set_endianness (sion_omp_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 in parallel.

Typedef Documentation

◆ sion_omp_options

Holds non-essential arguments for sion_paropen_omp().

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 collective I/O,
  • what low-level API to use for file system access,
  • the endianness of user data in the file.

Definition at line 37 of file sion_omp.h.

Function Documentation

◆ sion_omp_options_delete()

void sion_omp_options_delete ( sion_omp_options options)

Delete an instance of sion_omp_options

Parameters
[in]optionsa pointer to the instance to delete

Definition at line 81 of file sion_omp_gen.c.

◆ sion_omp_options_new()

sion_omp_options* sion_omp_options_new ( )

Allocates and initializes an instance of sion_omp_options

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

Definition at line 72 of file sion_omp_gen.c.

◆ sion_omp_options_set_chunksize()

void sion_omp_options_set_chunksize ( sion_omp_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 86 of file sion_omp_gen.c.

References sion_generic_options_set_chunksize().

◆ sion_omp_options_set_collective()

void sion_omp_options_set_collective ( sion_omp_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 101 of file sion_omp_gen.c.

References sion_omp_options_set_collective_size().

◆ sion_omp_options_set_collective_merge()

void sion_omp_options_set_collective_merge ( sion_omp_options options)

Use collective merging.

See also
Collective API
Parameters
[in]optionsan options object

Definition at line 111 of file sion_omp_gen.c.

References sion_generic_options_set_collective_merge().

◆ sion_omp_options_set_collective_size()

void sion_omp_options_set_collective_size ( sion_omp_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 106 of file sion_omp_gen.c.

References sion_generic_options_set_collective_size().

Referenced by sion_omp_options_set_collective().

Here is the caller graph for this function:

◆ sion_omp_options_set_endianness()

void sion_omp_options_set_endianness ( sion_omp_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 121 of file sion_omp_gen.c.

References sion_generic_options_set_endianness().

◆ sion_omp_options_set_fsblksize()

void sion_omp_options_set_fsblksize ( sion_omp_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 91 of file sion_omp_gen.c.

References sion_generic_options_set_fsblksize().

◆ sion_omp_options_set_keyval_mode()

void sion_omp_options_set_keyval_mode ( sion_omp_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 96 of file sion_omp_gen.c.

References sion_generic_options_set_keyval_mode().

◆ sion_omp_options_set_lowlevel_api()

void sion_omp_options_set_lowlevel_api ( sion_omp_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 116 of file sion_omp_gen.c.

References sion_generic_options_set_lowlevel_api().

◆ sion_parclose_omp()

int sion_parclose_omp ( int  sid)

closes a SIONlib file previously opened in OpenMP mode

Parameters
[in]sidSIONlib file id
Returns
success value (SION_SUCCESS or SION_NOT_SUCCESS)

Definition at line 46 of file sion_omp_gen.c.

◆ sion_paropen_omp()

int sion_paropen_omp ( const char *  filename,
sion_open_mode  mode,
const sion_omp_options options 
)

Open a SIONlib file from multiple OpenMP threads.

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

Parameters
[in]filenamename of file, should be equal on all threads
[in]modewhether to open the file for reading or writing
[in]optionsadditional options, or NULL
Returns
a SIONlib file handle or -1 if an error occurred

Definition at line 126 of file sion_omp_gen.c.

References sion_lock_register_lock_callbacks().