coll/base: return MPI_ERR_UNSUPPORTED_OPERATION when coll_base_*_two_procs algo is used on a communicator that has no two tasks
Thanks Dave Love for the report
Этот коммит содержится в:
родитель
1911d74095
Коммит
0a19337371
@ -12,7 +12,7 @@
|
|||||||
* Copyright (c) 2009 University of Houston. All rights reserved.
|
* Copyright (c) 2009 University of Houston. All rights reserved.
|
||||||
* Copyright (c) 2013 Los Alamos National Security, LLC. All Rights
|
* Copyright (c) 2013 Los Alamos National Security, LLC. All Rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2014-2015 Research Organization for Information Science
|
* Copyright (c) 2014-2016 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -623,6 +623,10 @@ int ompi_coll_base_allgather_intra_two_procs(const void *sbuf, int scount,
|
|||||||
OPAL_OUTPUT((ompi_coll_base_framework.framework_output,
|
OPAL_OUTPUT((ompi_coll_base_framework.framework_output,
|
||||||
"ompi_coll_base_allgather_intra_two_procs rank %d", rank));
|
"ompi_coll_base_allgather_intra_two_procs rank %d", rank));
|
||||||
|
|
||||||
|
if (2 != ompi_comm_size(comm)) {
|
||||||
|
return MPI_ERR_UNSUPPORTED_OPERATION;
|
||||||
|
}
|
||||||
|
|
||||||
err = ompi_datatype_get_extent (sdtype, &lb, &sext);
|
err = ompi_datatype_get_extent (sdtype, &lb, &sext);
|
||||||
if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; }
|
if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; }
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* Copyright (c) 2009 University of Houston. All rights reserved.
|
* Copyright (c) 2009 University of Houston. All rights reserved.
|
||||||
* Copyright (c) 2013 Los Alamos National Security, LLC. All Rights
|
* Copyright (c) 2013 Los Alamos National Security, LLC. All Rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2015 Research Organization for Information Science
|
* Copyright (c) 2015-2016 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -526,6 +526,10 @@ int ompi_coll_base_allgatherv_intra_two_procs(const void *sbuf, int scount,
|
|||||||
OPAL_OUTPUT((ompi_coll_base_framework.framework_output,
|
OPAL_OUTPUT((ompi_coll_base_framework.framework_output,
|
||||||
"ompi_coll_base_allgatherv_intra_two_procs rank %d", rank));
|
"ompi_coll_base_allgatherv_intra_two_procs rank %d", rank));
|
||||||
|
|
||||||
|
if (2 != ompi_comm_size(comm)) {
|
||||||
|
return MPI_ERR_UNSUPPORTED_OPERATION;
|
||||||
|
}
|
||||||
|
|
||||||
err = ompi_datatype_get_extent (sdtype, &lb, &sext);
|
err = ompi_datatype_get_extent (sdtype, &lb, &sext);
|
||||||
if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; }
|
if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; }
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2013 Los Alamos National Security, LLC. All Rights
|
* Copyright (c) 2013 Los Alamos National Security, LLC. All Rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2014-2015 Research Organization for Information Science
|
* Copyright (c) 2014-2016 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -500,6 +500,10 @@ int ompi_coll_base_alltoall_intra_two_procs(const void *sbuf, int scount,
|
|||||||
OPAL_OUTPUT((ompi_coll_base_framework.framework_output,
|
OPAL_OUTPUT((ompi_coll_base_framework.framework_output,
|
||||||
"ompi_coll_base_alltoall_intra_two_procs rank %d", rank));
|
"ompi_coll_base_alltoall_intra_two_procs rank %d", rank));
|
||||||
|
|
||||||
|
if (2 != ompi_comm_size(comm)) {
|
||||||
|
return MPI_ERR_UNSUPPORTED_OPERATION;
|
||||||
|
}
|
||||||
|
|
||||||
err = ompi_datatype_get_extent (sdtype, &lb, &sext);
|
err = ompi_datatype_get_extent (sdtype, &lb, &sext);
|
||||||
if (err != MPI_SUCCESS) { line = __LINE__; goto err_hndl; }
|
if (err != MPI_SUCCESS) { line = __LINE__; goto err_hndl; }
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
||||||
* Copyright (c) 2013 Los Alamos National Security, LLC. All Rights
|
* Copyright (c) 2013 Los Alamos National Security, LLC. All Rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2015 Research Organization for Information Science
|
* Copyright (c) 2015-2016 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -303,6 +303,11 @@ int ompi_coll_base_barrier_intra_two_procs(struct ompi_communicator_t *comm,
|
|||||||
remote = ompi_comm_rank(comm);
|
remote = ompi_comm_rank(comm);
|
||||||
OPAL_OUTPUT((ompi_coll_base_framework.framework_output,
|
OPAL_OUTPUT((ompi_coll_base_framework.framework_output,
|
||||||
"ompi_coll_base_barrier_intra_two_procs rank %d", remote));
|
"ompi_coll_base_barrier_intra_two_procs rank %d", remote));
|
||||||
|
|
||||||
|
if (2 != ompi_comm_size(comm)) {
|
||||||
|
return MPI_ERR_UNSUPPORTED_OPERATION;
|
||||||
|
}
|
||||||
|
|
||||||
remote = (remote + 1) & 0x1;
|
remote = (remote + 1) & 0x1;
|
||||||
|
|
||||||
err = ompi_coll_base_sendrecv_zero(remote, MCA_COLL_BASE_TAG_BARRIER,
|
err = ompi_coll_base_sendrecv_zero(remote, MCA_COLL_BASE_TAG_BARRIER,
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user