SIONlib  1.6.1
Scalable I/O library for parallel access to task-local files
sion_mpi.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** SIONLIB http://www.fz-juelich.de/jsc/sionlib **
3 *****************************************************************************
4 ** Copyright (c) 2008-2015 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
9 
16 #ifndef SION_SION_MPI
17 #define SION_SION_MPI
18 
19 #ifdef MPI_VERSION
20 #include "sion_datatypes_mpi.h"
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25  int sion_paropen_mpi( const char *fname,
26  const char *file_mode,
27  int *numFiles,
28  MPI_Comm gComm,
29  const MPI_Comm *lComm,
30  sion_int64 *chunksize,
31  sion_int32 *fsblksize,
32  int *globalrank,
33  FILE **fileptr,
34  char **newfname);
35 
36  int sion_parclose_mpi( int sid );
37  int sion_parreinit_mpi( int sid,
38  sion_int64 chunksize );
39 
40 /* new mapped functions */
41 
42 /* open function:
43  write-mode:
44  if numFiles > 1 --> mapping_filenrs, mapping_lranks contains local mappping
45  */
46 
47  int sion_paropen_mapped_mpi( char *fname,
48  const char *file_mode,
49  int *numFiles,
50  MPI_Comm gComm,
51  int *nlocaltasks,
52  int **globalranks,
53  sion_int64 **chunksizes,
54  int **mapping_filenrs,
55  int **mapping_lranks,
56  sion_int32 *fsblksize,
57  FILE **fileptr);
58 
59  int sion_parclose_mapped_mpi( int sid );
60 
61  /* Serialization */
62  int sion_startof_transaction_mpi( int sid );
63  int sion_endof_transaction_mpi ( int sid );
64  size_t sion_coll_fwrite_mpi(const void *data, size_t size, size_t nitems, int sid);
65  size_t sion_coll_fread_mpi( void *data, size_t size, size_t nitems, int sid);
66 
67  /* for backward compatibility */
68  int sion_paropen_comms_mpi(char *fname,
69  const char *file_mode,
70  int *numFiles,
71  MPI_Comm gComm,
72  MPI_Comm lComm, sion_int64 *chunksize, sion_int32 *fsblksize, int *globalrank, FILE **fileptr, char *newfname);
73  int sion_paropen_multi_mpi(char *fname,
74  const char *file_mode,
75  int *numFiles,
76  MPI_Comm gComm,
77  MPI_Comm *lComm, sion_int64 *chunksize, sion_int32 *fsblksize, int *globalrank, FILE **fileptr, char *newfname);
78 
79 
80 #ifdef __cplusplus
81 }
82 #endif
83 
84 #else
85  #define sion_paropen_mpi "sion_paropen_mpi not defined if mpi.h not included, please include mpi.h before including sion_mpi.h"
86 #endif
87 
88 
89 #endif
int sion_paropen_mpi(const char *fname, const char *file_mode, int *numFiles, MPI_Comm gComm, const MPI_Comm *lComm, sion_int64 *chunksize, sion_int32 *fsblksize, int *globalrank, FILE **fileptr, char **newfname)
Open a sion file using MPI.
Definition: sion_mpi_gen.c:81
int sion_parclose_mpi(int sid)
Close a sion file using MPI.
Definition: sion_mpi_gen.c:228