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