#ifndef MAM_CONSTANTS_H #define MAM_CONSTANTS_H //States #define MAM_DENIED -1 #define MAM_OK 0 enum mam_states{MAM_UNRESERVED, MAM_NOT_STARTED, MAM_PENDING, MAM_USER_PENDING, MAM_COMPLETED}; enum mam_proc_states{MAM_PROC_CONTINUE, MAM_PROC_NEW_RANK, MAM_PROC_ZOMBIE}; enum mam_spawn_methods{MAM_SPAWN_BASELINE, MAM_SPAWN_MERGE, MAM_METHODS_SPAWN_LEN}; enum mam_spawn_strategies{MAM_STRAT_SPAWN_CLEAR, MAM_STRAT_SPAWN_PTHREAD, MAM_STRAT_SPAWN_SINGLE, MAM_STRAT_SPAWN_INTERCOMM, MAM_STRAT_SPAWN_MULTIPLE, MAM_STRAT_SPAWN_PARALLEL, MAM_STRATS_SPAWN_LEN}; enum mam_phy_dist_methods{MAM_PHY_DIST_SPREAD = 1, MAM_PHY_DIST_COMPACT, MAM_METHODS_PHYSICAL_DISTRIBUTION_LEN}; enum mam_phy_info_methods{MAM_PHY_TYPE_STRING = 1, MAM_PHY_TYPE_HOSTFILE}; enum mam_redistribution_methods{MAM_RED_BASELINE, MAM_RED_POINT, MAM_RED_RMA_LOCK, MAM_RED_RMA_LOCKALL, MAM_METHODS_RED_LEN}; enum mam_red_strategies{MAM_STRAT_RED_CLEAR, MAM_STRAT_RED_PTHREAD, MAM_STRAT_RED_WAIT_SOURCES, MAM_STRAT_RED_WAIT_TARGETS, MAM_STRATS_RED_LEN}; /* KEYS & VALUES for config*/ enum mam_key_values{MAM_SPAWN_METHOD=0, MAM_SPAWN_STRATEGIES, MAM_PHYSICAL_DISTRIBUTION, MAM_RED_METHOD, MAM_RED_STRATEGIES, MAM_NUM_TARGETS, MAM_KEY_COUNT}; #define MAM_SPAWN_METHOD_ENV "MAM_SPAWN_METHOD" #define MAM_SPAWN_STRATS_ENV "MAM_SPAWN_STRATS" #define MAM_PHYSICAL_DISTRIBUTION_METHOD_ENV "MAM_PHYSICAL_DISTRIBUTION_METHOD" #define MAM_RED_METHOD_ENV "MAM_RED_METHOD" #define MAM_RED_STRATS_ENV "MAM_RED_STRATS" #define MAM_NUM_TARGETS_ENV "MAM_NUM_TARGETS" #define MAM_CHECK_COMPLETION 0 #define MAM_WAIT_COMPLETION 1 #define MAM_SOURCES 0 #define MAM_TARGETS 1 #define MAM_DATA_DISTRIBUTED 0 #define MAM_DATA_REPLICATED 1 #define MAM_DATA_VARIABLE 0 #define MAM_DATA_CONSTANT 1 // Tags for messages in spawn strategies #define MAM_MPITAG_STRAT_SINGLE 130 #define MAM_MPITAG_STRAT_MULTIPLE 131 #endif