|
15 | 15 | * and Technology (RIST). All rights reserved.
|
16 | 16 | * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
17 | 17 | * Copyright (c) 2015 Intel, Inc. All rights reserved.
|
| 18 | + * Copyright (c) 2017 IBM Corporation. All rights reserved. |
18 | 19 | * $COPYRIGHT$
|
19 | 20 | *
|
20 | 21 | * Additional copyrights may follow
|
|
31 | 32 | #include "opal/datatype/opal_convertor.h"
|
32 | 33 | #include "opal/datatype/opal_convertor_internal.h"
|
33 | 34 | #include "opal/datatype/opal_datatype_prototypes.h"
|
| 35 | +#include "opal/util/show_help.h" |
34 | 36 |
|
35 | 37 | #include "ompi/op/op.h"
|
36 | 38 | #include "ompi/datatype/ompi_datatype.h"
|
@@ -76,6 +78,25 @@ int ompi_osc_base_process_op (void *outbuf, void *inbuf, size_t inbuflen,
|
76 | 78 | return OMPI_ERR_NOT_SUPPORTED;
|
77 | 79 | }
|
78 | 80 |
|
| 81 | + /* TODO: Remove the following check when ompi adds support */ |
| 82 | + if(MPI_MINLOC == op || MPI_MAXLOC == op) { |
| 83 | + if(MPI_SHORT_INT == datatype || |
| 84 | + MPI_DOUBLE_INT == datatype || |
| 85 | + MPI_LONG_INT == datatype || |
| 86 | + MPI_LONG_DOUBLE_INT == datatype) { |
| 87 | + ompi_communicator_t *comm = &ompi_mpi_comm_world.comm; |
| 88 | + opal_output(0, "Error: %s datatype is currently " |
| 89 | + "unsupported for MPI_MINLOC/MPI_MAXLOC " |
| 90 | + "operation\n", datatype->name); |
| 91 | + opal_show_help("help-mpi-api.txt", "mpi-abort", true, |
| 92 | + comm->c_my_rank, |
| 93 | + ('\0' != comm->c_name[0]) ? comm->c_name : "<Unknown>", |
| 94 | + -1); |
| 95 | + |
| 96 | + ompi_mpi_abort(comm, -1); |
| 97 | + } |
| 98 | + } |
| 99 | + |
79 | 100 | if (ompi_datatype_is_predefined(datatype)) {
|
80 | 101 | ompi_op_reduce(op, inbuf, outbuf, count, datatype);
|
81 | 102 | } else {
|
|
0 commit comments