Tuned collectives works only for at least 2 processes. We have the self module
for the other cases. This commit was SVN r12271.
Этот коммит содержится в:
родитель
b848a5ad06
Коммит
d7d3f9e486
@ -222,14 +222,6 @@ int ompi_coll_tuned_reduce_intra_dec_fixed( void *sendbuf, void *recvbuf,
|
|||||||
return (err);
|
return (err);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* handle special case when size == 1 */
|
|
||||||
if( 1 == comsize ) {
|
|
||||||
if( sendbuf != MPI_IN_PLACE ) {
|
|
||||||
ompi_ddt_copy_content_same_ddt( datatype, count, (char*)recvbuf, (char*)sendbuf );
|
|
||||||
}
|
|
||||||
return MPI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
msgsize = dsize * count; /* needed for decision */
|
msgsize = dsize * count; /* needed for decision */
|
||||||
|
|
||||||
/* for small messages use linear algorithm */
|
/* for small messages use linear algorithm */
|
||||||
|
@ -259,7 +259,6 @@ ompi_coll_tuned_comm_query(struct ompi_communicator_t *comm, int *priority,
|
|||||||
* and if using fixed OR dynamic rule sets.
|
* and if using fixed OR dynamic rule sets.
|
||||||
* Right now you cannot mix them, maybe later on it can be changed
|
* Right now you cannot mix them, maybe later on it can be changed
|
||||||
* but this would probably add an extra if and funct call to the path
|
* but this would probably add an extra if and funct call to the path
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (OMPI_COMM_IS_INTER(comm)) {
|
if (OMPI_COMM_IS_INTER(comm)) {
|
||||||
@ -271,6 +270,14 @@ ompi_coll_tuned_comm_query(struct ompi_communicator_t *comm, int *priority,
|
|||||||
to_use = &inter_fixed;
|
to_use = &inter_fixed;
|
||||||
}
|
}
|
||||||
} else { /* is an intra comm */
|
} else { /* is an intra comm */
|
||||||
|
/**
|
||||||
|
* If the communicator size is less than 2 we have specialized modules
|
||||||
|
* to handle the intra collective communications.
|
||||||
|
*/
|
||||||
|
if( ompi_comm_size(comm) < 2) {
|
||||||
|
*priority = 0;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
if (ompi_coll_tuned_use_dynamic_rules) {
|
if (ompi_coll_tuned_use_dynamic_rules) {
|
||||||
OPAL_OUTPUT((ompi_coll_tuned_stream,"coll:tuned:module_query using intra_dynamic"));
|
OPAL_OUTPUT((ompi_coll_tuned_stream,"coll:tuned:module_query using intra_dynamic"));
|
||||||
to_use = &intra_dynamic;
|
to_use = &intra_dynamic;
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user