Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions include/fenix.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
*/
int Fenix_Callback_register(std::function<void(MPI_Comm, int)> callback);

namespace Fenix {
namespace fenix {

/**
* @brief Registers a callback that throws a CommException
Expand All @@ -84,6 +84,6 @@ namespace Fenix {
*/
int register_exception_callback();

} // namespace Fenix
} // namespace fenix

#endif
4 changes: 2 additions & 2 deletions include/fenix_exception.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
#include <mpi.h>
#include <exception>

namespace Fenix {
namespace fenix {

struct CommException : public std::exception {
MPI_Comm repaired_comm;
Expand All @@ -69,6 +69,6 @@ struct CommException : public std::exception {
repaired_comm(comm), fenix_err(err) { };
};

} // namespace Fenix
} // namespace fenix

#endif
4 changes: 1 addition & 3 deletions include/fenix_ext.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,9 @@ typedef struct {
int ignore_errs; // Set this to return errors instead of using the error handler normally. (Don't forget to unset!)
int print_unhandled; // Set this to print the error string for MPI errors of an unhandled return type.



fenix_data_recovery_t *data_recovery; // Global pointer for Fenix Data Recovery Data Structure
} fenix_t;

extern fenix_t fenix;
inline fenix_t fenix_rt;
#endif // __FENIX_EXT_H__

1 change: 0 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ fenix_data_policy_in_memory_raid.cpp
fenix_data_member.cpp
fenix_data_subset.cpp
fenix_callbacks.cpp
globals.cpp
)

add_library( fenix STATIC ${Fenix_SOURCES})
Expand Down
12 changes: 6 additions & 6 deletions src/fenix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ int Fenix_Callback_pop() {
}

int Fenix_Initialized(int *flag) {
*flag = (fenix.fenix_init_flag) ? 1 : 0;
*flag = (fenix_rt.fenix_init_flag) ? 1 : 0;
return FENIX_SUCCESS;
}

Expand Down Expand Up @@ -197,20 +197,20 @@ int Fenix_Data_member_delete(int group_id, int member_id) {
}

int Fenix_Process_fail_list(int** fail_list){
*fail_list = fenix.fail_world;
return fenix.fail_world_size;
*fail_list = fenix_rt.fail_world;
return fenix_rt.fail_world_size;
}

int Fenix_check_cancelled(MPI_Request *request, MPI_Status *status){

//We know this may return as "COMM_REVOKED", but we know the error was already handled
int old_ignore_setting = fenix.ignore_errs;
fenix.ignore_errs = 1;
int old_ignore_setting = fenix_rt.ignore_errs;
fenix_rt.ignore_errs = 1;

int flag;
int ret = PMPI_Test(request, &flag, status);

fenix.ignore_errs = old_ignore_setting;
fenix_rt.ignore_errs = old_ignore_setting;

//Request was (potentially) cancelled if ret is MPI_ERR_PROC_FAILED
return ret == MPI_ERR_PROC_FAILED || ret == MPI_ERR_REVOKED;
Expand Down
14 changes: 7 additions & 7 deletions src/fenix_callbacks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,25 +67,25 @@

int __fenix_callback_register(fenix_callback_func& recover)
{
if(!fenix.fenix_init_flag) return FENIX_ERROR_UNINITIALIZED;
if(!fenix_rt.fenix_init_flag) return FENIX_ERROR_UNINITIALIZED;

fenix.callbacks.push_back(recover);
fenix_rt.callbacks.push_back(recover);

return FENIX_SUCCESS;
}

int __fenix_callback_pop(){
if(!fenix.fenix_init_flag) return FENIX_ERROR_UNINITIALIZED;
if(fenix.callbacks.empty()) return FENIX_ERROR_CALLBACK_NOT_REGISTERED;
if(!fenix_rt.fenix_init_flag) return FENIX_ERROR_UNINITIALIZED;
if(fenix_rt.callbacks.empty()) return FENIX_ERROR_CALLBACK_NOT_REGISTERED;

fenix.callbacks.pop_back();
fenix_rt.callbacks.pop_back();

return FENIX_SUCCESS;
}

void __fenix_callback_invoke_all(int error)
{
for(auto it = fenix.callbacks.rbegin(); it != fenix.callbacks.rend(); it++){
(*it)(*fenix.user_world, error);
for(auto it = fenix_rt.callbacks.rbegin(); it != fenix_rt.callbacks.rend(); it++){
(*it)(*fenix_rt.user_world, error);
}
}
32 changes: 16 additions & 16 deletions src/fenix_data_group.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ fenix_data_recovery_t * __fenix_data_recovery_init() {
data_recovery->group = (fenix_group_t **) s_malloc(
__FENIX_DEFAULT_GROUP_SIZE * sizeof(fenix_group_t *));

if (fenix.options.verbose == 41) {
if (fenix_rt.options.verbose == 41) {
verbose_print("c-rank: %d, role: %d, g-count: %zu, g-size: %zu\n",
__fenix_get_current_rank(fenix.new_world), fenix.role, data_recovery->count,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role, data_recovery->count,
data_recovery->total_size);
}

Expand All @@ -86,15 +86,15 @@ fenix_data_recovery_t * __fenix_data_recovery_init() {

int __fenix_member_delete(int groupid, int memberid) {
int retval = -1;
int group_index = __fenix_search_groupid(groupid, fenix.data_recovery );
int group_index = __fenix_search_groupid(groupid, fenix_rt.data_recovery );
int member_index = -1;
if(group_index !=-1){
member_index = __fenix_search_memberid(fenix.data_recovery->group[group_index]->member, memberid);
member_index = __fenix_search_memberid(fenix_rt.data_recovery->group[group_index]->member, memberid);
}

if (fenix.options.verbose == 38) {
if (fenix_rt.options.verbose == 38) {
verbose_print("c-rank: %d, role: %d, group_index: %d, member_index: %d\n",
__fenix_get_current_rank(fenix.new_world), fenix.role, group_index,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role, group_index,
member_index);
}

Expand All @@ -107,7 +107,7 @@ int __fenix_member_delete(int groupid, int memberid) {
memberid);
retval = FENIX_ERROR_INVALID_MEMBERID;
} else {
fenix_data_recovery_t *data_recovery = fenix.data_recovery;
fenix_data_recovery_t *data_recovery = fenix_rt.data_recovery;
fenix_group_t *group = (data_recovery->group[group_index]);

retval = group->vtbl.member_delete(group, memberid);
Expand All @@ -119,12 +119,12 @@ int __fenix_member_delete(int groupid, int memberid) {
mentry->state = DELETED;
}

if (fenix.options.verbose == 38) {
if (fenix_rt.options.verbose == 38) {
fenix_member_t *member = group->member;
fenix_member_entry_t *mentry = &(member->member_entry[member_index]);

verbose_print("c-rank: %d, role: %d, m-count: %zu, m-state: %d",
__fenix_get_current_rank(fenix.new_world), fenix.role,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role,
member->count, mentry->state);
}

Expand Down Expand Up @@ -168,19 +168,19 @@ int __fenix_data_recovery_remove_group(fenix_data_recovery_t* data_recovery, int
*/
int __fenix_group_delete(int groupid) {
int retval = -1;
int group_index = __fenix_search_groupid(groupid, fenix.data_recovery );
int group_index = __fenix_search_groupid(groupid, fenix_rt.data_recovery );

if (fenix.options.verbose == 37) {
if (fenix_rt.options.verbose == 37) {
verbose_print("c-rank: %d, group_index: %d\n",
__fenix_get_current_rank(fenix.new_world), group_index);
__fenix_get_current_rank(fenix_rt.new_world), group_index);
}

if (group_index == -1) {
debug_print("ERROR Fenix_Data_group_delete: group_id <%d> does not exist\n", groupid);
retval = FENIX_ERROR_INVALID_GROUPID;
} else {
/* Delete Process */
fenix_data_recovery_t *data_recovery = fenix.data_recovery;
fenix_data_recovery_t *data_recovery = fenix_rt.data_recovery;
fenix_group_t *group = (data_recovery->group[group_index]);
retval = __fenix_group_delete_direct(group);

Expand Down Expand Up @@ -219,9 +219,9 @@ void __fenix_data_recovery_reinit(fenix_data_recovery_t *data_recovery,
(data_recovery->total_size) *
sizeof(fenix_group_t *));

if (fenix.options.verbose == 48) {
if (fenix_rt.options.verbose == 48) {
verbose_print("c-rank: %d, role: %d, g-size: %zu\n",
__fenix_get_current_rank(fenix.new_world), fenix.role,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role,
data_recovery->total_size);
}
}
Expand All @@ -239,7 +239,7 @@ void __fenix_ensure_data_recovery_capacity(fenix_data_recovery_t* data_recovery)
sizeof(fenix_group_t *));
data_recovery->total_size = data_recovery->total_size * 2;

if (fenix.options.verbose == 51) {
if (fenix_rt.options.verbose == 51) {
verbose_print("g-count: %zu, g-size: %zu\n", data_recovery->count, data_recovery->total_size);
}
}
Expand Down
30 changes: 15 additions & 15 deletions src/fenix_data_member.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ fenix_member_t *__fenix_data_member_init() {
member->member_entry = (fenix_member_entry_t *) s_malloc(
__FENIX_DEFAULT_MEMBER_SIZE * sizeof(fenix_member_entry_t));

if (fenix.options.verbose == 42) {
if (fenix_rt.options.verbose == 42) {
verbose_print("c-rank: %d, role: %d, m-count: %zu, m-size: %zu\n",
__fenix_get_current_rank(fenix.new_world), fenix.role, member->count,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role, member->count,
member->total_size);
}

Expand All @@ -86,9 +86,9 @@ fenix_member_t *__fenix_data_member_init() {
mentry->memberid = -1;
mentry->state = EMPTY;

if (fenix.options.verbose == 42) {
if (fenix_rt.options.verbose == 42) {
verbose_print("c-rank: %d, role: %d, m-memberid: %d, m-state: %d\n",
__fenix_get_current_rank(fenix.new_world), fenix.role,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role,
mentry->memberid, mentry->state);
}
}
Expand All @@ -106,7 +106,7 @@ void __fenix_data_member_destroy( fenix_member_t *member ) {
* @param
*/
int __fenix_search_memberid(fenix_member_t* member, int key) {
fenix_data_recovery_t *data_recovery = fenix.data_recovery;
fenix_data_recovery_t *data_recovery = fenix_rt.data_recovery;
int member_index, found = -1, index = -1;
for (member_index = 0;
(found != 1) && (member_index < member->total_size); member_index++) {
Expand Down Expand Up @@ -170,9 +170,9 @@ void __fenix_ensure_member_capacity(fenix_member_t *m) {
sizeof(fenix_member_entry_t));
member->total_size = member->total_size * 2;

if (fenix.options.verbose == 52) {
if (fenix_rt.options.verbose == 52) {
verbose_print("c-rank: %d, role: %d, m-count: %zu, m-size: %zu\n",
__fenix_get_current_rank(fenix.new_world), fenix.role,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role,
member->count, member->total_size);
}

Expand All @@ -182,10 +182,10 @@ void __fenix_ensure_member_capacity(fenix_member_t *m) {
mentry->memberid = -1;
mentry->state = EMPTY;

if (fenix.options.verbose == 52) {
if (fenix_rt.options.verbose == 52) {
verbose_print(
"c-rank: %d, role: %d, member[%d] m-memberid: %d, m-state: %d\n",
__fenix_get_current_rank(fenix.new_world), fenix.role,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role,
member_index, mentry->memberid, mentry->state);
}
}
Expand All @@ -196,7 +196,7 @@ void __fenix_ensure_member_capacity(fenix_member_t *m) {
int __fenix_data_member_send_metadata(int groupid, int memberid, int dest_rank){
int retval = -1;

fenix_data_recovery_t* data_recovery = fenix.data_recovery;
fenix_data_recovery_t* data_recovery = fenix_rt.data_recovery;
int group_index = __fenix_search_groupid(groupid, data_recovery);
int member_index;
if(group_index != -1){
Expand Down Expand Up @@ -234,7 +234,7 @@ int __fenix_data_member_recv_metadata(int groupid, int src_rank,
fenix_member_entry_packet_t* packet){
int retval = -1;

fenix_data_recovery_t* data_recovery = fenix.data_recovery;
fenix_data_recovery_t* data_recovery = fenix_rt.data_recovery;
int group_index = __fenix_search_groupid(groupid, data_recovery);

if(group_index == -1){
Expand Down Expand Up @@ -269,9 +269,9 @@ void __fenix_data_member_reinit(fenix_member_t *m, fenix_two_container_packet_t
member->member_entry = (fenix_member_entry_t *) s_realloc(member->member_entry,
(member->total_size) *
sizeof(fenix_member_entry_t));
if (fenix.options.verbose == 50) {
if (fenix_rt.options.verbose == 50) {
verbose_print("c-rank: %d, role: %d, m-count: %zu, m-size: %zu\n",
__fenix_get_current_rank(fenix.new_world), fenix.role,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role,
member->count, member->total_size);
}

Expand All @@ -282,9 +282,9 @@ void __fenix_data_member_reinit(fenix_member_t *m, fenix_two_container_packet_t
fenix_member_entry_t *mentry = &(member->member_entry[member_index]);
mentry->memberid = -1;
mentry->state = mystatus;
if (fenix.options.verbose == 50) {
if (fenix_rt.options.verbose == 50) {
verbose_print("c-rank: %d, role: %d, m-memberid: %d, m-state: %d\n",
__fenix_get_current_rank(fenix.new_world), fenix.role,
__fenix_get_current_rank(fenix_rt.new_world), fenix_rt.role,
mentry->memberid, mentry->state);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/fenix_data_policy_in_memory_raid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1212,7 +1212,7 @@ void __imr_sync_timestamps(fenix_imr_group_t* group){

//Now fix members
if(need_reset && group->entries_count > 0) {
if(fenix.options.verbose == 1){
if(fenix_rt.options.verbose == 1){
verbose_print("Outdated timestamps on rank %d. All members will require full recovery.\n",
group->base.current_rank);
}
Expand Down
Loading
Loading