ECP-VELOC Components
User documentation for all components
redset.h
Go to the documentation of this file.
1 #ifndef REDSET_H
2 #define REDSET_H
3 
4 #include "mpi.h"
5 
17 /* enable C++ codes to include this header directly */
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #define REDSET_SUCCESS (0)
23 
24 #define REDSET_VERSION "0.1.0"
25 
26 #define REDSET_COPY_NULL (0)
27 #define REDSET_COPY_SINGLE (1)
28 #define REDSET_COPY_PARTNER (2)
29 #define REDSET_COPY_XOR (3)
30 #define REDSET_COPY_RS (4)
31 
32 /* names of user settable config parameters */
33 #define REDSET_KEY_CONFIG_SET_SIZE "SETSIZE"
34 #define REDSET_KEY_CONFIG_MPI_BUF_SIZE "MPI_BUF_SIZE"
35 #define REDSET_KEY_CONFIG_DEBUG "DEBUG"
36 
37 /********************************************************/
39 typedef void* redset;
41 typedef void* redset_filelist;
43 
44 /********************************************************/
46 
49 int redset_init(void);
50 
52 int redset_finalize(void);
53 
54 /* needs to be above doxygen comment to get association right */
55 typedef struct kvtree_struct kvtree;
56 
78 kvtree* redset_config(
79  const kvtree *config
80 );
81 
83 int redset_create(
84  int type,
85  MPI_Comm comm,
86  const char* group,
87  redset* d
88 );
89 
92  MPI_Comm comm,
93  const char* group,
94  redset* d
95 );
96 
99  MPI_Comm comm,
100  const char* group,
101  int size,
102  int replicas,
103  redset* d
104 );
105 
108  MPI_Comm comm,
109  const char* group,
110  int size,
111  redset* d
112 );
113 
115 int redset_create_rs(
116  MPI_Comm comm,
117  const char* group,
118  int size,
119  int k,
120  redset* d
121 );
122 
124 int redset_delete(
125  redset* d
126 );
127 
130 int redset_apply(
131  int numfiles,
132  const char** files,
133  const char* name,
134  const redset d
135 );
136 
139 int redset_recover(
140  MPI_Comm comm,
141  const char* name,
142  redset* d
143 );
144 
147 int redset_unapply(
148  const char* name,
149  const redset d
150 );
151 
154  const char* name,
155  const redset d
156 );
157 
160  redset_filelist* plist
161 );
162 
165  redset_filelist list
166 );
167 
170 const char* redset_filelist_file(
171  redset_filelist list,
172  int index
173 );
174 
175 /************************
176  * The interfaces below are temporary.
177  ***********************/
178 
180  int num,
181  const char** files,
182  int* groupsize,
183  int** groupranks
184 );
185 
187  int num,
188  const char** files,
189  const char* prefix,
190  const kvtree* map
191 );
192 
194  int num,
195  const char** files,
196  int* groupsize,
197  int** groupranks
198 );
199 
201  int num,
202  const char** files,
203  const char* prefix,
204  const kvtree* map
205 );
206 
208  int num,
209  const char** files,
210  int* groupsize,
211  int** groupranks
212 );
213 
215  int num,
216  const char** files,
217  const char* prefix,
218  const kvtree* map
219 );
220 
221 /* enable C++ codes to include this header directly */
222 #ifdef __cplusplus
223 } /* extern "C" */
224 #endif
225 
226 #endif /* REDSET_H */
redset_recover
int redset_recover(MPI_Comm comm, const char *name, redset *d)
redset_config
kvtree * redset_config(const kvtree *config)
redset_apply
int redset_apply(int numfiles, const char **files, const char *name, const redset d)
redset_rebuild_rs
int redset_rebuild_rs(int num, const char **files, const char *prefix, const kvtree *map)
redset_filelist_release
int redset_filelist_release(redset_filelist *plist)
redset_create_xor
int redset_create_xor(MPI_Comm comm, const char *group, int size, redset *d)
redset_rebuild_partner
int redset_rebuild_partner(int num, const char **files, const char *prefix, const kvtree *map)
redset_create
int redset_create(int type, MPI_Comm comm, const char *group, redset *d)
redset_filelist
void * redset_filelist
Definition: redset.h:41
redset_finalize
int redset_finalize(void)
redset_filelist_get_data_rs
redset_filelist redset_filelist_get_data_rs(int num, const char **files, int *groupsize, int **groupranks)
redset_filelist_count
int redset_filelist_count(redset_filelist list)
redset_unapply
int redset_unapply(const char *name, const redset d)
redset_filelist_get_data_partner
redset_filelist redset_filelist_get_data_partner(int num, const char **files, int *groupsize, int **groupranks)
redset_delete
int redset_delete(redset *d)
redset_filelist_file
const char * redset_filelist_file(redset_filelist list, int index)
redset_filelist_get_data_xor
redset_filelist redset_filelist_get_data_xor(int num, const char **files, int *groupsize, int **groupranks)
redset
void * redset
Definition: redset.h:40
kvtree_struct
Definition: kvtree.h:87
redset_create_rs
int redset_create_rs(MPI_Comm comm, const char *group, int size, int k, redset *d)
redset_create_single
int redset_create_single(MPI_Comm comm, const char *group, redset *d)
redset_filelist_get
redset_filelist redset_filelist_get(const char *name, const redset d)
redset_rebuild_xor
int redset_rebuild_xor(int num, const char **files, const char *prefix, const kvtree *map)
redset_init
int redset_init(void)
redset_create_partner
int redset_create_partner(MPI_Comm comm, const char *group, int size, int replicas, redset *d)