SIONlib  1.7.7
Scalable I/O library for parallel access to task-local files
sion_generic_buddy.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 #ifndef SION_SION_GENERIC_BUDDY_H
10 #define SION_SION_GENERIC_BUDDY_H
11 
12 #include "sion_const.h"
13 #include "sion_buddy_common.h"
14 #include "sion_generic_apidesc.h"
15 #include "sion_flags.h"
16 
17 int _sion_paropen_generic_buddy(
18  int sid,
19  const char *fname,
20  _sion_flags_store *flags_store,
21  char *prefix,
22  int *numFiles,
23  int *filenumber,
24  sion_int64 *chunksize,
25  sion_int32 *fsblksize,
26  int rank,
27  int ntasks,
28  int *globalrank,
29  FILE **fileptr,
30  _sion_generic_gendata *sion_gendata );
31 
32 int _sion_parclose_generic_buddy(int sid,
33  int rank,
34  int ntasks,
35  int mapping_size,
36  sion_int32 *mapping,
37  _sion_generic_gendata *sion_gendata );
38 
39 int _sion_coll_fwrite_buddy(const void *data,
40  size_t size,
41  size_t nitems,
42  int sid,
43  _sion_generic_gendata *sion_gendata );
44 
45 int _sion_coll_fread_buddy(void *data,
46  size_t size,
47  size_t nitems,
48  int sid);
49 
50 int _sion_buddy_map(
51  _sion_generic_gendata *sion_gendata,
52  int capability,
53  int buddy_idx,
54  _sion_generic_buddy_info *buddy_send,
55  _sion_generic_buddy_info *buddy_coll );
56 
57 int _sion_buddy_bwsched(int groupnr, int numgroups, int pass);
58 
59 int _sion_generic_collect_mapping_buddy( _sion_generic_buddy *buddyptr,
60  _sion_generic_gendata *sion_gendata,
61  int *mapping_size,
62  sion_int32 **mapping);
63 
64 int _sion_generic_buddy_get_and_distribute_info_from_file( _sion_generic_gendata *sion_gendata, char *fname, int root,
65  sion_int32 *filenumber, sion_int32 *numfiles, sion_int32 *lrank, sion_int32 *lsize);
66 
67 int _sion_generic_buddy_get_and_distribute_info_from_one_file( _sion_generic_gendata *sion_gendata, char *fname, int root,
68  sion_int32 *filenumber, sion_int32 *numfiles,
69  sion_int32 *lrank, sion_int32 *lsize);
70 
71 char* _sion_buddy_role_to_str (unsigned int flag);
72 
73 #endif