4 #include <sumi/options.h> 6 #include <sumi/comm_functions.h> 7 #include <sumi/collective_message.h> 8 #include <sumi/timeout.h> 9 #include <sumi/communicator.h> 10 #include <sumi/thread_safe_set.h> 12 #define main USER_MAIN 38 comm_ping(
int dst,
int tag, timeout_function* func);
44 comm_send(
int dst, message::payload_type_t ev,
const message::ptr& msg);
57 int type_size,
int tag,
bool fault_aware =
false,
58 int context = options::initial_context, communicator* dom = 0);
62 int type_size,
int tag,
bool fault_aware =
false,
63 int context = options::initial_context, communicator* dom = 0);
67 int type_size,
int tag,
bool fault_aware =
false,
68 int context = options::initial_context, communicator* dom = 0);
71 comm_gather(
int root,
void* dst,
void* src,
int nelems,
72 int type_size,
int tag,
bool fault_aware =
false,
73 int context = options::initial_context, communicator* dom = 0);
77 int type_size,
int tag,
bool fault_aware =
false,
78 int context = options::initial_context, communicator* dom = 0);
82 int type_size,
int tag,
bool fault_aware =
false,
83 int context = options::initial_context, communicator* dom = 0);
97 comm_allreduce(
void* dst,
void* src,
int nelems,
int type_size,
int tag,
98 reduce_fxn fxn,
bool fault_aware=
false,
int context = options::initial_context,
99 communicator* dom = 0);
101 template <
typename data_t,
template <
typename>
class Op>
103 comm_allreduce(
void* dst,
void* src,
int nelems,
int tag,
bool fault_aware =
false,
int context = options::initial_context, communicator* dom = 0){
104 typedef ReduceOp<Op, data_t> op_class_type;
105 comm_allreduce(dst, src, nelems,
sizeof(data_t), tag, &op_class_type::op, fault_aware, context, dom);
109 comm_reduce(
int root,
void* dst,
void* src,
int nelems,
int type_size,
int tag,
110 reduce_fxn fxn,
bool fault_aware=
false,
int context = options::initial_context,
111 communicator* dom = 0);
113 template <
typename data_t,
template <
typename>
class Op>
115 comm_reduce(
int root,
void* dst,
void* src,
int nelems,
int tag,
bool fault_aware =
false,
int context = options::initial_context, communicator* dom = 0){
116 typedef ReduceOp<Op, data_t> op_class_type;
117 comm_reduce(root, dst, src, nelems,
sizeof(data_t), tag, &op_class_type::op, fault_aware, context, dom);
121 comm_barrier(
int tag,
bool fault_aware =
false, communicator* dom = 0);
134 comm_vote(
int vote,
int tag, vote_fxn fxn,
int context = options::initial_context, communicator* dom = 0);
136 template <
template <
class>
class VoteOp>
138 comm_vote(
int vote,
int tag,
int context = options::initial_context, communicator* dom = 0){
139 typedef VoteOp<int> op_class_type;
140 comm_vote(vote, tag, &op_class_type::op, context, dom);
158 const thread_safe_set<int>&
161 const thread_safe_set<int>&
170 collective_done_message::ptr
178 void sleep(
double sec);
const thread_safe_set< int > & comm_failed_ranks()
void comm_ping(int dst, int tag, timeout_function *func)
void comm_send_payload(int dst, const message::ptr &msg)
void comm_bcast(int root, void *buffer, int nelems, int type_size, int tag, bool fault_aware=false, int context=options::initial_context, communicator *dom=0)
void comm_start_heartbeat(double interval)
void comm_rdma_get(int dst, const message::ptr &msg)
void comm_reduce(int root, void *dst, void *src, int nelems, int type_size, int tag, reduce_fxn fxn, bool fault_aware=false, int context=options::initial_context, communicator *dom=0)
collective_done_message::ptr comm_collective_block(collective::type_t ty, int tag)
void comm_send_header(int dst, const message::ptr &msg)
void comm_scatter(int root, void *dst, void *src, int nelems, int type_size, int tag, bool fault_aware=false, int context=options::initial_context, communicator *dom=0)
void comm_nvram_get(int dst, const message::ptr &msg)
void comm_allgatherv(void *dst, void *src, int *recv_counts, int type_size, int tag, bool fault_aware=false, int context=options::initial_context, communicator *dom=0)
double wall_time()
Every node has exactly the same notion of time - universal, global clock.
void comm_rdma_put(int dst, const message::ptr &msg)
void comm_vote(int vote, int tag, vote_fxn fxn, int context=options::initial_context, communicator *dom=0)
The total size of the input/result buffer in bytes is nelems*type_size This always run in a fault-tol...
void sleep_until(double sec)
void comm_gather(int root, void *dst, void *src, int nelems, int type_size, int tag, bool fault_aware=false, int context=options::initial_context, communicator *dom=0)
void comm_allgather(void *dst, void *src, int nelems, int type_size, int tag, bool fault_aware=false, int context=options::initial_context, communicator *dom=0)
void comm_barrier(int tag, bool fault_aware=false, communicator *dom=0)
void comm_kill_process()
Helper function.
void comm_stop_heartbeat()
void comm_kill_node()
Helper function.
void comm_cancel_ping(int dst, int tag)
void comm_alltoall(void *dst, void *src, int nelems, int type_size, int tag, bool fault_aware=false, int context=options::initial_context, communicator *dom=0)
void comm_allreduce(void *dst, void *src, int nelems, int type_size, int tag, reduce_fxn fxn, bool fault_aware=false, int context=options::initial_context, communicator *dom=0)
The total size of the input/result buffer in bytes is nelems*type_size.
void comm_send(int dst, message::payload_type_t ev, const message::ptr &msg)
int comm_partner(long node_id)
Map a physical node location to its virtual assignment in the communicator.