static void mca_bcol_ptpcoll_module_destruct(mca_bcol_ptpcoll_module_t *ptpcoll_module) { int i; mca_bcol_ptpcoll_local_mlmem_desc_t *ml_mem = &ptpcoll_module->ml_mem; if (NULL != ml_mem->ml_buf_desc) { /* Release the memory structs that were cache ML memory data */ uint32_t i, j, ci; for (i = 0; i < ml_mem->num_banks; i++) { for (j = 0; j < ml_mem->num_buffers_per_bank; j++) { ci = i * ml_mem->num_buffers_per_bank + j; if (NULL != ml_mem->ml_buf_desc[ci].requests) { free(ml_mem->ml_buf_desc[ci].requests); } } } /* release the buffer descriptor */ free(ml_mem->ml_buf_desc); ml_mem->ml_buf_desc = NULL; } if (NULL != ptpcoll_module->allgather_offsets) { free_allreduce_offsets_array(ptpcoll_module); } if (NULL != ptpcoll_module->narray_node) { for (i = 0; i < ptpcoll_module->group_size; i++) { if (NULL != ptpcoll_module->narray_node[i].children_ranks) { free(ptpcoll_module->narray_node[i].children_ranks); } } free(ptpcoll_module->narray_node); ptpcoll_module->narray_node = NULL; } OBJ_DESTRUCT(&ptpcoll_module->collreqs_free); if( NULL != ptpcoll_module->super.list_n_connected ){ free(ptpcoll_module->super.list_n_connected); ptpcoll_module->super.list_n_connected = NULL; } }
static void mca_bcol_ptpcoll_module_destruct(mca_bcol_ptpcoll_module_t *ptpcoll_module) { int i; mca_bcol_ptpcoll_local_mlmem_desc_t *ml_mem = &ptpcoll_module->ml_mem; if (NULL != ml_mem->ml_buf_desc) { /* Release the memory structs that were cache ML memory data */ uint32_t i, j, ci; for (i = 0; i < ml_mem->num_banks; i++) { for (j = 0; j < ml_mem->num_buffers_per_bank; j++) { ci = i * ml_mem->num_buffers_per_bank + j; if (NULL != ml_mem->ml_buf_desc[ci].requests) { free(ml_mem->ml_buf_desc[ci].requests); } } } /* release the buffer descriptor */ free(ml_mem->ml_buf_desc); ml_mem->ml_buf_desc = NULL; } if (NULL != ptpcoll_module->allgather_offsets) { free_allreduce_offsets_array(ptpcoll_module); } if (NULL != ptpcoll_module->narray_node) { for (i = 0; i < ptpcoll_module->group_size; i++) { if (NULL != ptpcoll_module->narray_node[i].children_ranks) { free(ptpcoll_module->narray_node[i].children_ranks); } } free(ptpcoll_module->narray_node); ptpcoll_module->narray_node = NULL; } OBJ_DESTRUCT(&ptpcoll_module->collreqs_free); if (NULL != ptpcoll_module->super.list_n_connected) { free(ptpcoll_module->super.list_n_connected); ptpcoll_module->super.list_n_connected = NULL; } for (i = 0; i < BCOL_NUM_OF_FUNCTIONS; i++){ OPAL_LIST_DESTRUCT((&ptpcoll_module->super.bcol_fns_table[i])); } if (NULL != ptpcoll_module->kn_proxy_extra_index) { free(ptpcoll_module->kn_proxy_extra_index); ptpcoll_module->kn_proxy_extra_index = NULL; } if (NULL != ptpcoll_module->alltoall_iovec) { free(ptpcoll_module->alltoall_iovec); ptpcoll_module->alltoall_iovec = NULL; } if (NULL != ptpcoll_module->narray_knomial_proxy_extra_index) { free(ptpcoll_module->narray_knomial_proxy_extra_index); ptpcoll_module->narray_knomial_proxy_extra_index = NULL; } if (NULL != ptpcoll_module->narray_knomial_node) { free(ptpcoll_module->narray_knomial_node); ptpcoll_module->narray_knomial_node = NULL; } netpatterns_cleanup_recursive_knomial_allgather_tree_node(&ptpcoll_module->knomial_allgather_tree); netpatterns_cleanup_recursive_knomial_tree_node(&ptpcoll_module->knomial_exchange_tree); }