90 int num_initial_ranks;
91 int num_survivor_ranks = 0;
92 int num_recovered_ranks = 0;
95 jmp_buf* recover_environment;
97 int mpi_fail_code = MPI_SUCCESS;
98 int repair_result = FENIX_SUCCESS;
101 int fenix_init_flag =
false;
102 int finalized =
false;
104 int fail_world_size = 0;
105 int* fail_world =
nullptr;
108 int* ret_role =
nullptr;
109 int* ret_error =
nullptr;
111 std::unordered_map<CallbackLocation, std::vector<FenixCallbackFunc>>
116 MPI_Comm* user_world;
118 int new_world_exists =
false, user_world_exists =
false;
121 int dummy_recv_buffer;
122 MPI_Request check_failures_req;
125 MPI_Errhandler mpi_errhandler;
134 std::unordered_map<int, std::shared_ptr<logging::CommLog>> mlogs;
136 std::vector<int> mlog_order;
138 std::shared_ptr<logging::CommLog> active_mlog;
139 int active_mlog_id = FENIX_MLOG_NONE;
142 std::map<int, MPI_Datatype> mpi_types;
143 std::map<int, MPI_Op> mpi_ops;
145 static inline bool mpi_overloads_linked =
false;