56#ifndef __FENIX_DATA_GROUP_H__
57#define __FENIX_DATA_GROUP_H__
59#include <unordered_map>
61#include <source_location>
65#include "fenix_data_member.hpp"
66#include "fenix_data_subset.hpp"
68#define __FENIX_DEFAULT_GROUP_SIZE 32
70namespace fenix::data {
76 int groupid, MPI_Comm c,
int timestart,
int depth,
int policy
87 std::unordered_map<int, fenix_member_entry_t> members;
89 std::vector<int> member_order;
91 std::vector<int> get_member_ids();
96 int id, std::source_location loc = std::source_location::current()
98 int member_create(
int id,
void* data,
int count, MPI_Datatype datatype);
99 int member_create(
int id,
void* data,
int count,
int datatype_size);
100 int member_delete(
int memberid);
102 virtual int group_delete() = 0;
105 virtual int get_redundant_policy(
int* name,
void* value,
int* flag) = 0;
106 virtual void member_stage(
int memberid,
const DataSubset& subset) = 0;
107 virtual int member_store(
int memberid,
const DataSubset& subset) = 0;
108 virtual int member_storev(
int memberid,
const DataSubset& subset) = 0;
111 virtual int commit() = 0;
112 virtual int snapshot_delete(
int timestamp) = 0;
113 virtual int barrier() = 0;
114 virtual int member_restore(
int member_id,
void* target_bugger,
int max,
int timestamp,
DataSubset& data_found) = 0;
115 virtual int member_lrestore(
int member_id,
void* target_bugger,
int max,
int timestamp,
DataSubset& data_found) = 0;
116 virtual int member_restore_from_rank(
int member_id,
void* target_bugger,
int max,
int timestamp,
int source_rank) = 0;
117 virtual int get_number_of_snapshots(
int* num) = 0;
118 virtual int get_snapshot_at_position(
int position,
int* timestamp) = 0;
119 virtual std::vector<int> get_snapshots() = 0;
120 virtual int reinit(
int* flag) = 0;
121 virtual int member_get_attribute(
fenix_member_entry_t* mentry,
int name,
void* value,
int* flag,
int sourcerank) = 0;
122 virtual int member_set_attribute(
fenix_member_entry_t* mentry,
int name,
void* value,
int* flag) = 0;
140int __fenix_data_recovery_remove_group(
int groupid);
151 int id, std::source_location loc = std::source_location::current()
Contains all API function calls and Fenix types. This is the only header file a user should include.
<span class="mlabel"> UNIMPLEMENTED </span> As MPI_Request, but for Fenix asynchronous data recove...
Definition fenix.h:570
Definition fenix_data_subset.hpp:137
Definition fenix_data_group.hpp:125
Definition fenix_data_group.hpp:131
Definition fenix_data_group.hpp:74
Definition fenix_data_member.hpp:70