nm_coll.h
Go to the documentation of this file.
61extern void nm_coll_scatter(nm_comm_t comm, int root, const void*sbuf, nm_len_t slen, void*rbuf, nm_len_t rlen, nm_tag_t tag);
63extern void nm_coll_gather(nm_comm_t comm, int root, const void*sbuf, nm_len_t slen, void*rbuf, nm_len_t rlen, nm_tag_t tag);
65extern void nm_coll_allgather(nm_comm_t comm, const void*sbuf, nm_len_t slen, void*rbuf, nm_len_t rlen, nm_tag_t tag);
70extern void nm_coll_group_wait(nm_session_t p_session, nm_group_t p_group, int root, nm_tag_t tag);
92extern void nm_coll_data_scatter(nm_comm_t p_comm, int root, struct nm_data_s*p_sdata, struct nm_data_s*p_rdata, nm_tag_t tag);
96extern void nm_coll_data_gather(nm_comm_t p_comm, int root, struct nm_data_s*p_sdata, struct nm_data_s*p_rdata, nm_tag_t tag);
98extern void nm_coll_data_allgather(nm_comm_t comm, struct nm_data_s*p_sdata, struct nm_data_s*p_rdata, nm_tag_t tag);
144extern struct nm_coll_req_s*nm_coll_ibcast(nm_comm_t p_comm, int root, void*buffer, nm_len_t len, nm_tag_t tag,
148extern struct nm_coll_req_s*nm_coll_group_data_ibcast(nm_session_t p_session, nm_group_t p_group, int root,
153extern struct nm_coll_req_s*nm_coll_ibcast_pipeline(nm_session_t p_session, nm_group_t p_group, int root,
158extern struct nm_coll_req_s*nm_coll_ibcast_tree(nm_session_t p_session, nm_group_t p_group, int root,
167extern struct nm_coll_req_s*nm_coll_group_ibarrier(nm_session_t p_session, nm_group_t p_group, nm_tag_t tag,
172extern struct nm_coll_req_s*nm_coll_iscatter(nm_comm_t comm, int root, const void*sbuf, nm_len_t slen,
176extern struct nm_coll_req_s*nm_coll_group_iscatter(nm_session_t p_session, nm_group_t p_group, int root,
181extern struct nm_coll_req_s*nm_coll_group_data_iscatter(nm_session_t p_session, nm_group_t p_group, int root,
187extern struct nm_coll_req_s*nm_coll_igather(nm_comm_t comm, int root, const void*sbuf, nm_len_t slen,
191extern struct nm_coll_req_s*nm_coll_group_igather(nm_session_t p_session, nm_group_t p_group, int root,
196extern struct nm_coll_req_s*nm_coll_group_data_igather(nm_session_t p_session, nm_group_t p_group, int root,
202extern struct nm_coll_req_s*nm_coll_iallgather(nm_comm_t comm, const void*sbuf, nm_len_t slen, void*rbuf, nm_len_t rlen, nm_tag_t tag,
209extern struct nm_coll_req_s*nm_coll_group_data_iallgather(nm_session_t p_session, nm_group_t p_group,
216 struct nm_data_s*p_data, nm_tag_t tag1, nm_tag_t tag2, nm_len_t block_size, nm_coll_tree_kind_t kind);
struct nm_coll_req_s * nm_coll_group_iscatter(nm_session_t p_session, nm_group_t p_group, int root, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *p_ref)
struct nm_coll_req_s * nm_coll_group_data_iallgather(nm_session_t p_session, nm_group_t p_group, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *p_ref)
void nm_coll_data_allgather(nm_comm_t comm, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_ibcast_pipeline(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_data, nm_tag_t tag, nm_len_t block_size, nm_coll_tree_kind_t kind, nm_coll_req_notifier_t p_notify, void *ref)
ibcast with pipelined algorithm; for internal use
void nm_coll_gather(nm_comm_t comm, int root, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_ibcast(nm_comm_t p_comm, int root, void *buffer, nm_len_t len, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *ref)
generic ibcast on communicator with contiguous data, with automatic algorithm selection
void nm_coll_group_gather(nm_session_t p_session, nm_group_t p_group, int root, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag)
void nm_coll_barrier(nm_comm_t comm, nm_tag_t tag)
void nm_coll_group_allgather(nm_session_t p_session, nm_group_t p_group, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag)
void nm_coll_data_bcast(nm_comm_t comm, int root, struct nm_data_s *p_data, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_iscatter(nm_comm_t comm, int root, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *ref)
void nm_coll_group_data_scatter(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_group_igather(nm_session_t p_session, nm_group_t p_group, int root, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *p_ref)
void nm_coll_group_data_bcast(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_data, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_ibcast_tree(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_data, nm_tag_t tag, nm_coll_tree_kind_t kind, nm_coll_req_notifier_t p_notify, void *ref)
ibcast with tree algorithm; for internal use
void(* nm_coll_req_notifier_t)(void *ref)
notification function for collective reqs
Definition nm_coll.h:131
void nm_coll_scatter(nm_comm_t comm, int root, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_ibarrier(nm_comm_t p_comm, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *ref)
void nm_coll_group_bcast(nm_session_t p_session, nm_group_t p_group, int root, void *buffer, nm_len_t len, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_group_data_iscatter(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *p_ref)
void nm_coll_group_scatter(nm_session_t p_session, nm_group_t p_group, int root, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag)
void nm_coll_group_barrier(nm_session_t p_session, nm_group_t p_group, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_group_data_igather(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *p_ref)
struct nm_coll_req_s * nm_coll_group_iallgather(nm_session_t p_session, nm_group_t p_group, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *p_ref)
void nm_coll_group_data_allgather(nm_session_t p_session, nm_group_t p_group, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag)
allgather using nm_data; on all nodes, p_rdata will contain all data for all processes.
void nm_coll_allgather(nm_comm_t comm, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag)
struct nm_coll_req_s * nm_coll_iallgather(nm_comm_t comm, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *p_ref)
struct nm_coll_req_s * nm_coll_igather(nm_comm_t comm, int root, const void *sbuf, nm_len_t slen, void *rbuf, nm_len_t rlen, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *ref)
void nm_coll_data_gather(nm_comm_t p_comm, int root, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag)
gather using nm_data; on root, p_rdata will contain all data for all processes.
void nm_coll_bcast_2trees(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_data, nm_tag_t tag1, nm_tag_t tag2, nm_len_t block_size, nm_coll_tree_kind_t kind)
void nm_coll_group_data_gather(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag)
void nm_coll_data_scatter(nm_comm_t p_comm, int root, struct nm_data_s *p_sdata, struct nm_data_s *p_rdata, nm_tag_t tag)
scatter using nm_data; p_sdata must contain all data for all processes.
void nm_coll_req_wait(struct nm_coll_req_s *p_coll_req)
void nm_coll_group_wait(nm_session_t p_session, nm_group_t p_group, int root, nm_tag_t tag)
root waits for all nodes; equivalent to half-barrier or gather without data
struct nm_coll_req_s * nm_coll_group_ibarrier(nm_session_t p_session, nm_group_t p_group, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *ref)
struct nm_coll_req_s * nm_coll_group_data_ibcast(nm_session_t p_session, nm_group_t p_group, int root, struct nm_data_s *p_data, nm_tag_t tag, nm_coll_req_notifier_t p_notify, void *ref)
generic ibcast on group+data with automatic algorithm selection
void nm_coll_bcast(nm_comm_t comm, int root, void *buffer, nm_len_t len, nm_tag_t tag)
int nm_coll_req_test(struct nm_coll_req_s *p_coll_req)
This is the common public header for NewMad.
Definition nm_coll_private.h:62
nm_coll_req_notifier_t p_notify
notification function for op termination
Definition nm_coll_private.h:66
Definition nm_coll_inline.h:19
a data descriptor, used to pack/unpack data from app layout to/from contiguous buffers
Definition nm_data.h:199
Definition nm_session_private.h:24