1
1

further fixes. The first hierarchical MPI_Bcast works! Its just ~ 100 times slower then basic at the moment :-)

This commit was SVN r7754.
Этот коммит содержится в:
Edgar Gabriel 2005-10-13 17:34:42 +00:00
родитель 460b5cb840
Коммит 30af775d40
2 изменённых файлов: 35 добавлений и 8 удалений

Просмотреть файл

@ -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;
*data = tdata;
/* return &intra; */
goto exit;
return &null_intra;
}
}
@ -417,7 +444,7 @@ struct ompi_communicator_t* mca_coll_hierarch_get_llcomm (int rank,
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]);
llcomm = llead->llcomm;
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);
OBJ_RELEASE(llgroup); */
if ( MPI_UNDEFINED != *lrank ) {
found = 0;
found = 1;
break;
}
}

Просмотреть файл

@ -62,10 +62,10 @@ int mca_coll_hierarch_bcast_intra(void *buff,
llcomm = mca_coll_hierarch_get_llcomm ( root, data, &llroot);
/* Bcast on the upper level among the local leaders */
if ( MPI_UNDEFINED == llroot ) {
llcomm->c_coll.coll_bcast(buff, count, datatype, llroot, llcomm);
if ( OMPI_SUCCESS != ret ) {
return ret;
if ( MPI_UNDEFINED != llroot ) {
ret = llcomm->c_coll.coll_bcast(buff, count, datatype, llroot, llcomm);
if ( OMPI_SUCCESS != ret ) {
return ret;
}
}