Changeset 1642 for XIOS/dev/branch_openmp/src/registry.cpp
- Timestamp:
- 01/23/19 10:31:44 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/src/registry.cpp
r1464 r1642 4 4 #include <fstream> 5 5 #include <sstream> 6 using namespace ep_lib;7 6 8 7 namespace xios … … 192 191 { 193 192 int rank ; 194 MPI_Comm_rank(communicator,&rank);193 ep_lib::MPI_Comm_rank(communicator,&rank); 195 194 if (rank==0) 196 195 { … … 198 197 this->toBuffer(buffer) ; 199 198 int size=buffer.count() ; 200 MPI_Bcast(&size,1,MPI_INT,0,communicator) ;201 MPI_Bcast(buffer.start(),size,MPI_CHAR,0,communicator) ;199 ep_lib::MPI_Bcast(&size,1,EP_INT,0,communicator) ; 200 ep_lib::MPI_Bcast(buffer.start(),size,EP_CHAR,0,communicator) ; 202 201 } 203 202 else 204 203 { 205 204 int size ; 206 MPI_Bcast(&size,1,MPI_INT,0,communicator) ;205 ep_lib::MPI_Bcast(&size,1,EP_INT,0,communicator) ; 207 206 CBufferIn buffer(size) ; 208 MPI_Bcast(buffer.start(),size,MPI_CHAR,0,communicator) ;207 ep_lib::MPI_Bcast(buffer.start(),size,EP_CHAR,0,communicator) ; 209 208 this->fromBuffer(buffer) ; 210 209 } … … 215 214 } 216 215 217 void CRegistry::gatherRegistry(const MPI_Comm& comm)216 void CRegistry::gatherRegistry(const ep_lib::MPI_Comm& comm) 218 217 { 219 218 int rank,mpiSize ; 220 MPI_Comm_rank(comm,&rank);221 MPI_Comm_size(comm,&mpiSize);219 ep_lib::MPI_Comm_rank(comm,&rank); 220 ep_lib::MPI_Comm_size(comm,&mpiSize); 222 221 223 222 int* sizes=new int[mpiSize] ; … … 225 224 this->toBuffer(localBuffer) ; 226 225 int localSize=localBuffer.count() ; 227 MPI_Gather(&localSize,1,MPI_INT,sizes,1,MPI_INT,0,comm) ;226 ep_lib::MPI_Gather(&localSize,1,EP_INT,sizes,1,EP_INT,0,comm) ; 228 227 229 228 char* globalBuffer ; … … 241 240 242 241 globalBuffer=new char[globalBufferSize] ; 243 MPI_Gatherv(localBuffer.start(),localSize,MPI_CHAR,globalBuffer,sizes,displs,MPI_CHAR,0,comm) ;242 ep_lib::MPI_Gatherv(localBuffer.start(),localSize,EP_CHAR,globalBuffer,sizes,displs,EP_CHAR,0,comm) ; 244 243 for(int i=1;i<mpiSize;++i) 245 244 { … … 252 251 delete[] globalBuffer ; 253 252 } 254 else MPI_Gatherv(localBuffer.start(),localSize,MPI_CHAR,globalBuffer,sizes,displs,MPI_CHAR,0,comm) ;253 else ep_lib::MPI_Gatherv(localBuffer.start(),localSize,EP_CHAR,globalBuffer,sizes,displs,EP_CHAR,0,comm) ; 255 254 delete[] sizes ; 256 255 … … 259 258 void CRegistry::hierarchicalGatherRegistry(void) 260 259 { 261 //hierarchicalGatherRegistry(communicator) ; 262 gatherRegistry(communicator) ; 263 } 264 265 void CRegistry::hierarchicalGatherRegistry(const MPI_Comm& comm) 260 hierarchicalGatherRegistry(communicator) ; 261 } 262 263 void CRegistry::hierarchicalGatherRegistry(const ep_lib::MPI_Comm& comm) 266 264 { 267 265 int mpiRank,mpiSize ; 268 MPI_Comm_rank(comm,&mpiRank);269 MPI_Comm_size(comm,&mpiSize);266 ep_lib::MPI_Comm_rank(comm,&mpiRank); 267 ep_lib::MPI_Comm_size(comm,&mpiSize); 270 268 271 269 if (mpiSize>2) … … 274 272 if (mpiRank<mpiSize/2+mpiSize%2) color=0 ; 275 273 else color=1 ; 276 MPI_Comm commUp ;277 MPI_Comm_split(comm,color,mpiRank,&commUp) ,274 ep_lib::MPI_Comm commUp ; 275 ep_lib::MPI_Comm_split(comm,color,mpiRank,&commUp) , 278 276 hierarchicalGatherRegistry(commUp) ; 279 MPI_Comm_free(&commUp) ;277 ep_lib::MPI_Comm_free(&commUp) ; 280 278 } 281 279 282 280 if (mpiSize>1) 283 281 { 284 MPI_Comm commDown ;282 ep_lib::MPI_Comm commDown ; 285 283 int color ; 286 284 287 285 if (mpiRank==0 || mpiRank==mpiSize/2+mpiSize%2) color=0 ; 288 286 else color=1 ; 289 MPI_Comm_split(comm,color,mpiRank,&commDown) ;287 ep_lib::MPI_Comm_split(comm,color,mpiRank,&commDown) ; 290 288 if (color==0) gatherRegistry(commDown) ; 291 MPI_Comm_free(&commDown) ;289 ep_lib::MPI_Comm_free(&commDown) ; 292 290 } 293 291 }
Note: See TracChangeset
for help on using the changeset viewer.