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