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