1
1

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
Этот коммит содержится в:
Gilles Gouaillardet 2016-05-09 14:12:30 +09:00
родитель 1911d74095
Коммит 0a19337371
4 изменённых файлов: 21 добавлений и 4 удалений

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

@ -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,