57#ifndef __FENIX_DATA_POLICY_IN_MEMORY_RAID_H__
58#define __FENIX_DATA_POLICY_IN_MEMORY_RAID_H__
66#include "fenix/data/group.hpp"
67#include "fenix/data/util/buffer.hpp"
68#include "fenix/data/subset.hpp"
69#include "fenix/data/snapshot.hpp"
70#include "fenix/tasks/task.hpp"
72namespace fenix::data::imr {
84 void init_cohort(MPI_Comm cohort_comm)
override;
85 void reinit_cohort(MPI_Comm cohort_comm)
override;
92 void repair()
override;
95 std::unique_ptr<DataSnapshot> create_snapshot(
int size,
int count)
override {
96 return std::make_unique<imr::IMRSnapshot>(size, count);
105 void repair()
override;
110 std::vector<int> prepare_for_parity(
IMRSnapshot& snap);
112 std::unique_ptr<DataSnapshot> create_snapshot(
int size,
int count)
override {
113 return std::make_unique<imr::IMRSnapshot>(size, count);
121 IMRGroup(
int id, MPI_Comm comm,
int timestart,
int depth,
int* policy);
124 static int get_mode(
int* policy_vals);
125 static int get_rank_sep(
int* policy_vals, MPI_Comm comm);
127 MPI_Group create_cohort()
override;
128 void init()
override;
136 void emplace_member(
DataMember&& member)
override;
137 void get_redundant_policy(
int* name,
void* value)
override;
139 void commit()
override;
141 void member_repair(
int member_id)
override;
142 void member_restore_from_rank(
143 int member_id,
void* buffer,
int max,
int timestamp,
int source_rank
Definition snapshot.hpp:17
Definition policy_imr.hpp:90
Definition policy_imr.hpp:120
Definition policy_imr.hpp:74
Definition policy_imr.hpp:103