Minor updates
- Fix compiler warnings - Fix problem with using "p" instead of "p_index" - Style updates - Check return of malloc() for NULL This commit was SVN r6999.
Этот коммит содержится в:
родитель
9ee4c6de17
Коммит
d6819618ff
@ -101,15 +101,17 @@ static int mca_bml_r2_add_btls( void )
|
||||
mca_btl_base_selected_module_t* selected_btl;
|
||||
size_t num_btls = 0;
|
||||
|
||||
if(mca_bml_r2.btls_added == true)
|
||||
if(true == mca_bml_r2.btls_added) {
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
||||
/* build an array of r2s and r2 modules */
|
||||
btls = &mca_btl_base_modules_initialized;
|
||||
num_btls = opal_list_get_size(btls);
|
||||
|
||||
if(mca_bml_r2.btls_added == true)
|
||||
if(true == mca_bml_r2.btls_added) {
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
||||
mca_bml_r2.num_btl_modules = 0;
|
||||
mca_bml_r2.num_btl_progress = 0;
|
||||
@ -117,7 +119,6 @@ static int mca_bml_r2_add_btls( void )
|
||||
mca_bml_r2.btl_modules = (mca_btl_base_module_t **)malloc(sizeof(mca_btl_base_module_t*) * num_btls);
|
||||
mca_bml_r2.btl_progress = (mca_btl_base_component_progress_fn_t*)malloc(sizeof(mca_btl_base_component_progress_fn_t) * num_btls);
|
||||
|
||||
|
||||
if (NULL == mca_bml_r2.btl_modules ||
|
||||
NULL == mca_bml_r2.btl_progress) {
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
@ -130,7 +131,6 @@ static int mca_bml_r2_add_btls( void )
|
||||
mca_bml_r2.btl_modules[mca_bml_r2.num_btl_modules++] = btl;
|
||||
}
|
||||
|
||||
|
||||
/* sort r2 list by exclusivity */
|
||||
qsort(mca_bml_r2.btl_modules,
|
||||
mca_bml_r2.num_btl_modules,
|
||||
@ -160,37 +160,42 @@ int mca_bml_r2_add_procs(
|
||||
struct ompi_proc_t** new_procs = NULL;
|
||||
size_t n_new_procs = 0;
|
||||
|
||||
if(nprocs == 0)
|
||||
if(0 == nprocs) {
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
if(OMPI_SUCCESS != (rc = mca_bml_r2_add_btls()) )
|
||||
if(OMPI_SUCCESS != (rc = mca_bml_r2_add_btls()) ) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
new_procs = (struct ompi_proc_t **)
|
||||
malloc(nprocs * sizeof(struct ompi_proc_t *));
|
||||
|
||||
bml_endpoints = (struct mca_bml_base_endpoint_t **)
|
||||
malloc(nprocs * sizeof(struct mca_bml_base_endpoint_t*));
|
||||
if (NULL == new_procs || NULL == bml_endpoints) {
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
memset(bml_endpoints, 0, nprocs * sizeof(struct mca_bml_base_endpoint_t*));
|
||||
|
||||
|
||||
for(p_index = 0; p_index < nprocs; p_index++) {
|
||||
struct ompi_proc_t* proc;
|
||||
proc = procs[p_index];
|
||||
OBJ_RETAIN(proc);
|
||||
|
||||
if(NULL != proc->proc_pml) {
|
||||
bml_endpoints[p] = (mca_bml_base_endpoint_t*) proc->proc_pml;
|
||||
bml_endpoints[p_index] =
|
||||
(mca_bml_base_endpoint_t*) proc->proc_pml;
|
||||
} else {
|
||||
new_procs[n_new_procs++] = proc;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* attempt to add all procs to each r2 */
|
||||
btl_endpoints = (struct mca_btl_base_endpoint_t **)
|
||||
malloc(nprocs * sizeof(struct mca_btl_base_endpoint_t*));
|
||||
if (NULL == btl_endpoints) {
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
for(p_index = 0; p_index < mca_bml_r2.num_btl_modules; p_index++) {
|
||||
mca_btl_base_module_t* btl = mca_bml_r2.btl_modules[p_index];
|
||||
@ -308,8 +313,9 @@ int mca_bml_r2_add_procs(
|
||||
size_t n_size;
|
||||
|
||||
/* skip over procs w/ no btl's registered */
|
||||
if(NULL == bml_endpoint)
|
||||
if(NULL == bml_endpoint) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* (1) determine the total bandwidth available across all btls
|
||||
* note that we need to do this here, as we may already have btls configured
|
||||
@ -321,8 +327,9 @@ int mca_bml_r2_add_procs(
|
||||
mca_bml_base_btl_array_get_index(&bml_endpoint->btl_send, n_index);
|
||||
mca_btl_base_module_t* btl = bml_btl->btl;
|
||||
total_bandwidth += bml_btl->btl->btl_bandwidth;
|
||||
if(btl->btl_latency > latency)
|
||||
if(btl->btl_latency > latency) {
|
||||
latency = btl->btl_latency;
|
||||
}
|
||||
}
|
||||
|
||||
/* (1) set the weight of each btl as a percentage of overall bandwidth
|
||||
@ -337,10 +344,11 @@ int mca_bml_r2_add_procs(
|
||||
double weight;
|
||||
|
||||
/* compute weighting factor for this r2 */
|
||||
if(btl->btl_bandwidth)
|
||||
if(btl->btl_bandwidth > 0) {
|
||||
weight = btl->btl_bandwidth / total_bandwidth;
|
||||
else
|
||||
} else {
|
||||
weight = 1.0 / n_size;
|
||||
}
|
||||
bml_btl->btl_weight = (int)(weight * 100);
|
||||
|
||||
/* check to see if this r2 is already in the array of r2s
|
||||
@ -382,12 +390,15 @@ int mca_bml_r2_del_procs(size_t nprocs,
|
||||
malloc(nprocs * sizeof(struct ompi_proc_t*));
|
||||
size_t n_del_procs = 0;
|
||||
|
||||
if (NULL == del_procs) {
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
for(p =0; p < nprocs; p++) {
|
||||
ompi_proc_t *proc = procs[p];
|
||||
if(((opal_object_t*)proc)->obj_reference_count == 1) {
|
||||
del_procs[n_del_procs++] = proc;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for(p = 0; p < n_del_procs; p++) {
|
||||
@ -427,8 +438,9 @@ int mca_bml_r2_del_procs(size_t nprocs,
|
||||
mca_btl_base_module_t* btl = bml_btl->btl;
|
||||
if (btl != 0) {
|
||||
rc = btl->btl_del_procs(btl,1,&proc,&bml_btl->btl_endpoint);
|
||||
if(OMPI_SUCCESS != rc)
|
||||
if(OMPI_SUCCESS != rc) {
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -457,8 +469,9 @@ int mca_bml_r2_register(
|
||||
for(i = 0; i < mca_bml_r2.num_btl_modules; i++) {
|
||||
btl = mca_bml_r2.btl_modules[i];
|
||||
rc = btl->btl_register(btl, tag, cbfunc, data);
|
||||
if(OMPI_SUCCESS != rc)
|
||||
if(OMPI_SUCCESS != rc) {
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
@ -90,5 +90,6 @@ int mca_bml_r2_register(
|
||||
|
||||
int mca_bml_r2_finalize( void );
|
||||
|
||||
int mca_bml_r2_component_fini(void);
|
||||
|
||||
#endif /* OMPI_MCA_BML_R2_H */
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user