SIONlib  1.7.0
Scalable I/O library for parallel access to task-local files
sion_buddy_common.h
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 #ifndef SION_SION_BUDDY_COMMON
10 #define SION_SION_BUDDY_COMMON
11 
12 /* TODO: KT --> dynamic list */
13 #define MAXREADSTEPS 10
14 
15 #define _SION_BW_SCHED_NUM_PASSES 3
16 #define _SION_BW_SCHED_NOACTION 0
17 #define _SION_BW_SCHED_ACTIONA 1
18 #define _SION_BW_SCHED_ACTIONB 2
19 
21  int rank;
22  int size;
23  void *commgroup;
24  int sid;
25  int collsize;
26  int filelrank;
27  int groupnum; /* number of commgroup in overall numbering */
28  int from_index;
29  int to_index;
30  int stepnum;
31  int groupid;
32  int myrole;
33  int bnum; /* number of buddy level (-1 ... NUM_BUDDIES) */
34  int filenum; /* number of multi file */
35 };
37 
38 
39 /* container describing a buddy cp */
41  _sion_generic_buddy_info buddy_coll;
42  _sion_generic_buddy_info buddy_send;
43  int numgroups;
44  int numsteps;
45  int currentgroup;
46  _sion_generic_buddy_info *groups[MAXREADSTEPS];
47 };
49 
50 char* _sion_buddy_role_to_str (unsigned int flag);
51 sion_io_stat_t* sion_get_io_info_buddy(int sid, int roles, int flag);
52 
53 
54 #endif