further fixes. The first hierarchical MPI_Bcast works! Its just ~ 100 times slower then basic at the moment :-)
This commit was SVN r7754.
Этот коммит содержится в:
родитель
460b5cb840
Коммит
30af775d40
@ -99,6 +99,34 @@ static const mca_coll_base_module_1_0_0_t intra = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static const mca_coll_base_module_1_0_0_t null_intra = {
|
||||||
|
|
||||||
|
/* Initialization / finalization functions */
|
||||||
|
|
||||||
|
mca_coll_hierarch_module_init,
|
||||||
|
mca_coll_hierarch_module_finalize,
|
||||||
|
|
||||||
|
/* Collective function pointers */
|
||||||
|
/* function pointers marked with NULL are not yet implemented
|
||||||
|
and will use the functions provided in the basic module */
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -239,8 +267,7 @@ mca_coll_hierarch_comm_query(struct ompi_communicator_t *comm, int *priority,
|
|||||||
|
|
||||||
tdata->hier_level = level;
|
tdata->hier_level = level;
|
||||||
*data = tdata;
|
*data = tdata;
|
||||||
/* return &intra; */
|
return &null_intra;
|
||||||
goto exit;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -417,7 +444,7 @@ struct ompi_communicator_t* mca_coll_hierarch_get_llcomm (int rank,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=0;i<data->hier_max_llead; i++ ) {
|
for (i=0;i<data->hier_num_llead; i++ ) {
|
||||||
llead = &(data->hier_llead[i]);
|
llead = &(data->hier_llead[i]);
|
||||||
llcomm = llead->llcomm;
|
llcomm = llead->llcomm;
|
||||||
rc = ompi_comm_group ( llcomm, &llgroup);
|
rc = ompi_comm_group ( llcomm, &llgroup);
|
||||||
@ -433,7 +460,7 @@ struct ompi_communicator_t* mca_coll_hierarch_get_llcomm (int rank,
|
|||||||
/* ompi_group_decrement_proc_count (llgroup);
|
/* ompi_group_decrement_proc_count (llgroup);
|
||||||
OBJ_RELEASE(llgroup); */
|
OBJ_RELEASE(llgroup); */
|
||||||
if ( MPI_UNDEFINED != *lrank ) {
|
if ( MPI_UNDEFINED != *lrank ) {
|
||||||
found = 0;
|
found = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,10 +62,10 @@ int mca_coll_hierarch_bcast_intra(void *buff,
|
|||||||
llcomm = mca_coll_hierarch_get_llcomm ( root, data, &llroot);
|
llcomm = mca_coll_hierarch_get_llcomm ( root, data, &llroot);
|
||||||
|
|
||||||
/* Bcast on the upper level among the local leaders */
|
/* Bcast on the upper level among the local leaders */
|
||||||
if ( MPI_UNDEFINED == llroot ) {
|
if ( MPI_UNDEFINED != llroot ) {
|
||||||
llcomm->c_coll.coll_bcast(buff, count, datatype, llroot, llcomm);
|
ret = llcomm->c_coll.coll_bcast(buff, count, datatype, llroot, llcomm);
|
||||||
if ( OMPI_SUCCESS != ret ) {
|
if ( OMPI_SUCCESS != ret ) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user