|
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