nm_coll_trees.h File Reference
Include dependency graph for nm_coll_trees.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | nm_coll_tree_info_s |
| description of an instanciated tree More... | |
| struct | nm_coll_tree_status_s |
| common status for a non-blocking operation that walks a tree More... | |
| enum | nm_coll_tree_kind_e { NM_COLL_TREE_NONE = 0 , NM_COLL_TREE_FLAT , NM_COLL_TREE_CHAIN , NM_COLL_TREE_CHAIN_MODIFIED , NM_COLL_TREE_2CHAINS_MODIFIED , NM_COLL_TREE_LADDER , NM_COLL_TREE_BINOMIAL , NM_COLL_TREE_3NOMIAL , NM_COLL_TREE_4NOMIAL , NM_COLL_TREE_8NOMIAL , NM_COLL_TREE_BINARY , NM_COLL_TREE_3ARY , NM_COLL_TREE_4ARY , NM_COLL_TREE_8ARY , NM_COLL_TREE_DEFAULT , _NM_COLL_TREE_MAX } |
| kind of tree More... | |
| typedef enum nm_coll_tree_kind_e | nm_coll_tree_kind_t |
| void | nm_coll_tree_init (struct nm_coll_tree_info_s *p_tree, nm_coll_tree_kind_t kind, int n, int self, int root) |
| void | nm_coll_tree_step (const struct nm_coll_tree_info_s *p_tree, int step, int *p_parent, int *p_children, int *n_children) |
| get the parent & children for the local node at the given step. | |
| int | nm_coll_tree_weight (const struct nm_coll_tree_info_s *p_tree, int step, int self) |
| static const char * | nm_coll_tree_kind_name (nm_coll_tree_kind_t kind) |
| nm_coll_tree_kind_t | nm_coll_tree_kind_by_name (const char *s_kind) |
| nm_coll_tree_kind_t | nm_coll_tree_env (void) |
| get tree kind from environment | |
| nm_coll_tree_kind_t | nm_coll_tree_heuristic (int comm_size __attribute__((unused)), nm_len_t data_size) |
| int | nm_coll_binary_nb_nodes_in_left_subtree (const struct nm_coll_tree_info_s *const p_tree) |
| static int | nm_coll_log2_floor (int x) |
| floor(log2(x)) | |
| static int | nm_coll_log2_ceil (int x) |
| ceil(log2(x)) | |
| static int | nm_coll_log4_floor (int x) |
| floor(log4(x)) | |
| static int | nm_coll_ipow (int base, int exp) |
| fast integer power() = base ^ exp | |
| static int | nm_coll_log_n_ceil (int x, const int n) |
| ceil(log_n(x)) | |
| static int | nm_coll_log_n_floor (int x, const int n) |
| floor(log_n(x) | |
| static int | nm_coll_r2v (int i, const struct nm_coll_tree_info_s *p_tree) |
| translate real ranks to virtual ranks (with root=0) | |
| static int | nm_coll_v2r (int i, const struct nm_coll_tree_info_s *p_tree) |
| translate virtual ranks (with root=0) to real ranks | |
| static void | nm_coll_tree_status_init (struct nm_coll_tree_status_s *p_status, nm_session_t p_session, nm_coll_tree_kind_t kind, nm_group_t p_group, int root, int self, nm_tag_t tag) |
| initialize a common status for non-blocking collective | |
| static void | nm_coll_tree_status_destroy (struct nm_coll_tree_status_s *p_status) |
| static void | nm_coll_tree_send (struct nm_coll_tree_status_s *p_coll_tree, int dest, struct nm_data_s *p_data, nm_sr_request_t *p_req) |
| static void | nm_coll_tree_issend (struct nm_coll_tree_status_s *p_coll_tree, int dest, struct nm_data_s *p_data, nm_sr_request_t *p_req) |
| static void | nm_coll_tree_recv (struct nm_coll_tree_status_s *p_coll_tree, int from, struct nm_data_s *p_data, nm_sr_request_t *p_req) |
| static void | nm_coll_tree_set_notifier (struct nm_coll_tree_status_s *p_coll_tree, nm_sr_request_t *p_req, void(*p_notifier)(nm_sr_event_t, const nm_sr_event_info_t *, void *)) |
| static int | nm_coll_tree_req_index (struct nm_coll_tree_status_s *p_coll_tree, nm_sr_request_t *p_request) |