|
2 | 2 | /* |
3 | 3 | * Copyright (c) 2014-2015 Los Alamos National Security, LLC. All rights |
4 | 4 | * reserved. |
| 5 | + * Copyright (c) 2017 IBM Corporation. All rights reserved. |
5 | 6 | * $COPYRIGHT$ |
6 | 7 | * |
7 | 8 | * Additional copyrights may follow |
|
12 | 13 | #include "osc_rdma_accumulate.h" |
13 | 14 | #include "osc_rdma_request.h" |
14 | 15 | #include "osc_rdma_comm.h" |
| 16 | +#include "opal/util/show_help.h" |
15 | 17 |
|
16 | 18 | #include "ompi/mca/osc/base/osc_base_obj_convert.h" |
17 | 19 |
|
@@ -753,6 +755,46 @@ int ompi_osc_rdma_rget_accumulate_internal (ompi_osc_rdma_sync_t *sync, const vo |
753 | 755 | return OMPI_SUCCESS; |
754 | 756 | } |
755 | 757 |
|
| 758 | + /* TODO: Remove the following check when support is added. |
| 759 | + * See the following issue for the current state: |
| 760 | + * https://github.com/open-mpi/ompi/issues/1666 |
| 761 | + */ |
| 762 | + if(MPI_MINLOC == op || MPI_MAXLOC == op) { |
| 763 | + if(MPI_SHORT_INT == origin_datatype || |
| 764 | + MPI_DOUBLE_INT == origin_datatype || |
| 765 | + MPI_LONG_INT == origin_datatype || |
| 766 | + MPI_LONG_DOUBLE_INT == origin_datatype) { |
| 767 | + ompi_communicator_t *comm = &ompi_mpi_comm_world.comm; |
| 768 | + opal_show_help("help-mca-osc-base.txt", "unsupported-dt", true, |
| 769 | + origin_datatype->name, |
| 770 | + op->o_name, |
| 771 | + comm->c_my_rank); |
| 772 | + ompi_mpi_abort(comm, -1); |
| 773 | + } |
| 774 | + if(MPI_SHORT_INT == result_datatype || |
| 775 | + MPI_DOUBLE_INT == result_datatype || |
| 776 | + MPI_LONG_INT == result_datatype || |
| 777 | + MPI_LONG_DOUBLE_INT == result_datatype) { |
| 778 | + ompi_communicator_t *comm = &ompi_mpi_comm_world.comm; |
| 779 | + opal_show_help("help-mca-osc-base.txt", "unsupported-dt", true, |
| 780 | + result_datatype->name, |
| 781 | + op->o_name, |
| 782 | + comm->c_my_rank); |
| 783 | + ompi_mpi_abort(comm, -1); |
| 784 | + } |
| 785 | + if(MPI_SHORT_INT == target_datatype || |
| 786 | + MPI_DOUBLE_INT == target_datatype || |
| 787 | + MPI_LONG_INT == target_datatype || |
| 788 | + MPI_LONG_DOUBLE_INT == target_datatype) { |
| 789 | + ompi_communicator_t *comm = &ompi_mpi_comm_world.comm; |
| 790 | + opal_show_help("help-mca-osc-base.txt", "unsupported-dt", true, |
| 791 | + target_datatype->name, |
| 792 | + op->o_name, |
| 793 | + comm->c_my_rank); |
| 794 | + ompi_mpi_abort(comm, -1); |
| 795 | + } |
| 796 | + } |
| 797 | + |
756 | 798 | ret = osc_rdma_get_remote_segment (module, peer, target_disp, target_datatype->super.size * target_count, |
757 | 799 | &target_address, &target_handle); |
758 | 800 | if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { |
|
0 commit comments