Changeset 1362
- Timestamp:
- 12/06/17 15:22:17 (5 years ago)
- Location:
- XIOS/dev/branch_openmp
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/remap/src/mpi_routing.cpp
r1328 r1362 152 152 { 153 153 #ifdef _usingEP 154 MPI_Irecv(&sourceRank[i], 1, MPI_INT, -2, 0, communicator, &request[indexRequest ]);154 MPI_Irecv(&sourceRank[i], 1, MPI_INT, -2, 0, communicator, &request[indexRequest++]); 155 155 #else 156 MPI_Irecv(&sourceRank[i], 1, MPI_INT, MPI_ANY_SOURCE, 0, communicator, &request[indexRequest ]);156 MPI_Irecv(&sourceRank[i], 1, MPI_INT, MPI_ANY_SOURCE, 0, communicator, &request[indexRequest++]); 157 157 #endif 158 indexRequest++; 159 } 160 MPI_Barrier(communicator); 161 for (int i = 0; i < nbTarget; i++) 162 { 163 MPI_Isend(&mpiRank, 1, MPI_INT, targetRank[i], 0, communicator, &request[indexRequest]); 164 indexRequest++; 158 } 159 MPI_Barrier(communicator); 160 for (int i = 0; i < nbTarget; i++) 161 { 162 MPI_Isend(&mpiRank, 1, MPI_INT, targetRank[i], 0, communicator, &request[indexRequest++]); 165 163 } 166 164 MPI_Waitall(indexRequest, request, status); -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_declaration.cpp
r1354 r1362 103 103 104 104 ep_lib::MPI_Request MPI_REQUEST_NULL(MPI_REQUEST_NULL_STD); 105 ep_lib::MPI_Info MPI_INFO_NULL( MPI_INFO_NULL_STD);105 ep_lib::MPI_Info MPI_INFO_NULL(&MPI_INFO_NULL_STD); 106 106 107 107 -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_lib.cpp
r1356 r1362 251 251 } 252 252 253 254 255 256 257 253 MPI_Message to_mpi_message(void* message) 254 { 255 return *(static_cast< MPI_Message* >(message)); 256 } 257 258 MPI_Info to_mpi_info(void* info) 259 { 260 return *(static_cast< MPI_Info* >(info)); 261 } 262 263 264 265 266 -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_memory.cpp
r1287 r1362 10 10 int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, void *baseptr) 11 11 { 12 ::MPI_Alloc_mem(size.mpi_aint, static_cast< ::MPI_Info>(info.mpi_info), baseptr);12 ::MPI_Alloc_mem(size.mpi_aint, *(static_cast< ::MPI_Info*>(info.mpi_info)), baseptr); 13 13 //::MPI_Alloc_mem(size.mpi_aint, MPI_INFO_NULL_STD, baseptr); 14 14 return 0; … … 17 17 int MPI_Alloc_mem(unsigned long size, MPI_Info info, void *baseptr) 18 18 { 19 ::MPI_Alloc_mem(size, static_cast< ::MPI_Info>(info.mpi_info), baseptr);19 ::MPI_Alloc_mem(size, *(static_cast< ::MPI_Info*>(info.mpi_info)), baseptr); 20 20 //::MPI_Alloc_mem(size, MPI_INFO_NULL_STD, baseptr); 21 21 return 0; -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_message.cpp
r1355 r1362 69 69 70 70 MPI_Message *msg_block = new MPI_Message; 71 msg_block->mpi_message = message; 71 msg_block->mpi_message = new ::MPI_Message; 72 *(static_cast< ::MPI_Message*>(msg_block->mpi_message)) = message; 72 73 msg_block->ep_tag = bitset<15>(status.MPI_TAG >> 16).to_ulong(); 73 74 int src_loc = bitset<8> (status.MPI_TAG >> 8) .to_ulong(); … … 135 136 136 137 MPI_Message *msg_block = new MPI_Message; 137 138 msg_block->mpi_message= message;138 msg_block->mpi_message = new ::MPI_Message; 139 *(static_cast< ::MPI_Message*>(msg_block->mpi_message)) = message; 139 140 msg_block->ep_tag = bitset<15>(status.MPI_TAG >> 16).to_ulong(); 140 141 int src_loc = bitset<8> (status.MPI_TAG >> 8) .to_ulong(); … … 188 189 189 190 MPI_Message *msg_block = new MPI_Message; 190 191 msg_block->mpi_message= message;191 msg_block->mpi_message = new ::MPI_Message; 192 *(static_cast< ::MPI_Message*>(msg_block->mpi_message)) = message; 192 193 msg_block->ep_tag = bitset<15>(status.MPI_TAG >> 16).to_ulong(); 193 194 int src_loc = bitset<8> (status.MPI_TAG >> 8) .to_ulong(); -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_mpi.hpp
r1356 r1362 7 7 MPI_Op to_mpi_op(ep_lib::MPI_Op op); 8 8 MPI_Comm to_mpi_comm(void* comm); 9 MPI_Message to_mpi_message(void* message); 10 MPI_Info to_mpi_info(void* info); 9 11 10 12 #endif // EP_MPI_HPP_INCLUDED -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_probe.cpp
r1295 r1362 85 85 status->ep_tag = tag; 86 86 87 message->mpi_message = mpi_message; 87 message->mpi_message = new ::MPI_Message; 88 *(static_cast< ::MPI_Message*>(message->mpi_message)) = mpi_message; 88 89 message->ep_src = src; 89 90 message->ep_tag = tag; -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_recv.cpp
r1295 r1362 89 89 EP_PendingRequests->push_back(request); 90 90 91 91 92 Request_Check(); 92 93 … … 101 102 102 103 ::MPI_Request mpi_request; 103 ::MPI_Message mpi_message = static_cast< ::MPI_Message >(message->mpi_message);104 105 ::MPI_Imrecv(buf, count, to_mpi_type(datatype), &mpi_message, &mpi_request);104 //::MPI_Message mpi_message = *(static_cast< ::MPI_Message* >(message->mpi_message)); 105 ::MPI_Imrecv(buf, count, to_mpi_type(datatype), static_cast< ::MPI_Message* >(message->mpi_message), &mpi_request); 106 //::MPI_Imrecv(buf, count, to_mpi_type(datatype), &mpi_message, &mpi_request); 106 107 107 108 request->mpi_request = mpi_request; … … 109 110 request->ep_tag = message->ep_tag; 110 111 request->ep_src = message->ep_src; 112 113 delete message->mpi_message; 111 114 112 115 return 0; … … 119 122 120 123 ::MPI_Status mpi_status; 121 ::MPI_Message mpi_message = static_cast< ::MPI_Message >(message->mpi_message);122 123 ::MPI_Mrecv(buf, count, to_mpi_type(datatype), &mpi_message, &mpi_status);124 //::MPI_Message mpi_message = *(static_cast< ::MPI_Message* >(message->mpi_message)); 125 ::MPI_Mrecv(buf, count, to_mpi_type(datatype), static_cast< ::MPI_Message* >(message->mpi_message), &mpi_status); 126 //::MPI_Mrecv(buf, count, to_mpi_type(datatype), &mpi_message, &mpi_status); 124 127 125 128 status->mpi_status = new ::MPI_Status(mpi_status); … … 127 130 status->ep_datatype = datatype; 128 131 status->ep_tag = message->ep_tag; 132 133 delete message->mpi_message; 129 134 130 135 //check_sum_recv(buf, count, datatype, message->ep_src, message->ep_tag); -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_type.cpp
r1359 r1362 48 48 intercomm = NULL; 49 49 } 50 51 MPI_Message::MPI_Message(void* message) 52 { 53 mpi_message = new ::MPI_Message; 54 *(static_cast< ::MPI_Message*>(mpi_message)) = *(static_cast< ::MPI_Message*>(message)); 55 } 56 57 MPI_Info::MPI_Info(void* info) 58 { 59 mpi_info = new ::MPI_Info; 60 *(static_cast< ::MPI_Info*>(mpi_info)) = *(static_cast< ::MPI_Info*>(info)); 61 } 62 63 // MPI_Request::MPI_Request(void* request) 64 // { 65 // mpi_request = new ::MPI_Request; 66 // *(static_cast< ::MPI_Request*>(mpi_request)) = *(static_cast< ::MPI_Request*>(request)); 67 // } 50 68 51 69 -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_type.hpp
r1356 r1362 67 67 public: 68 68 69 intmpi_message;69 void* mpi_message; 70 70 int ep_src; 71 71 int ep_tag; … … 73 73 74 74 MPI_Message() {} 75 MPI_Message( int message): mpi_message(message) {}75 MPI_Message(void* message); 76 76 }; 77 77 … … 201 201 EP_Comm ep_comm_ptr; 202 202 MPI_Comm *mem_bridge; 203 int* mpi_bridge;203 void* mpi_bridge; 204 204 205 205 MPI_Comm(); … … 219 219 public: 220 220 221 intmpi_info;221 void* mpi_info; 222 222 223 223 MPI_Info(){ } 224 MPI_Info( int info): mpi_info(info) {}224 MPI_Info(void* info); 225 225 }; 226 226 … … 242 242 243 243 MPI_Request() {} 244 MPI_Request(int request): 244 MPI_Request(int request):mpi_request(request) {} 245 245 bool operator == (MPI_Request right); 246 246 -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_wait.cpp
r1295 r1362 35 35 ::MPI_Status mpi_status; 36 36 ::MPI_Wait(&(request->mpi_request), &mpi_status); 37 37 38 39 40 38 41 // request->mpi_request = mpi_request; 39 42 … … 42 45 status->ep_tag = request->ep_tag; 43 46 status->ep_datatype = request->ep_datatype; 47 48 44 49 45 50 return MPI_SUCCESS; … … 93 98 delete[] mpi_status; 94 99 100 95 101 return MPI_SUCCESS; 96 102 } /* end of mpi_waitall*/ -
XIOS/dev/branch_openmp/src/io/inetcdf4.cpp
r1356 r1362 23 23 // even if Parallel NetCDF ends up being used. 24 24 if (mpi) 25 CNetCdfInterface::openPar(filename, NC_NOWRITE | NC_MPIIO, *(static_cast<MPI_Comm*>(comm->mpi_comm)), info_null.mpi_info, this->ncidp);25 CNetCdfInterface::openPar(filename, NC_NOWRITE | NC_MPIIO, *(static_cast<MPI_Comm*>(comm->mpi_comm)), *(static_cast<MPI_Info*>(info_null.mpi_info)), this->ncidp); 26 26 //CNetCdfInterface::openPar(filename, NC_NOWRITE | NC_MPIIO, *(static_cast<MPI_Comm*>(comm->mpi_comm)), info_null.mpi_info, this->ncidp); 27 27 else -
XIOS/dev/branch_openmp/src/io/netCdfInterface.cpp
r1338 r1362 49 49 int CNetCdfInterface::createPar(const StdString& fileName, int cMode, MPI_Comm comm, MPI_Info info, int& ncId) 50 50 { 51 int status = xios::nc_create_par(fileName.c_str(), cMode, comm, MPI_INFO_NULL.mpi_info, &ncId); 51 //int status = xios::nc_create_par(fileName.c_str(), cMode, comm, MPI_INFO_NULL.mpi_info, &ncId); 52 int status = xios::nc_create_par(fileName.c_str(), cMode, comm, *(static_cast< MPI_Info* >(MPI_INFO_NULL.mpi_info)), &ncId); 52 53 if (NC_NOERR != status) 53 54 { … … 104 105 int status; 105 106 #pragma omp critical (_netcdf) 106 status = xios::nc_open_par(fileName.c_str(), oMode, comm, MPI_INFO_NULL.mpi_info, &ncId);107 status = xios::nc_open_par(fileName.c_str(), oMode, comm, *(static_cast< MPI_Info* >(MPI_INFO_NULL.mpi_info)), &ncId); 107 108 108 109 if (NC_NOERR != status) -
XIOS/dev/branch_openmp/src/io/onetcdf4.cpp
r1356 r1362 58 58 CTimer::get("Files : create").resume(); 59 59 if (wmpi) 60 CNetCdfInterface::createPar(filename, mode, *(static_cast<MPI_Comm*>(comm->mpi_comm)), info_null.mpi_info, this->ncidp);60 CNetCdfInterface::createPar(filename, mode, *(static_cast<MPI_Comm*>(comm->mpi_comm)), *(static_cast<MPI_Info*>(info_null.mpi_info)), this->ncidp); 61 61 //CNetCdfInterface::createPar(filename, mode, *(static_cast<MPI_Comm*>(comm->mpi_comm)), info_null.mpi_info, this->ncidp); 62 62 else … … 71 71 CTimer::get("Files : open").resume(); 72 72 if (wmpi) 73 CNetCdfInterface::openPar(filename, mode, *(static_cast<MPI_Comm*>(comm->mpi_comm)), info_null.mpi_info, this->ncidp);73 CNetCdfInterface::openPar(filename, mode, *(static_cast<MPI_Comm*>(comm->mpi_comm)), *(static_cast<MPI_Info*>(info_null.mpi_info)), this->ncidp); 74 74 //CNetCdfInterface::openPar(filename, mode, *(static_cast<MPI_Comm*>(comm->mpi_comm)), info_null.mpi_info, this->ncidp); 75 75 else
Note: See TracChangeset
for help on using the changeset viewer.