diff --git a/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c b/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c index bf8bc44350..f08298fd41 100644 --- a/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c +++ b/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c @@ -222,14 +222,6 @@ int ompi_coll_tuned_reduce_intra_dec_fixed( void *sendbuf, void *recvbuf, 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 */ /* for small messages use linear algorithm */ diff --git a/ompi/mca/coll/tuned/coll_tuned_module.c b/ompi/mca/coll/tuned/coll_tuned_module.c index d64b608eaa..4bf56c0b14 100644 --- a/ompi/mca/coll/tuned/coll_tuned_module.c +++ b/ompi/mca/coll/tuned/coll_tuned_module.c @@ -259,7 +259,6 @@ ompi_coll_tuned_comm_query(struct ompi_communicator_t *comm, int *priority, * and if using fixed OR dynamic rule sets. * 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 - * */ 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; } } 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) { OPAL_OUTPUT((ompi_coll_tuned_stream,"coll:tuned:module_query using intra_dynamic")); to_use = &intra_dynamic;