- Timestamp:
- 10/06/23 11:32:05 (16 months ago)
- Location:
- XIOS3/trunk/src
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/trunk/src/client.cpp
r2580 r2589 105 105 delete[] hashAll ; 106 106 107 MPI_Comm_split(globalComm, color, commRank, &clientComm) ;107 xios::MPI_Comm_split(globalComm, color, commRank, &clientComm) ; 108 108 CXios::getMpiGarbageCollector().registerCommunicator(clientComm) ; 109 109 } … … 115 115 else // localComm is given 116 116 { 117 MPI_Comm_dup(localComm,&clientComm) ;117 xios::MPI_Comm_dup(localComm,&clientComm) ; 118 118 CXios::getMpiGarbageCollector().registerCommunicator(clientComm) ; 119 MPI_Comm_dup(localComm,&intraComm_) ;119 xios::MPI_Comm_dup(localComm,&intraComm_) ; 120 120 CXios::getMpiGarbageCollector().registerCommunicator(intraComm_) ; 121 121 … … 145 145 MPI_Comm splitComm,interComm ; 146 146 MPI_Comm_rank(globalComm,&commGlobalRank) ; 147 MPI_Comm_split(globalComm, 0, commGlobalRank, &splitComm) ;147 xios::MPI_Comm_split(globalComm, 0, commGlobalRank, &splitComm) ; 148 148 int splitCommSize, globalCommSize ; 149 149 … … 152 152 if (splitCommSize==globalCommSize) // no server 153 153 { 154 MPI_Comm_dup(globalComm,&xiosGlobalComm) ;154 xios::MPI_Comm_dup(globalComm,&xiosGlobalComm) ; 155 155 CXios::setXiosComm(xiosGlobalComm) ; 156 156 } … … 163 163 MPI_Allreduce(&clientLeader,&clientRemoteLeader,1,MPI_INT,MPI_SUM,globalComm) ; 164 164 MPI_Allreduce(&serverLeader,&serverRemoteLeader,1,MPI_INT,MPI_SUM,globalComm) ; 165 MPI_Intercomm_create(splitComm, 0, globalComm, serverRemoteLeader,1341,&interComm) ;166 MPI_Intercomm_merge(interComm,true,&xiosGlobalComm) ;165 xios::MPI_Intercomm_create(splitComm, 0, globalComm, serverRemoteLeader,1341,&interComm) ; 166 xios::MPI_Intercomm_merge(interComm,true,&xiosGlobalComm) ; 167 167 CXios::setXiosComm(xiosGlobalComm) ; 168 168 } … … 177 177 int commRank ; 178 178 MPI_Comm_rank(CXios::getXiosComm(), &commRank) ; 179 MPI_Comm_split(CXios::getXiosComm(),false,commRank, &clientsComm_) ;179 xios::MPI_Comm_split(CXios::getXiosComm(),false,commRank, &clientsComm_) ; 180 180 CXios::getMpiGarbageCollector().registerCommunicator(clientsComm_) ; 181 181 … … 271 271 { 272 272 MPI_Comm intraComm ; 273 MPI_Comm_dup(clientComm,&intraComm) ;273 xios::MPI_Comm_dup(clientComm,&intraComm) ; 274 274 MPI_Comm interComm ; 275 275 … … 280 280 for(int i=pos ; i<clientsCodeId.size(); i++) 281 281 { 282 MPI_Intercomm_create(intraComm, 0, globalComm, serverRank, 3141, &interComm);282 xios::MPI_Intercomm_create(intraComm, 0, globalComm, serverRank, 3141, &interComm); 283 283 CXios::getMpiGarbageCollector().registerCommunicator(interComm) ; 284 MPI_Comm_free(&intraComm) ;285 MPI_Intercomm_merge(interComm,high, &intraComm ) ;284 xios::MPI_Comm_free(&intraComm) ; 285 xios::MPI_Intercomm_merge(interComm,high, &intraComm ) ; 286 286 high=false ; 287 287 if (i==pos) { … … 313 313 int client ; 314 314 MPI_Comm intraComm ; 315 MPI_Comm_dup(clientComm,&intraComm) ;315 xios::MPI_Comm_dup(clientComm,&intraComm) ; 316 316 MPI_Comm interComm ; 317 317 … … 324 324 if (codeId==clientsCodeId[0]) // first model play the server rule 325 325 { 326 MPI_Intercomm_create(intraComm, 0, globalComm, clientsRank[i], 3141, &interComm);327 MPI_Intercomm_merge(interComm,false, &intraComm ) ;326 xios::MPI_Intercomm_create(intraComm, 0, globalComm, clientsRank[i], 3141, &interComm); 327 xios::MPI_Intercomm_merge(interComm,false, &intraComm ) ; 328 328 } 329 329 else 330 330 { 331 MPI_Intercomm_create(intraComm, 0, globalComm, clientsRank[0], 3141, &interComm);332 MPI_Intercomm_merge(interComm,high, &intraComm ) ;331 xios::MPI_Intercomm_create(intraComm, 0, globalComm, clientsRank[0], 3141, &interComm); 332 xios::MPI_Intercomm_merge(interComm,high, &intraComm ) ; 333 333 high=false ; 334 334 } … … 381 381 { 382 382 MPI_Comm_connect(portName, MPI_INFO_NULL, 0, intraComm, &interComm); 383 MPI_Intercomm_merge(interComm, true, &intraComm ) ;383 xios::MPI_Intercomm_merge(interComm, true, &intraComm ) ; 384 384 } 385 385 xiosGlobalComm=intraComm ; … … 401 401 { 402 402 MPI_Comm_accept(portName, MPI_INFO_NULL, 0, intraComm, &interComm); 403 MPI_Intercomm_merge(interComm,false, &intraComm ) ;403 xios::MPI_Intercomm_merge(interComm,false, &intraComm ) ; 404 404 } 405 405 } … … 423 423 { 424 424 MPI_Comm_connect(portName, MPI_INFO_NULL, 0, intraComm, &interComm); 425 MPI_Intercomm_merge(interComm, true, &intraComm ) ;425 xios::MPI_Intercomm_merge(interComm, true, &intraComm ) ; 426 426 } 427 427 xiosGlobalComm=intraComm ; … … 523 523 CXios::getMpiGarbageCollector().release() ; // release unfree MPI ressources 524 524 MPI_Comm xiosComm=CXios::getXiosComm() ; 525 MPI_Comm_free(&xiosComm) ;525 xios::MPI_Comm_free(&xiosComm) ; 526 526 CCommTrack::dumpComm() ; 527 527 if (!is_MPI_Initialized) -
XIOS3/trunk/src/distribution/grid_remote_connector.cpp
r2507 r2589 609 609 if (commRank==0) color=1 ; 610 610 MPI_Comm newComm ; 611 MPI_Comm_split(localComm_, color, commRank, &newComm) ;611 xios::MPI_Comm_split(localComm_, color, commRank, &newComm) ; 612 612 if (color==1) 613 613 { … … 620 620 MPI_Bcast(indGlo.data(),dataSize,MPI_SIZE_T,0,newComm) ; 621 621 } 622 MPI_Comm_free(&newComm) ;622 xios::MPI_Comm_free(&newComm) ; 623 623 624 624 // construct element_[i] from indGlo -
XIOS3/trunk/src/event_scheduler.cpp
r2570 r2589 27 27 void CEventScheduler::initialize(const MPI_Comm& comm) 28 28 { 29 MPI_Comm_dup(comm, &communicator_) ;29 xios::MPI_Comm_dup(comm, &communicator_) ; 30 30 CXios::getMpiGarbageCollector().registerCommunicator(communicator_) ; 31 31 MPI_Comm_size(communicator_,&mpiSize_) ; … … 123 123 if (child->isRoot()) color=1 ; 124 124 else color=0 ; 125 MPI_Comm_split(communicator_, color, mpiRank_, &newComm) ;125 xios::MPI_Comm_split(communicator_, color, mpiRank_, &newComm) ; 126 126 CXios::getMpiGarbageCollector().registerCommunicator(newComm) ; 127 127 -
XIOS3/trunk/src/manager/daemons_manager.cpp
r2547 r2589 17 17 MPI_Comm_rank(xiosComm,&commRank) ; 18 18 MPI_Comm splitComm ; 19 MPI_Comm_split(xiosComm,isXiosServer,commRank,&splitComm) ;19 xios::MPI_Comm_split(xiosComm,isXiosServer,commRank,&splitComm) ; 20 20 21 21 CXios::launchRegistryManager(isXiosServer) ; … … 28 28 if (isXiosServer) CServer::launchServersRessource(splitComm) ; 29 29 MPI_Barrier(xiosComm) ; 30 MPI_Comm_free(&splitComm) ;30 xios::MPI_Comm_free(&splitComm) ; 31 31 } 32 32 -
XIOS3/trunk/src/manager/pool_ressource.cpp
r2580 r2589 15 15 { 16 16 int commRank, commSize ; 17 MPI_Comm_dup(poolComm, &poolComm_) ;17 xios::MPI_Comm_dup(poolComm, &poolComm_) ; 18 18 CXios::getMpiGarbageCollector().registerCommunicator(poolComm_) ; 19 19 winNotify_ = new CWindowManager(poolComm_, maxBufferSize_,"CPoolRessource::winNotify_") ; … … 336 336 else color=1 ; 337 337 MPI_Comm_rank(poolComm_,&commRank) ; 338 MPI_Comm_split(poolComm_, color, commRank, &freeComm) ; // workaround338 xios::MPI_Comm_split(poolComm_, color, commRank, &freeComm) ; // workaround 339 339 340 340 if (services_.empty()) 341 341 { 342 342 MPI_Comm_rank(freeComm,&commRank) ; 343 MPI_Comm_split(freeComm, in, commRank, &serviceComm) ;343 xios::MPI_Comm_split(freeComm, in, commRank, &serviceComm) ; 344 344 345 345 // temporary for event scheduler, we must using hierarchical split of free ressources communicator. … … 364 364 else partitionId = serviceCommRank / (serviceCommSize/nbPartitions + 1) ; 365 365 366 MPI_Comm_split(serviceComm, partitionId, commRank, &newServiceComm) ;366 xios::MPI_Comm_split(serviceComm, partitionId, commRank, &newServiceComm) ; 367 367 368 368 MPI_Comm_size(newServiceComm,&serviceCommSize) ; … … 378 378 services_[std::make_tuple(serviceId,partitionId)] = new CService(newServiceComm, childScheduler, Id_, serviceId, partitionId, type, nbPartitions) ; 379 379 380 MPI_Comm_free(&newServiceComm) ;380 xios::MPI_Comm_free(&newServiceComm) ; 381 381 } 382 382 else … … 388 388 isFirstSplit_=false ; 389 389 } 390 MPI_Comm_free(&serviceComm) ;391 } 392 MPI_Comm_free(&freeComm) ;390 xios::MPI_Comm_free(&serviceComm) ; 391 } 392 xios::MPI_Comm_free(&freeComm) ; 393 393 } 394 394 … … 404 404 const MPI_Comm& serviceComm = service.second->getCommunicator() ; 405 405 MPI_Comm newServiceComm ; 406 MPI_Comm_dup(serviceComm, &newServiceComm) ;406 xios::MPI_Comm_dup(serviceComm, &newServiceComm) ; 407 407 CXios::getMpiGarbageCollector().registerCommunicator(newServiceComm) ; 408 408 int nbPartitions = service.second->getNbPartitions() ; -
XIOS3/trunk/src/manager/server_context.cpp
r2588 r2589 23 23 int localRank, globalRank, commSize ; 24 24 25 MPI_Comm_dup(contextComm, &contextComm_) ;25 xios::MPI_Comm_dup(contextComm, &contextComm_) ; 26 26 CXios::getMpiGarbageCollector().registerCommunicator(contextComm_) ; 27 27 xiosComm_=CXios::getXiosComm() ; … … 104 104 { 105 105 MPI_Comm newInterCommClient, newInterCommServer ; 106 MPI_Comm_dup(contextComm_,&newInterCommClient) ;107 MPI_Comm_dup(contextComm_,&newInterCommServer) ;106 xios::MPI_Comm_dup(contextComm_,&newInterCommClient) ; 107 xios::MPI_Comm_dup(contextComm_,&newInterCommServer) ; 108 108 overlapedComm_[name_]=tuple<bool, MPI_Comm, MPI_Comm>(false, newInterCommClient, newInterCommServer) ; 109 109 MPI_Barrier(contextComm_) ; … … 129 129 if (nOverlap==0) 130 130 { 131 MPI_Intercomm_create(intraComm, 0, xiosComm_, contextLeader, 3141, &interCommClient) ;131 xios::MPI_Intercomm_create(intraComm, 0, xiosComm_, contextLeader, 3141, &interCommClient) ; 132 132 CXios::getMpiGarbageCollector().registerCommunicator(interCommClient) ; 133 MPI_Comm_dup(interCommClient, &interCommServer) ;133 xios::MPI_Comm_dup(interCommClient, &interCommServer) ; 134 134 CXios::getMpiGarbageCollector().registerCommunicator(interCommServer) ; 135 MPI_Comm_free(&newInterCommClient) ;136 MPI_Comm_free(&newInterCommServer) ;135 xios::MPI_Comm_free(&newInterCommClient) ; 136 xios::MPI_Comm_free(&newInterCommServer) ; 137 137 } 138 138 else … … 320 320 { 321 321 info(10)<<"CServerContext::createIntercomm : No overlap ==> context in server mode"<<endl ; 322 MPI_Intercomm_create(contextComm_, 0, xiosComm_, remoteLeader, 3141, &interCommServer) ;322 xios::MPI_Intercomm_create(contextComm_, 0, xiosComm_, remoteLeader, 3141, &interCommServer) ; 323 323 CXios::getMpiGarbageCollector().registerCommunicator(interCommServer) ; 324 MPI_Comm_dup(interCommServer,&interCommClient) ;324 xios::MPI_Comm_dup(interCommServer,&interCommClient) ; 325 325 CXios::getMpiGarbageCollector().registerCommunicator(interCommClient) ; 326 326 context_ -> createClientInterComm(interCommClient,interCommServer) ; … … 339 339 //delete winNotify_ ; 340 340 //winNotify_=nullptr ; 341 // MPI_Comm_free(&contextComm_) ;341 //xios::MPI_Comm_free(&contextComm_) ; 342 342 // don't forget intercomm -> later 343 343 } -
XIOS3/trunk/src/manager/servers_ressource.cpp
r2580 r2589 22 22 { 23 23 24 MPI_Comm_dup(serverComm, &serverComm_) ;24 xios::MPI_Comm_dup(serverComm, &serverComm_) ; 25 25 CXios::getMpiGarbageCollector().registerCommunicator(serverComm_) ; 26 26 MPI_Comm xiosComm=CXios::getXiosComm() ; … … 42 42 } 43 43 44 MPI_Comm_dup(serverComm_, &freeRessourcesComm_) ;44 xios::MPI_Comm_dup(serverComm_, &freeRessourcesComm_) ; 45 45 CXios::getMpiGarbageCollector().registerCommunicator(freeRessourcesComm_) ; 46 46 eventScheduler_ = make_shared<CEventScheduler>(freeRessourcesComm_) ; … … 225 225 MPI_Comm poolComm ; 226 226 MPI_Comm_rank(freeRessourcesComm_,&commRank) ; 227 MPI_Comm_split(freeRessourcesComm_, isPartOf, commRank, &poolComm) ;227 xios::MPI_Comm_split(freeRessourcesComm_, isPartOf, commRank, &poolComm) ; 228 228 229 229 shared_ptr<CEventScheduler> parentScheduler, childScheduler ; … … 236 236 { 237 237 poolRessource_ = new CPoolRessource(poolComm, childScheduler, poolId, true) ; 238 MPI_Comm_free(&poolComm) ;238 xios::MPI_Comm_free(&poolComm) ; 239 239 } 240 240 else 241 241 { 242 242 freeRessourceEventScheduler_ = childScheduler ; 243 MPI_Comm_free(&freeRessourcesComm_) ;243 xios::MPI_Comm_free(&freeRessourcesComm_) ; 244 244 freeRessourcesComm_=poolComm ; 245 245 } -
XIOS3/trunk/src/manager/services.cpp
r2580 r2589 21 21 int localRank, globalRank, commSize ; 22 22 23 MPI_Comm_dup(serviceComm, &serviceComm_) ;23 xios::MPI_Comm_dup(serviceComm, &serviceComm_) ; 24 24 CXios::getMpiGarbageCollector().registerCommunicator(serviceComm_) ; 25 25 MPI_Comm globalComm_=CXios::getXiosComm() ; -
XIOS3/trunk/src/mpi_garbage_collector.hpp
r2580 r2589 28 28 { 29 29 for( auto& it : stack_) 30 if (it.type==SType::COMM) MPI_Comm_free(&it.comm);30 if (it.type==SType::COMM) xios::MPI_Comm_free(&it.comm); 31 31 else if (it.type==SType::WIN) MPI_Win_free(&it.win); 32 32 stack_.clear(); -
XIOS3/trunk/src/node/context.cpp
r2588 r2589 541 541 { 542 542 MPI_Comm intraCommClient ; 543 MPI_Comm_dup(intraComm_, &intraCommClient);543 xios::MPI_Comm_dup(intraComm_, &intraCommClient); 544 544 comms.push_back(intraCommClient); 545 545 … … 598 598 599 599 intraCommClient=intraComm_ ; 600 MPI_Comm_dup(intraComm_, &intraCommServer) ;600 xios::MPI_Comm_dup(intraComm_, &intraCommServer) ; 601 601 CXios::getMpiGarbageCollector().registerCommunicator(intraCommServer) ; 602 602 … … 806 806 MPI_Comm intraCommClient, intraCommServer ; 807 807 808 MPI_Intercomm_create(getIntraComm(), 0, CXios::getXiosComm(), contextLeader, 0, &interComm) ;809 810 MPI_Comm_dup(intraComm_, &intraCommClient) ;811 MPI_Comm_dup(intraComm_, &intraCommServer) ;812 MPI_Comm_dup(interComm, &interCommClient) ;813 MPI_Comm_dup(interComm, &interCommServer) ;808 xios::MPI_Intercomm_create(getIntraComm(), 0, CXios::getXiosComm(), contextLeader, 0, &interComm) ; 809 810 xios::MPI_Comm_dup(intraComm_, &intraCommClient) ; 811 xios::MPI_Comm_dup(intraComm_, &intraCommServer) ; 812 xios::MPI_Comm_dup(interComm, &interCommClient) ; 813 xios::MPI_Comm_dup(interComm, &interCommServer) ; 814 814 CContextClient* client = CContextClient::getNew(this, intraCommClient, interCommClient); 815 815 CContextServer* server = CContextServer::getNew(this, intraCommServer, interCommServer); 816 816 client->setAssociatedServer(server) ; 817 817 server->setAssociatedClient(client) ; 818 MPI_Comm_free(&interComm) ;818 xios::MPI_Comm_free(&interComm) ; 819 819 couplerOutClient_[fullContextId] = client ; 820 820 couplerOutServer_[fullContextId] = server ; … … 829 829 MPI_Comm intraCommClient, intraCommServer ; 830 830 831 MPI_Intercomm_create(getIntraComm(), 0, CXios::getXiosComm(), contextLeader, 0, &interComm) ;832 833 MPI_Comm_dup(intraComm_, &intraCommClient) ;834 MPI_Comm_dup(intraComm_, &intraCommServer) ;835 MPI_Comm_dup(interComm, &interCommServer) ;836 MPI_Comm_dup(interComm, &interCommClient) ;831 xios::MPI_Intercomm_create(getIntraComm(), 0, CXios::getXiosComm(), contextLeader, 0, &interComm) ; 832 833 xios::MPI_Comm_dup(intraComm_, &intraCommClient) ; 834 xios::MPI_Comm_dup(intraComm_, &intraCommServer) ; 835 xios::MPI_Comm_dup(interComm, &interCommServer) ; 836 xios::MPI_Comm_dup(interComm, &interCommClient) ; 837 837 CContextServer* server = CContextServer::getNew(this, intraCommServer, interCommServer); 838 838 CContextClient* client = CContextClient::getNew(this, intraCommClient, interCommClient); 839 839 client->setAssociatedServer(server) ; 840 840 server->setAssociatedClient(client) ; 841 MPI_Comm_free(&interComm) ;841 xios::MPI_Comm_free(&interComm) ; 842 842 843 843 couplerInClient_[fullContextId] = client ; … … 1001 1001 { 1002 1002 for (std::list<MPI_Comm>::iterator it = comms.begin(); it != comms.end(); ++it) 1003 MPI_Comm_free(&(*it));1003 xios::MPI_Comm_free(&(*it)); 1004 1004 comms.clear(); 1005 1005 } -
XIOS3/trunk/src/node/file.cpp
r2507 r2589 272 272 { 273 273 // NetCDF runs now write of null data 274 MPI_Comm_dup(context->intraComm_, &fileComm) ;274 xios::MPI_Comm_dup(context->intraComm_, &fileComm) ; 275 275 } 276 276 … … 287 287 //createSubComFile(); 288 288 allZoneEmpty = false; 289 MPI_Comm_dup(context->intraComm_, &fileComm) ;289 xios::MPI_Comm_dup(context->intraComm_, &fileComm) ; 290 290 checkRead = true; 291 291 } … … 312 312 313 313 int color = allZoneEmpty ? 0 : 1; 314 MPI_Comm_split(context->intraComm_, color, context->intraCommRank_, &fileComm);315 if (allZoneEmpty) MPI_Comm_free(&fileComm);314 xios::MPI_Comm_split(context->intraComm_, color, context->intraCommRank_, &fileComm); 315 if (allZoneEmpty) xios::MPI_Comm_free(&fileComm); 316 316 } 317 317 CATCH_DUMP_ATTR … … 725 725 isOpen = false; 726 726 } 727 if (fileComm != MPI_COMM_NULL) MPI_Comm_free(&fileComm);727 if (fileComm != MPI_COMM_NULL) xios::MPI_Comm_free(&fileComm); 728 728 } 729 729 CATCH_DUMP_ATTR -
XIOS3/trunk/src/policy.cpp
r1639 r2589 44 44 // int color = clientRank % 2; 45 45 // commLevel_.push_back(MPI_Comm()); 46 // MPI_Comm_split(mpiCommLevel, color, 0, &(commLevel_.back()));46 // xios::MPI_Comm_split(mpiCommLevel, color, 0, &(commLevel_.back())); 47 47 // divideMPICommLevel(commLevel_.back(), level); 48 48 // } … … 160 160 // int color = clientRank % 2; 161 161 // commLevel_.push_back(MPI_Comm()); 162 // MPI_Comm_split(mpiCommLevel, color, 0, &(commLevel_.back()));162 // xios::MPI_Comm_split(mpiCommLevel, color, 0, &(commLevel_.back())); 163 163 // divideMPICommLevel(commLevel_.back(), level); 164 164 // } -
XIOS3/trunk/src/registry.cpp
r2586 r2589 265 265 if (rank==0) color=1 ; 266 266 MPI_Comm newComm ; 267 MPI_Comm_split(communicator,color,rank,&newComm) ;267 xios::MPI_Comm_split(communicator,color,rank,&newComm) ; 268 268 if (color==1) hierarchicalGatherRegistry(newComm) ; 269 MPI_Comm_free(&newComm) ;269 xios::MPI_Comm_free(&newComm) ; 270 270 } 271 271 … … 282 282 else color=1 ; 283 283 MPI_Comm commUp ; 284 MPI_Comm_split(comm,color,mpiRank,&commUp) ,284 xios::MPI_Comm_split(comm,color,mpiRank,&commUp) , 285 285 hierarchicalGatherRegistry(commUp) ; 286 MPI_Comm_free(&commUp) ;286 xios::MPI_Comm_free(&commUp) ; 287 287 } 288 288 … … 294 294 if (mpiRank==0 || mpiRank==mpiSize/2+mpiSize%2) color=0 ; 295 295 else color=1 ; 296 MPI_Comm_split(comm,color,mpiRank,&commDown) ;296 xios::MPI_Comm_split(comm,color,mpiRank,&commDown) ; 297 297 if (color==0) gatherRegistry(commDown) ; 298 MPI_Comm_free(&commDown) ;298 xios::MPI_Comm_free(&commDown) ; 299 299 } 300 300 } -
XIOS3/trunk/src/server.cpp
r2580 r2589 101 101 delete[] hashAll ; 102 102 103 MPI_Comm_split(globalComm, color, commRank, &serverComm) ;103 xios::MPI_Comm_split(globalComm, color, commRank, &serverComm) ; 104 104 CXios::getMpiGarbageCollector().registerCommunicator(serverComm) ; 105 105 … … 119 119 driver_->getComponentCommunicator( serverComm ); 120 120 } 121 MPI_Comm_dup(serverComm, &intraComm_);121 xios::MPI_Comm_dup(serverComm, &intraComm_); 122 122 CXios::getMpiGarbageCollector().registerCommunicator(intraComm_) ; 123 123 … … 142 142 MPI_Comm splitComm,interComm ; 143 143 MPI_Comm_rank(globalComm,&commGlobalRank) ; 144 MPI_Comm_split(globalComm, 1, commGlobalRank, &splitComm) ;144 xios::MPI_Comm_split(globalComm, 1, commGlobalRank, &splitComm) ; 145 145 MPI_Comm_rank(splitComm,&commRank) ; 146 146 if (commRank==0) serverLeader=commGlobalRank ; … … 149 149 MPI_Allreduce(&clientLeader,&clientRemoteLeader,1,MPI_INT,MPI_SUM,globalComm) ; 150 150 MPI_Allreduce(&serverLeader,&serverRemoteLeader,1,MPI_INT,MPI_SUM,globalComm) ; 151 MPI_Intercomm_create(splitComm, 0, globalComm, clientRemoteLeader,1341,&interComm) ;152 MPI_Intercomm_merge(interComm,false,&xiosGlobalComm) ;151 xios::MPI_Intercomm_create(splitComm, 0, globalComm, clientRemoteLeader,1341,&interComm) ; 152 xios::MPI_Intercomm_merge(interComm,false,&xiosGlobalComm) ; 153 153 CXios::setXiosComm(xiosGlobalComm) ; 154 154 } … … 167 167 int commRank ; 168 168 MPI_Comm_rank(CXios::getXiosComm(), &commRank) ; 169 MPI_Comm_split(CXios::getXiosComm(),true,commRank,&serversComm_) ;169 xios::MPI_Comm_split(CXios::getXiosComm(),true,commRank,&serversComm_) ; 170 170 CXios::getMpiGarbageCollector().registerCommunicator(serversComm_) ; 171 171 … … 442 442 443 443 MPI_Comm intraComm ; 444 MPI_Comm_dup(serverComm,&intraComm) ;444 xios::MPI_Comm_dup(serverComm,&intraComm) ; 445 445 MPI_Comm interComm ; 446 446 for(int i=0 ; i<clientsRank.size(); i++) 447 447 { 448 MPI_Intercomm_create(intraComm, 0, globalComm, clientsRank[i], 3141, &interComm);448 xios::MPI_Intercomm_create(intraComm, 0, globalComm, clientsRank[i], 3141, &interComm); 449 449 CXios::getMpiGarbageCollector().registerCommunicator(interComm) ; 450 450 interCommLeft.push_back(interComm) ; 451 MPI_Comm_free(&intraComm) ;452 MPI_Intercomm_merge(interComm,false, &intraComm ) ;451 xios::MPI_Comm_free(&intraComm) ; 452 xios::MPI_Intercomm_merge(interComm,false, &intraComm ) ; 453 453 } 454 454 xiosGlobalComm=intraComm ; … … 485 485 { 486 486 MPI_Comm_accept(portName, MPI_INFO_NULL, 0, intraComm, &interComm); 487 MPI_Intercomm_merge(interComm,false, &intraComm ) ;487 xios::MPI_Intercomm_merge(interComm,false, &intraComm ) ; 488 488 } 489 489 */ … … 590 590 591 591 for (std::list<MPI_Comm>::iterator it = contextInterComms.begin(); it != contextInterComms.end(); it++) 592 MPI_Comm_free(&(*it));592 xios::MPI_Comm_free(&(*it)); 593 593 594 594 for (std::list<MPI_Comm>::iterator it = contextIntraComms.begin(); it != contextIntraComms.end(); it++) 595 MPI_Comm_free(&(*it));595 xios::MPI_Comm_free(&(*it)); 596 596 597 597 for (std::list<MPI_Comm>::iterator it = interCommRight.begin(); it != interCommRight.end(); it++) 598 MPI_Comm_free(&(*it));599 600 // MPI_Comm_free(&intraComm);598 xios::MPI_Comm_free(&(*it)); 599 600 // xios::MPI_Comm_free(&intraComm); 601 601 CXios::finalizeDaemonsManager(); 602 602 finalizeServersRessource(); … … 606 606 CXios::getMpiGarbageCollector().release() ; // release unfree MPI ressources 607 607 MPI_Comm xiosComm=CXios::getXiosComm() ; 608 MPI_Comm_free(&xiosComm) ;608 xios::MPI_Comm_free(&xiosComm) ; 609 609 CMemChecker::logMem( "CServer::finalize", true ); 610 610 -
XIOS3/trunk/src/transformation/domain_algorithm/domain_algorithm_interpolate.cpp
r2313 r2589 447 447 448 448 MPI_Comm poleComme(MPI_COMM_NULL); 449 MPI_Comm_split(context->intraComm_, interMapValuePole.empty() ? MPI_UNDEFINED : 1, 0, &poleComme);449 xios::MPI_Comm_split(context->intraComm_, interMapValuePole.empty() ? MPI_UNDEFINED : 1, 0, &poleComme); 450 450 if (MPI_COMM_NULL != poleComme) 451 451 { -
XIOS3/trunk/src/transport/legacy_context_client.cpp
r2547 r2589 31 31 { 32 32 pureOneSided=CXios::getin<bool>("pure_one_sided",false); // pure one sided communication (for test) 33 MPI_Intercomm_merge(interComm_,false, &interCommMerged_) ;34 MPI_Comm_split(intraComm_,clientRank,clientRank, &commSelf_) ; // for windows33 xios::MPI_Intercomm_merge(interComm_,false, &interCommMerged_) ; 34 xios::MPI_Comm_split(intraComm_,clientRank,clientRank, &commSelf_) ; // for windows 35 35 eventScheduler_ = parent->getEventScheduler() ; 36 36 timeLine = 1; … … 219 219 MPI_Comm interComm ; 220 220 int tag = 0 ; 221 MPI_Intercomm_create(commSelf_, 0, interCommMerged_, clientSize+rank, tag, &interComm) ;222 MPI_Intercomm_merge(interComm, false, &winComm_[rank]) ;223 MPI_Comm_free(&interComm) ;221 xios::MPI_Intercomm_create(commSelf_, 0, interCommMerged_, clientSize+rank, tag, &interComm) ; 222 xios::MPI_Intercomm_merge(interComm, false, &winComm_[rank]) ; 223 xios::MPI_Comm_free(&interComm) ; 224 224 225 225 buffer->attachWindows(winComm_[rank]) ; … … 242 242 MPI_Comm interComm ; 243 243 int tag = 0 ; 244 MPI_Intercomm_create(commSelf_, 0, interCommMerged_, clientSize+rank, tag, &interComm) ;245 MPI_Intercomm_merge(interComm, false, &winComm_[rank]) ;246 MPI_Comm_free(&interComm) ;244 xios::MPI_Intercomm_create(commSelf_, 0, interCommMerged_, clientSize+rank, tag, &interComm) ; 245 xios::MPI_Intercomm_merge(interComm, false, &winComm_[rank]) ; 246 xios::MPI_Comm_free(&interComm) ; 247 247 248 248 buffer->attachWindows(winComm_[rank]) ; -
XIOS3/trunk/src/transport/legacy_context_server.cpp
r2558 r2589 36 36 { 37 37 38 MPI_Comm_dup(intraComm, &processEventBarrier_) ;38 xios::MPI_Comm_dup(intraComm, &processEventBarrier_) ; 39 39 40 40 … … 43 43 finished=false; 44 44 45 MPI_Intercomm_merge(interComm_,true,&interCommMerged_) ;46 MPI_Comm_split(intraComm_, intraCommRank, intraCommRank, &commSelf_) ; // for windows45 xios::MPI_Intercomm_merge(interComm_,true,&interCommMerged_) ; 46 xios::MPI_Comm_split(intraComm_, intraCommRank, intraCommRank, &commSelf_) ; // for windows 47 47 48 48 itLastTimeLine=lastTimeLine.begin() ; … … 122 122 MPI_Comm interComm ; 123 123 int tag = 0 ; 124 MPI_Intercomm_create(commSelf_, 0, interCommMerged_, rank, tag , &interComm) ;125 MPI_Intercomm_merge(interComm, true, &winComm_[rank]) ;126 MPI_Comm_free(&interComm) ;124 xios::MPI_Intercomm_create(commSelf_, 0, interCommMerged_, rank, tag , &interComm) ; 125 xios::MPI_Intercomm_merge(interComm, true, &winComm_[rank]) ; 126 xios::MPI_Comm_free(&interComm) ; 127 127 windows_[rank].resize(2) ; 128 128 //MPI_Win_create_dynamic(MPI_INFO_NULL, winComm_[rank], &windows_[rank][0]); -
XIOS3/trunk/src/transport/one_sided_client_buffer.cpp
r2587 r2589 22 22 CTimer::get("create Windows").resume() ; 23 23 MPI_Comm interComm ; 24 MPI_Intercomm_create(commSelf, 0, interCommMerged, intraServerRank, 0, &interComm) ;25 MPI_Intercomm_merge(interComm, false, &winComm_) ;24 xios::MPI_Intercomm_create(commSelf, 0, interCommMerged, intraServerRank, 0, &interComm) ; 25 xios::MPI_Intercomm_merge(interComm, false, &winComm_) ; 26 26 int rank ; 27 27 MPI_Comm_rank(winComm_,&rank) ; 28 28 info(logProtocol)<<"Windows rank="<<rank<<endl ; 29 29 CXios::getMpiGarbageCollector().registerCommunicator(winComm_) ; 30 MPI_Comm_free(&interComm) ;30 xios::MPI_Comm_free(&interComm) ; 31 31 32 32 maxWindows_=MAX_WINDOWS ; -
XIOS3/trunk/src/transport/one_sided_context_client.cpp
r2585 r2589 31 31 pureOneSided=CXios::getin<bool>("pure_one_sided",false); // pure one sided communication (for test) 32 32 33 MPI_Intercomm_merge(interComm_,false, &interCommMerged_) ;34 35 MPI_Comm_split(intraComm_,clientRank,clientRank, &commSelf_) ; // for windows33 xios::MPI_Intercomm_merge(interComm_,false, &interCommMerged_) ; 34 35 xios::MPI_Comm_split(intraComm_,clientRank,clientRank, &commSelf_) ; // for windows 36 36 eventScheduler_ = parent->getEventScheduler() ; 37 37 timeLine = 1; -
XIOS3/trunk/src/transport/one_sided_context_server.cpp
r2566 r2589 36 36 { 37 37 38 MPI_Comm_dup(intraComm, &processEventBarrier_) ;38 xios::MPI_Comm_dup(intraComm, &processEventBarrier_) ; 39 39 40 40 currentTimeLine=1; … … 42 42 finished=false; 43 43 44 MPI_Intercomm_merge(interComm_,true,&interCommMerged_) ;45 MPI_Comm_split(intraComm_, intraCommRank, intraCommRank, &commSelf_) ; // for windows44 xios::MPI_Intercomm_merge(interComm_,true,&interCommMerged_) ; 45 xios::MPI_Comm_split(intraComm_, intraCommRank, intraCommRank, &commSelf_) ; // for windows 46 46 47 47 itLastTimeLine=lastTimeLine.begin() ; … … 237 237 // MPI_Win_free(&windows_[rank][0]); 238 238 // MPI_Win_free(&windows_[rank][1]); 239 // MPI_Comm_free(&winComm_[rank]) ;239 // xios::MPI_Comm_free(&winComm_[rank]) ; 240 240 // } 241 241 } -
XIOS3/trunk/src/transport/one_sided_server_buffer.cpp
r2565 r2589 25 25 CTimer::get("create Windows").resume() ; 26 26 MPI_Comm interComm ; 27 MPI_Intercomm_create(commSelf, 0, interCommMerged, clientRank_, 0 , &interComm) ;28 MPI_Intercomm_merge(interComm, true, &winComm_) ;27 xios::MPI_Intercomm_create(commSelf, 0, interCommMerged, clientRank_, 0 , &interComm) ; 28 xios::MPI_Intercomm_merge(interComm, true, &winComm_) ; 29 29 CXios::getMpiGarbageCollector().registerCommunicator(winComm_) ; 30 MPI_Comm_free(&interComm) ;30 xios::MPI_Comm_free(&interComm) ; 31 31 32 32 maxWindows_=MAX_WINDOWS ; -
XIOS3/trunk/src/transport/p2p_client_buffer.cpp
r2587 r2589 24 24 CTimer::get("create Windows").resume() ; 25 25 //MPI_Comm interComm ; 26 // MPI_Intercomm_create(commSelf, 0, interCommMerged, intraServerRank, 0, &interComm) ;27 // MPI_Intercomm_merge(interComm, false, &winComm_) ;26 //xios::MPI_Intercomm_create(commSelf, 0, interCommMerged, intraServerRank, 0, &interComm) ; 27 //xios::MPI_Intercomm_merge(interComm, false, &winComm_) ; 28 28 //int rank ; 29 29 //MPI_Comm_rank(winComm_,&rank) ; 30 30 //info(logProtocol)<<"Windows rank="<<rank<<endl ; 31 31 //CXios::getMpiGarbageCollector().registerCommunicator(winComm_) ; 32 // MPI_Comm_free(&interComm) ;32 //xios::MPI_Comm_free(&interComm) ; 33 33 34 34 maxWindows_=MAX_WINDOWS ; -
XIOS3/trunk/src/transport/p2p_context_client.cpp
r2585 r2589 31 31 pureOneSided=CXios::getin<bool>("pure_one_sided",false); // pure one sided communication (for test) 32 32 33 MPI_Intercomm_merge(interComm_,false, &interCommMerged_) ;33 xios::MPI_Intercomm_merge(interComm_,false, &interCommMerged_) ; 34 34 CXios::getMpiGarbageCollector().registerCommunicator(interCommMerged_) ; 35 35 36 MPI_Comm_split(intraComm_,clientRank,clientRank, &commSelf_) ; // for windows36 xios::MPI_Comm_split(intraComm_,clientRank,clientRank, &commSelf_) ; // for windows 37 37 CXios::getMpiGarbageCollector().registerCommunicator(commSelf_) ; 38 38 eventScheduler_ = parent->getEventScheduler() ; -
XIOS3/trunk/src/transport/p2p_context_server.cpp
r2580 r2589 36 36 { 37 37 38 MPI_Comm_dup(intraComm, &processEventBarrier_) ;38 xios::MPI_Comm_dup(intraComm, &processEventBarrier_) ; 39 39 CXios::getMpiGarbageCollector().registerCommunicator(processEventBarrier_) ; 40 40 … … 43 43 finished=false; 44 44 45 MPI_Intercomm_merge(interComm_,true,&interCommMerged_) ;45 xios::MPI_Intercomm_merge(interComm_,true,&interCommMerged_) ; 46 46 CXios::getMpiGarbageCollector().registerCommunicator(interCommMerged_) ; 47 MPI_Comm_split(intraComm_, intraCommRank, intraCommRank, &commSelf_) ; // for windows47 xios::MPI_Comm_split(intraComm_, intraCommRank, intraCommRank, &commSelf_) ; // for windows 48 48 CXios::getMpiGarbageCollector().registerCommunicator(commSelf_) ; 49 49 … … 244 244 // MPI_Win_free(&windows_[rank][0]); 245 245 // MPI_Win_free(&windows_[rank][1]); 246 // MPI_Comm_free(&winComm_[rank]) ;246 // xios::MPI_Comm_free(&winComm_[rank]) ; 247 247 // } 248 248 } -
XIOS3/trunk/src/transport/p2p_server_buffer.cpp
r2564 r2589 25 25 CTimer::get("create Windows").resume() ; 26 26 //MPI_Comm interComm ; 27 // MPI_Intercomm_create(commSelf, 0, interCommMerged, clientRank_, 0 , &interComm) ;28 // MPI_Intercomm_merge(interComm, true, &winComm_) ;27 //xios::MPI_Intercomm_create(commSelf, 0, interCommMerged, clientRank_, 0 , &interComm) ; 28 //xios::MPI_Intercomm_merge(interComm, true, &winComm_) ; 29 29 //CXios::getMpiGarbageCollector().registerCommunicator(winComm_) ; 30 // MPI_Comm_free(&interComm) ;30 //xios::MPI_Comm_free(&interComm) ; 31 31 32 32 //maxWindows_=MAX_WINDOWS ;
Note: See TracChangeset
for help on using the changeset viewer.