SIONlib  1.7.4
Scalable I/O library for parallel access to task-local files
sion_generic.h
Go to the documentation of this file.
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 
16 #ifndef SION_SION_GENERIC_H
17 #define SION_SION_GENERIC_H
18 
19 #include <stdio.h>
20 
21 #include "sion_const.h"
22 #include "sion_datatypes.h"
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Datatypes used for the collective operations */
29 int sion_generic_create_api( char *name );
30 int sion_generic_free_api( int aip );
31 
32 int sion_generic_register_create_local_commgroup_cb(int aid, int create_lcg_cb(void **, void *, int, int, int, int, int, int));
33 int sion_generic_register_free_local_commgroup_cb(int aid, int free_lcg_cb(void *));
34 
35 int sion_generic_register_barrier_cb(int aid, int barrier_cb(void *));
36 int sion_generic_register_bcastr_cb(int aid, int bcastr_cb(void *,void *, int, int, int));
37 int sion_generic_register_gatherr_cb(int aid, int gatherr_cb(void *,void *,void *, int, int, int));
38 int sion_generic_register_gathervr_cb(int aid, int gathervr_cb(void *,void *,void *, int, int *, int, int));
39 int sion_generic_register_scatterr_cb(int aid, int scatterr_cb(void *,void *,void *, int, int, int));
40 int sion_generic_register_scattervr_cb(int aid, int scattervr_cb(void *,void *,void *, int, int *, int, int));
41 int sion_generic_register_get_multi_filename_cb(int aid, char *get_multi_filename_cb(const char *, int));
42 
43 int sion_generic_register_gather_and_execute_cb(int aid, int gather_execute_cb(const void *, sion_int64*, int, sion_int64,
44  void *, int, int, int, int,
45  int process_cb(const void *,sion_int64 *, int)));
46 int sion_generic_register_execute_and_scatter_cb(int aid, int execute_scatter_cb(void *, sion_int64*, int, sion_int64,
47  void *, int, int, int, int,
48  int process_cb(void *,sion_int64 *, int)));
49 int sion_generic_register_get_capability_cb(int aid, int get_capability_cb(void *));
50 
51 
52 
53 int sion_generic_paropen(int aid,
54  const char* fname,
55  const char* file_mode,
56  sion_int64* chunksize,
57  sion_int32* fsblksize,
58  void* gcommgroup,
59  int grank,
60  int gsize,
61  int* filenumber,
62  int* numfiles,
63  const int* lrank,
64  const int* lsize,
65  FILE** fileptr,
66  char** newfname
67  );
68 
69 int sion_generic_parclose(int sid);
70 
71 int sion_generic_paropen_mapped(int aid,
72  char *fname,
73  const char *file_mode,
74  int *numFiles,
75  void *gcommgroup,
76  int grank,
77  int gsize,
78  int *nlocaltasks,
79  int **globalranks,
80  sion_int64 **chunksizes,
81  int **mapping_filenrs,
82  int **mapping_lranks,
83  sion_int32 *fsblksize,
84  FILE **fileptr );
85 
86 int sion_generic_parclose_mapped(int sid);
87 
88 int sion_generic_parreinit(int sid, sion_int64 chunksize );
89 
90 size_t sion_coll_fwrite(const void *data, size_t size, size_t nitems, int sid);
91 size_t sion_coll_fread( void *data, size_t size, size_t nitems, int sid);
92 
93 #ifdef __cplusplus
94 }
95 #endif
96 
97 #endif
int sion_generic_paropen(int aid, const char *fname, const char *file_mode, sion_int64 *chunksize, sion_int32 *fsblksize, void *gcommgroup, int grank, int gsize, int *filenumber, int *numfiles, const int *lrank, const int *lsize, FILE **fileptr, char **newfname)
Open a sion file a generic interface.
Definition: sion_generic.c:351