/* initiates non-blocking calls for this communication step */ static void begin_coll_step(pcu_coll* c) { int action = c->pattern->action(c->bit); if (action == pcu_coll_idle) return; c->message.peer = c->pattern->peer(c->bit); if (action == pcu_coll_send) pcu_mpi_send(&(c->message),pcu_coll_comm); }
static void send_peers(pcu_aa_tree t) { if (pcu_aa_empty(t)) return; pcu_msg_peer* peer; peer = (pcu_msg_peer*)t; pcu_mpi_send(&(peer->message),pcu_user_comm); send_peers(t->left); send_peers(t->right); }