SIONlib  2.0.0-rc.2
Scalable I/O library for parallel access to task-local files
sion_ompi.h
1 /****************************************************************************
2 ** SIONLIB http://www.fz-juelich.de/jsc/sionlib **
3 *****************************************************************************
4 ** Copyright (c) 2008-2019 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
9 
10 #ifndef SION_SION_OMPI_H
11 #define SION_SION_OMPI_H
12 
13 #ifdef SION_OMPI
14 
19 
20 #include <stdint.h>
21 #include <stdio.h>
22 
23 #include <mpi.h>
24 
25 #include "sion_const.h"
26 #include "sion_datatypes_mpi.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
44 
57 int sion_paropen_ompi(const char *filename, sion_open_mode mode, MPI_Comm communicator, const sion_ompi_options *options);
58 
62 int sion_parclose_ompi(int sid);
63 
68 
73 
78 void sion_ompi_options_set_chunksize(sion_ompi_options *options, int64_t chunksize);
79 
84 void sion_ompi_options_set_fsblksize(sion_ompi_options *options, int32_t fsblksize);
85 
90 void sion_ompi_options_set_multifile_number(sion_ompi_options *options, int multifile_number);
91 
100 void sion_ompi_options_set_multifile_communicator(sion_ompi_options *options, MPI_Comm multifile_communicator);
101 
107 
116 
125 void sion_ompi_options_set_buddylevel(sion_ompi_options *options, int32_t buddylevel);
126 
135 
142 void sion_ompi_options_set_collective_size(sion_ompi_options *options, int32_t size);
143 
150 
156 
162 
163 #ifdef __cplusplus
164 }
165 #endif
166 
168 
169 #endif
170 
171 #endif
sion_lowlevel_api
specifies a low-level API to use for file system access
Definition: sion_enums.h:19
void sion_ompi_options_set_endianness(sion_ompi_options *options, sion_endianness endianness)
Set the endianness for the contents of a container.
struct sion_ompi_options sion_ompi_options
Holds non-essential arguments for sion_paropen_ompi().
Definition: sion_ompi.h:43
void sion_ompi_options_set_collective(sion_ompi_options *options)
Enable collective I/O.
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.
Definition: sion_ompi_gen.c:99
void sion_ompi_options_set_fsblksize(sion_ompi_options *options, int32_t fsblksize)
Set the file system block size to assume.
Definition: sion_ompi_gen.c:82
void sion_ompi_options_set_chunksize(sion_ompi_options *options, int64_t chunksize)
Set the chunk size of a logical file in the container.
Definition: sion_ompi_gen.c:77
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.
sion_ompi_options * sion_ompi_options_new()
Allocates and initializes an instance of sion_ompi_options
Definition: sion_ompi_gen.c:63
void sion_ompi_options_set_multifile_number(sion_ompi_options *options, int multifile_number)
Set the number of physical files to use.
Definition: sion_ompi_gen.c:87
void sion_ompi_options_set_multifile_communicator(sion_ompi_options *options, MPI_Comm multifile_communicator)
Create multiple physical files based on disjunct communicators.
Definition: sion_ompi_gen.c:93
void sion_ompi_options_set_collective_merge(sion_ompi_options *options)
Use collective merging.
void sion_ompi_options_set_buddy(sion_ompi_options *options)
Enable buddy checkpointing mechanism.
int sion_parclose_ompi(int sid)
closes a SIONlib file previously opened in OpenMP/MPI mode
Definition: sion_ompi_gen.c:50
sion_keyval_mode
specifies whether to use SIONlib's key-value mechanism for accessing file content and if so in what m...
Definition: sion_enums.h:35
void sion_ompi_options_delete(sion_ompi_options *options)
Delete an instance of sion_ompi_options
Definition: sion_ompi_gen.c:72
sion_endianness
declares the endianness of user data written to a file
Definition: sion_enums.h:63
sion_open_mode
specifies for what type of access to open a file
Definition: sion_enums.h:27
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.
void sion_ompi_options_set_collective_size(sion_ompi_options *options, int32_t size)
Enable collective I/O.
void sion_ompi_options_set_buddylevel(sion_ompi_options *options, int32_t buddylevel)
Enable buddy checkpointing mechanism.