1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #ifndef MCA_SSTORE_H
22 #define MCA_SSTORE_H
23
24 #include "orte_config.h"
25 #include "orte/constants.h"
26 #include "orte/types.h"
27 #include "orte/runtime/orte_globals.h"
28
29 #include "orte/mca/mca.h"
30 #include "opal/mca/base/base.h"
31
32 #include "opal/class/opal_object.h"
33
34 BEGIN_C_DECLS
35
36
37
38
39 typedef uint32_t orte_sstore_base_key_t;
40
41 #define SSTORE_METADATA_LOCAL_CRS_COMP 0
42
43 #define SSTORE_METADATA_LOCAL_COMPRESS_COMP 1
44
45 #define SSTORE_METADATA_LOCAL_COMPRESS_POSTFIX 2
46
47 #define SSTORE_METADATA_LOCAL_PID 3
48
49 #define SSTORE_METADATA_LOCAL_CONTEXT 4
50
51 #define SSTORE_METADATA_LOCAL_MKDIR 5
52
53 #define SSTORE_METADATA_LOCAL_TOUCH 6
54
55
56 #define SSTORE_METADATA_LOCAL_SNAP_REF 7
57
58 #define SSTORE_METADATA_LOCAL_SNAP_REF_FMT 8
59
60 #define SSTORE_METADATA_LOCAL_SNAP_LOC 9
61
62 #define SSTORE_METADATA_LOCAL_SNAP_REF_LOC_FMT 10
63
64 #define SSTORE_METADATA_LOCAL_SNAP_META 11
65
66
67 #define SSTORE_METADATA_GLOBAL_SNAP_REF 12
68
69 #define SSTORE_METADATA_GLOBAL_SNAP_LOC 13
70
71 #define SSTORE_METADATA_GLOBAL_SNAP_LOC_ABS 14
72
73 #define SSTORE_METADATA_GLOBAL_SNAP_META 15
74
75 #define SSTORE_METADATA_GLOBAL_SNAP_SEQ 16
76
77 #define SSTORE_METADATA_GLOBAL_AMCA_PARAM 17
78
79
80 #define SSTORE_METADATA_GLOBAL_SNAP_NUM_SEQ 18
81
82 #define SSTORE_METADATA_GLOBAL_SNAP_ALL_SEQ 19
83
84
85 #define SSTORE_METADATA_BASE_LOC 20
86
87
88
89
90 #define SSTORE_METADATA_LOCAL_SKIP_CKPT 21
91
92
93
94
95 #define SSTORE_METADATA_GLOBAL_MIGRATING 22
96
97
98 #define SSTORE_METADATA_GLOBAL_TUNE_PARAM 23
99
100
101 #define SSTORE_METADATA_MAX 24
102
103
104
105
106 #define ORTE_SSTORE_HANDLE OPAL_UINT32
107 typedef uint32_t orte_sstore_base_handle_t;
108 ORTE_DECLSPEC extern orte_sstore_base_handle_t orte_sstore_handle_current;
109 ORTE_DECLSPEC extern orte_sstore_base_handle_t orte_sstore_handle_last_stable;
110 #define ORTE_SSTORE_HANDLE_INVALID 0
111
112
113
114
115
116 struct orte_sstore_base_local_snapshot_info_1_0_0_t {
117
118 opal_list_item_t super;
119
120
121 orte_sstore_base_handle_t ss_handle;
122
123
124 orte_process_name_t process_name;
125
126
127 char *crs_comp;
128
129
130 char *compress_comp;
131
132
133 char *compress_postfix;
134
135
136 char *start_time;
137 char *end_time;
138 };
139 typedef struct orte_sstore_base_local_snapshot_info_1_0_0_t orte_sstore_base_local_snapshot_info_1_0_0_t;
140 typedef struct orte_sstore_base_local_snapshot_info_1_0_0_t orte_sstore_base_local_snapshot_info_t;
141
142 ORTE_DECLSPEC OBJ_CLASS_DECLARATION(orte_sstore_base_local_snapshot_info_t);
143
144 struct orte_sstore_base_global_snapshot_info_1_0_0_t {
145
146 opal_list_item_t super;
147
148
149 opal_list_t local_snapshots;
150
151
152 orte_sstore_base_handle_t ss_handle;
153
154
155 char * start_time;
156
157
158 char * end_time;
159
160
161 int seq_num;
162
163
164 char *reference;
165
166
167 char *amca_param;
168
169
170 char *tune_param;
171
172
173 int num_seqs;
174 char ** all_seqs;
175 char *basedir;
176 char *metadata_filename;
177 };
178 typedef struct orte_sstore_base_global_snapshot_info_1_0_0_t orte_sstore_base_global_snapshot_info_1_0_0_t;
179 typedef struct orte_sstore_base_global_snapshot_info_1_0_0_t orte_sstore_base_global_snapshot_info_t;
180
181 ORTE_DECLSPEC OBJ_CLASS_DECLARATION(orte_sstore_base_global_snapshot_info_t);
182
183
184
185
186
187 typedef int (*orte_sstore_base_module_init_fn_t)
188 (void);
189
190
191
192
193
194 typedef int (*orte_sstore_base_module_finalize_fn_t)
195 (void);
196
197
198
199
200
201
202
203
204
205
206
207 typedef int (*orte_sstore_base_request_checkpoint_handle_fn_t)
208 (orte_sstore_base_handle_t *handle, int seq, orte_jobid_t jobid);
209
210
211
212
213
214
215
216
217
218
219
220
221 typedef int (*orte_sstore_base_request_restart_handle_fn_t)
222 (orte_sstore_base_handle_t *handle,
223 char *basedir, char *ref, int seq,
224 orte_sstore_base_global_snapshot_info_t *snapshot);
225
226
227
228
229
230
231
232
233
234
235 typedef int (*orte_sstore_base_request_global_snapshot_data_fn_t)
236 (orte_sstore_base_handle_t *handle,
237 orte_sstore_base_global_snapshot_info_t *snapshot);
238
239
240
241
242
243
244
245
246
247 typedef int (*orte_sstore_base_register_handle_fn_t)
248 (orte_sstore_base_handle_t handle);
249
250
251
252
253
254
255
256
257
258
259
260 typedef int (*orte_sstore_base_get_attribute_fn_t)
261 (orte_sstore_base_handle_t handle, orte_sstore_base_key_t key, char **value);
262
263
264
265
266
267
268
269
270
271
272
273 typedef int (*orte_sstore_base_set_attribute_fn_t)
274 (orte_sstore_base_handle_t handle, orte_sstore_base_key_t key, char *value);
275
276
277
278
279
280
281
282
283
284 typedef int (*orte_sstore_base_sync_fn_t)
285 (orte_sstore_base_handle_t handle);
286
287
288
289
290
291
292
293
294
295 typedef int (*orte_sstore_base_remove_fn_t)
296 (orte_sstore_base_handle_t handle);
297
298
299
300
301
302
303
304
305
306
307
308
309 typedef int (*orte_sstore_base_pack_fn_t)
310 (orte_process_name_t* peer, opal_buffer_t* buffer, orte_sstore_base_handle_t handle);
311
312
313
314
315
316
317
318
319
320
321
322
323 typedef int (*orte_sstore_base_unpack_fn_t)
324 (orte_process_name_t* peer, opal_buffer_t* buffer, orte_sstore_base_handle_t *handle);
325
326
327
328
329
330
331
332
333
334 typedef int (*orte_sstore_base_fetch_app_deps_fn_t)
335 (orte_app_context_t *app);
336
337
338
339
340
341
342
343 typedef int (*orte_sstore_base_wait_all_deps_fn_t)
344 (void);
345
346
347
348
349 struct orte_sstore_base_component_2_0_0_t {
350
351 mca_base_component_t base_version;
352
353 mca_base_component_data_t base_data;
354
355
356 int verbose;
357
358 int output_handle;
359
360 int priority;
361 };
362 typedef struct orte_sstore_base_component_2_0_0_t orte_sstore_base_component_2_0_0_t;
363 typedef struct orte_sstore_base_component_2_0_0_t orte_sstore_base_component_t;
364
365
366
367
368 struct orte_sstore_base_module_1_0_0_t {
369
370 orte_sstore_base_module_init_fn_t sstore_init;
371
372 orte_sstore_base_module_finalize_fn_t sstore_finalize;
373
374
375 orte_sstore_base_request_checkpoint_handle_fn_t request_checkpoint_handle;
376 orte_sstore_base_request_restart_handle_fn_t request_restart_handle;
377 orte_sstore_base_request_global_snapshot_data_fn_t request_global_snapshot_data;
378 orte_sstore_base_register_handle_fn_t register_handle;
379
380
381 orte_sstore_base_get_attribute_fn_t get_attr;
382 orte_sstore_base_set_attribute_fn_t set_attr;
383
384
385 orte_sstore_base_sync_fn_t sync;
386
387
388 orte_sstore_base_remove_fn_t remove;
389
390
391 orte_sstore_base_pack_fn_t pack_handle;
392 orte_sstore_base_unpack_fn_t unpack_handle;
393
394
395 orte_sstore_base_fetch_app_deps_fn_t fetch_app_deps;
396 orte_sstore_base_wait_all_deps_fn_t wait_all_deps;
397 };
398 typedef struct orte_sstore_base_module_1_0_0_t orte_sstore_base_module_1_0_0_t;
399 typedef struct orte_sstore_base_module_1_0_0_t orte_sstore_base_module_t;
400
401 ORTE_DECLSPEC extern orte_sstore_base_module_t orte_sstore;
402
403
404
405
406 #define ORTE_SSTORE_BASE_VERSION_2_0_0 \
407 ORTE_MCA_BASE_VERSION_2_1_0("sstore", 2, 0, 0)
408
409 END_C_DECLS
410
411 #endif
412