Changeset 1398 for XIOS/dev/branch_openmp/extern/ep_dev/ep_put.cpp
- Timestamp:
- 01/10/18 16:16:44 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/ep_dev/ep_put.cpp
r1384 r1398 24 24 } 25 25 26 int MPI_Rput(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype, 27 int target_rank, MPI_Aint target_disp, int target_count, MPI_Datatype target_datatype, MPI_Win win, MPI_Request *request) 28 { 29 int target_mpi_rank = win.comm.rank_map->at(target_rank).second; 30 int target_local_rank = win.comm.rank_map->at(target_rank).first; 31 int num_ep = win.comm.ep_comm_ptr->size_rank_info[1].second; 32 33 ::MPI_Request mpi_request; 34 35 if(num_ep==1) 36 { 37 int return_value = ::MPI_Rput(origin_addr, origin_count, to_mpi_type(origin_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, to_mpi_type(target_datatype), 38 to_mpi_win(win.server_win[target_local_rank]), &mpi_request); 39 40 request->mpi_request = new ::MPI_Request(mpi_request); 41 42 request->ep_datatype = origin_datatype; 43 request->type = 1; 44 return return_value; 45 } 46 47 else 48 { 49 int return_value = ::MPI_Rput(origin_addr, origin_count, to_mpi_type(origin_datatype), target_mpi_rank, to_mpi_aint(target_disp), target_count, to_mpi_type(target_datatype), 50 to_mpi_win(win.client_win), &mpi_request); 51 52 request->mpi_request = new ::MPI_Request(mpi_request); 53 54 request->ep_datatype = origin_datatype; 55 request->type = 1; 56 return return_value; 57 } 58 } 59 26 60 }
Note: See TracChangeset
for help on using the changeset viewer.