int mca_bcol_iboffload_bcast_register(mca_bcol_base_module_t *super) { mca_bcol_iboffload_module_t *iboffload_module = (mca_bcol_iboffload_module_t *) super; int my_group_index = iboffload_module->ibnet->super.my_index; mca_bcol_base_coll_fn_comm_attributes_t comm_attribs; mca_bcol_base_coll_fn_invoke_attributes_t inv_attribs; IBOFFLOAD_VERBOSE(10, ("Register iboffload Bcast.\n")); comm_attribs.bcoll_type = BCOL_BCAST; comm_attribs.comm_size_min = 0; comm_attribs.comm_size_max = 1024 * 1024; comm_attribs.waiting_semantics = NON_BLOCKING; inv_attribs.bcol_msg_min = 0; inv_attribs.bcol_msg_max = 20000; /* range 1 */ inv_attribs.datatype_bitmap = 0xffffffff; inv_attribs.op_types_bitmap = 0xffffffff; comm_attribs.data_src = DATA_SRC_KNOWN; if (my_group_index < iboffload_module->power_of_2_ranks) { mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, mca_bcol_iboffload_small_msg_bcast_intra, mca_bcol_iboffload_small_msg_bcast_progress); inv_attribs.bcol_msg_min = 10000000; inv_attribs.bcol_msg_max = 10485760; /* range 4 */ mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, mca_bcol_iboffload_bcast_scatter_allgather_intra, mca_bcol_iboffload_zero_copy_progress); } else { mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, mca_bcol_iboffload_small_msg_bcast_extra_intra, mca_bcol_iboffload_small_msg_bcast_progress); inv_attribs.bcol_msg_min = 10000000; inv_attribs.bcol_msg_max = 10485760; /* range 4 */ mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, mca_bcol_iboffload_bcast_scatter_allgather_extra_intra, mca_bcol_iboffload_zero_copy_progress); } return OMPI_SUCCESS; }
static int mca_bcol_ptpcoll_barrier_setup(mca_bcol_base_module_t *super, int bcoll_type) { netpatterns_k_exchange_node_t *my_exchange_node; mca_bcol_ptpcoll_module_t * ptpcoll_module = (mca_bcol_ptpcoll_module_t *) super; mca_bcol_base_coll_fn_comm_attributes_t comm_attribs; mca_bcol_base_coll_fn_invoke_attributes_t inv_attribs; comm_attribs.bcoll_type = bcoll_type; comm_attribs.comm_size_min = 0; comm_attribs.comm_size_max = 1024 * 1024; comm_attribs.waiting_semantics = NON_BLOCKING; inv_attribs.bcol_msg_min = 0; inv_attribs.bcol_msg_max = 20000; /* range 1 */ inv_attribs.datatype_bitmap = 0xffffffff; inv_attribs.op_types_bitmap = 0xffffffff; comm_attribs.data_src = DATA_SRC_KNOWN; switch(mca_bcol_ptpcoll_component.barrier_alg) { case 1: if (PTPCOLL_EXTRA == ptpcoll_module->pow_2type) { mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_ptpcoll_barrier_recurs_dbl_extra_new, bcol_ptpcoll_barrier_extra_node_progress); break; } mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_ptpcoll_barrier_recurs_dbl_new, bcol_ptpcoll_barrier_recurs_dbl_new_progress); break; case 2: my_exchange_node = &ptpcoll_module->knomial_exchange_tree; if (my_exchange_node->n_extra_sources > 0 && EXTRA_NODE == my_exchange_node->node_type) { mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_ptpcoll_barrier_recurs_knomial_extra_new, bcol_ptpcoll_barrier_extra_node_progress); break; } mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_ptpcoll_barrier_recurs_knomial_new, bcol_ptpcoll_barrier_recurs_knomial_new_progress); break; default: PTPCOLL_ERROR(("Wrong barrier_alg flag value.")); } return OMPI_SUCCESS; }
int mca_bcol_iboffload_fanin_register(mca_bcol_base_module_t *super) { mca_bcol_base_coll_fn_comm_attributes_t comm_attribs; mca_bcol_base_coll_fn_invoke_attributes_t inv_attribs; IBOFFLOAD_VERBOSE(10, ("Register iboffload Fan-In.\n")); comm_attribs.bcoll_type = BCOL_FANIN; comm_attribs.comm_size_min = 0; comm_attribs.comm_size_max = 1024 * 1024; comm_attribs.waiting_semantics = NON_BLOCKING; inv_attribs.bcol_msg_min = 0; inv_attribs.bcol_msg_max = 20000; /* range 1 */ inv_attribs.datatype_bitmap = 0xffffffff; inv_attribs.op_types_bitmap = 0xffffffff; comm_attribs.data_src = DATA_SRC_KNOWN; mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, mca_bcol_iboffload_new_style_fanin_intra, mca_bcol_iboffload_new_style_fanin_progress); return OMPI_SUCCESS; }
int bcol_basesmuma_fanout_init(mca_bcol_base_module_t *super) { mca_bcol_base_coll_fn_comm_attributes_t comm_attribs; mca_bcol_base_coll_fn_invoke_attributes_t inv_attribs; BASESMUMA_VERBOSE(10, ("Basesmuma Fan-Out register.\n")); comm_attribs.bcoll_type = BCOL_FANOUT; comm_attribs.comm_size_min = 0; comm_attribs.comm_size_max = 1024 * 1024; comm_attribs.waiting_semantics = NON_BLOCKING; inv_attribs.bcol_msg_min = 0; inv_attribs.bcol_msg_max = 20000; /* range 1 */ inv_attribs.datatype_bitmap = 0xffffffff; inv_attribs.op_types_bitmap = 0xffffffff; comm_attribs.data_src = DATA_SRC_KNOWN; mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_basesmuma_fanout_new, bcol_basesmuma_fanout_new); return OMPI_SUCCESS; }
int bcol_basesmuma_memsync_init(mca_bcol_base_module_t *super) { mca_bcol_base_coll_fn_comm_attributes_t comm_attribs; mca_bcol_base_coll_fn_invoke_attributes_t inv_attribs; comm_attribs.bcoll_type = BCOL_SYNC; comm_attribs.comm_size_min = 0; comm_attribs.comm_size_max = 1024 * 1024; comm_attribs.waiting_semantics = NON_BLOCKING; inv_attribs.bcol_msg_min = 0; inv_attribs.bcol_msg_max = 20000; /* range 1 */ inv_attribs.datatype_bitmap = 0xffffffff; inv_attribs.op_types_bitmap = 0xffffffff; comm_attribs.data_src = DATA_SRC_KNOWN; mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_basesmuma_memsync, bcol_basesmuma_memsync_progress); return OMPI_SUCCESS; }
/* end debug */ int bcol_basesmuma_bcast_init(mca_bcol_base_module_t *super) { mca_bcol_base_coll_fn_comm_attributes_t comm_attribs; mca_bcol_base_coll_fn_invoke_attributes_t inv_attribs; comm_attribs.bcoll_type = BCOL_BCAST; comm_attribs.comm_size_min = 0; comm_attribs.comm_size_max = 64; comm_attribs.data_src = DATA_SRC_KNOWN; comm_attribs.waiting_semantics = NON_BLOCKING; inv_attribs.bcol_msg_min = 0; inv_attribs.bcol_msg_max = 20000; /* range 1 */ inv_attribs.datatype_bitmap = 0xffffffff; inv_attribs.op_types_bitmap = 0xffffffff; mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_basesmuma_bcast_k_nomial_knownroot, bcol_basesmuma_bcast_k_nomial_knownroot); comm_attribs.data_src = DATA_SRC_UNKNOWN; mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_basesmuma_bcast_k_nomial_anyroot, bcol_basesmuma_bcast_k_nomial_anyroot); comm_attribs.data_src = DATA_SRC_UNKNOWN; inv_attribs.bcol_msg_min = 10000000; inv_attribs.bcol_msg_max = 10485760; /* range 4 */ #ifdef __PORTALS_AVAIL__ comm_attribs.waiting_semantics = BLOCKING; mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_basesmuma_lmsg_scatter_allgather_portals_bcast, bcol_basesmuma_lmsg_scatter_allgather_portals_bcast); comm_attribs.waiting_semantics = NON_BLOCKING; mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_basesmuma_lmsg_scatter_allgather_portals_nb_bcast, bcol_basesmuma_lmsg_scatter_allgather_portals_nb_bcast); comm_attribs.data_src = DATA_SRC_KNOWN; mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_basesmuma_lmsg_scatter_allgather_portals_nb_knownroot_bcast, bcol_basesmuma_lmsg_scatter_allgather_portals_nb_knownroot_bcast); #else /* if (super->use_hdl) { mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, bcol_basesmuma_hdl_zerocopy_bcast, bcol_basesmuma_hdl_zerocopy_bcast); } else { */ mca_bcol_base_set_attributes(super, &comm_attribs, &inv_attribs, NULL, NULL); /* bcol_basesmuma_binary_scatter_allgather_segment, bcol_basesmuma_binary_scatter_allgather_segment); */ /* } */ #endif return OMPI_SUCCESS; }