|
4 | 4 | * reserved. |
5 | 5 | * Copyright (c) 2016 Research Organization for Information Science |
6 | 6 | * and Technology (RIST). All rights reserved. |
| 7 | + * Copyright (c) 2017 IBM Corporation. All rights reserved. |
7 | 8 | * $COPYRIGHT$ |
8 | 9 | * |
9 | 10 | * Additional copyrights may follow |
|
14 | 15 | #include "osc_rdma_accumulate.h" |
15 | 16 | #include "osc_rdma_request.h" |
16 | 17 | #include "osc_rdma_comm.h" |
| 18 | +#include "opal/util/show_help.h" |
17 | 19 |
|
18 | 20 | #include "ompi/mca/osc/base/osc_base_obj_convert.h" |
19 | 21 |
|
@@ -1026,6 +1028,46 @@ int ompi_osc_rdma_rget_accumulate_internal (ompi_osc_rdma_sync_t *sync, const vo |
1026 | 1028 | return OMPI_SUCCESS; |
1027 | 1029 | } |
1028 | 1030 |
|
| 1031 | + /* TODO: Remove the following check when support is added. |
| 1032 | + * See the following issue for the current state: |
| 1033 | + * https://github.com/open-mpi/ompi/issues/1666 |
| 1034 | + */ |
| 1035 | + if(MPI_MINLOC == op || MPI_MAXLOC == op) { |
| 1036 | + if(MPI_SHORT_INT == origin_datatype || |
| 1037 | + MPI_DOUBLE_INT == origin_datatype || |
| 1038 | + MPI_LONG_INT == origin_datatype || |
| 1039 | + MPI_LONG_DOUBLE_INT == origin_datatype) { |
| 1040 | + ompi_communicator_t *comm = &ompi_mpi_comm_world.comm; |
| 1041 | + opal_show_help("help-mca-osc-base.txt", "unsupported-dt", true, |
| 1042 | + origin_datatype->name, |
| 1043 | + op->o_name, |
| 1044 | + comm->c_my_rank); |
| 1045 | + ompi_mpi_abort(comm, -1); |
| 1046 | + } |
| 1047 | + if(MPI_SHORT_INT == result_datatype || |
| 1048 | + MPI_DOUBLE_INT == result_datatype || |
| 1049 | + MPI_LONG_INT == result_datatype || |
| 1050 | + MPI_LONG_DOUBLE_INT == result_datatype) { |
| 1051 | + ompi_communicator_t *comm = &ompi_mpi_comm_world.comm; |
| 1052 | + opal_show_help("help-mca-osc-base.txt", "unsupported-dt", true, |
| 1053 | + result_datatype->name, |
| 1054 | + op->o_name, |
| 1055 | + comm->c_my_rank); |
| 1056 | + ompi_mpi_abort(comm, -1); |
| 1057 | + } |
| 1058 | + if(MPI_SHORT_INT == target_datatype || |
| 1059 | + MPI_DOUBLE_INT == target_datatype || |
| 1060 | + MPI_LONG_INT == target_datatype || |
| 1061 | + MPI_LONG_DOUBLE_INT == target_datatype) { |
| 1062 | + ompi_communicator_t *comm = &ompi_mpi_comm_world.comm; |
| 1063 | + opal_show_help("help-mca-osc-base.txt", "unsupported-dt", true, |
| 1064 | + target_datatype->name, |
| 1065 | + op->o_name, |
| 1066 | + comm->c_my_rank); |
| 1067 | + ompi_mpi_abort(comm, -1); |
| 1068 | + } |
| 1069 | + } |
| 1070 | + |
1029 | 1071 | (void) ompi_datatype_get_extent (origin_datatype, &lb, &extent); |
1030 | 1072 |
|
1031 | 1073 | ret = osc_rdma_get_remote_segment (module, peer, target_disp, extent * target_count, &target_address, &target_handle); |
|
0 commit comments