Changeset 2523 for XIOS3/trunk/src/server.cpp
- Timestamp:
- 06/23/23 14:46:51 (12 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/trunk/src/server.cpp
r2458 r2523 202 202 ressourcesManager->waitPoolRegistration(CXios::defaultPoolId) ; 203 203 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultWriterId, CServicesManager::WRITER,nbRessources,1) ; 204 servicesManager->waitServiceRegistration(CXios::defaultPoolId, CXios::defaultWriterId) ; 204 205 servicesManager->createServicesOnto(CXios::defaultPoolId, CXios::defaultReaderId, CServicesManager::READER, CXios::defaultWriterId) ; 206 servicesManager->waitServiceRegistration(CXios::defaultPoolId, CXios::defaultReaderId) ; 205 207 } 206 208 else … … 214 216 ressourcesManager->waitPoolRegistration(CXios::defaultPoolId) ; 215 217 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultGathererId, CServicesManager::GATHERER, nprocsGatherer, 1) ; 218 servicesManager->waitServiceRegistration(CXios::defaultPoolId, CXios::defaultGathererId) ; 216 219 servicesManager->createServicesOnto(CXios::defaultPoolId, CXios::defaultReaderId, CServicesManager::READER, CXios::defaultGathererId) ; 220 servicesManager->waitServiceRegistration(CXios::defaultPoolId, CXios::defaultReaderId) ; 217 221 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultWriterId, CServicesManager::WRITER, nprocsServer, nbPoolsServer2) ; 222 servicesManager->waitServiceRegistration(CXios::defaultPoolId, CXios::defaultWriterId) ; 218 223 } 219 224 } 220 225 // servicesManager->createServices(CXios::defaultPoolId, CXios::defaultServicesId, CServicesManager::ALL_SERVICES, nbRessources, 1) ; 221 226 } 227 228 MPI_Request req ; 229 MPI_Status status ; 230 MPI_Ibarrier(getServersRessource()->getCommunicator(),&req) ; // be sure that all services are created now, could be remove later if more asynchronisity 231 int ok=false ; 232 while (!ok) 233 { 234 daemonsManager->eventLoop() ; 235 MPI_Test(&req,&ok,&status) ; 236 } 237 238 239 testingEventScheduler() ; 222 240 /* 223 241 MPI_Request req ; 224 242 MPI_Status status ; 225 MPI_Ibarrier( xiosGlobalComm,&req) ; // be sure that all services are created now, could be remove later if more asynchronisity243 MPI_Ibarrier(CXios::getXiosComm(),&req) ; // be sure that all services are created now, could be remove later if more asynchronisity 226 244 int ok=false ; 227 245 while (!ok) … … 252 270 253 271 254 272 void CServer::testingEventScheduler(void) 273 { 274 CXios::getPoolRessource()->getEventScheduler()->registerEvent(1,10) ; 275 CXios::getPoolRessource()->getEventScheduler()->registerEvent(2,10) ; 276 if (CXios::getPoolRessource()->hasService(CXios::defaultGathererId,0)) 277 { 278 CXios::getPoolRessource()->getService(CXios::defaultGathererId,0)-> getEventScheduler()->registerEvent(1,100) ; 279 CXios::getPoolRessource()->getService(CXios::defaultGathererId,0)-> getEventScheduler()->registerEvent(2,100) ; 280 CXios::getPoolRessource()->getService(CXios::defaultGathererId,0)-> getEventScheduler()->registerEvent(3,100) ; 281 } 282 if (CXios::getPoolRessource()->hasService(CXios::defaultWriterId,0)) 283 { 284 CXios::getPoolRessource()->getService(CXios::defaultWriterId,0)-> getEventScheduler()->registerEvent(1,1000) ; 285 CXios::getPoolRessource()->getService(CXios::defaultWriterId,0)-> getEventScheduler()->registerEvent(2,1000) ; 286 } 287 CXios::getPoolRessource()->getEventScheduler()->registerEvent(3,10) ; 288 CXios::getPoolRessource()->getEventScheduler()->registerEvent(4,10) ; 289 290 if (CXios::getPoolRessource()->hasService(CXios::defaultGathererId,0)) 291 { 292 CXios::getPoolRessource()->getService(CXios::defaultGathererId,0)-> getEventScheduler()->registerEvent(4,100) ; 293 CXios::getPoolRessource()->getService(CXios::defaultGathererId,0)-> getEventScheduler()->registerEvent(5,100) ; 294 } 295 if (CXios::getPoolRessource()->hasService(CXios::defaultWriterId,0)) 296 { 297 CXios::getPoolRessource()->getService(CXios::defaultWriterId,0)-> getEventScheduler()->registerEvent(3,1000) ; 298 CXios::getPoolRessource()->getService(CXios::defaultWriterId,0)-> getEventScheduler()->registerEvent(4,1000) ; 299 CXios::getPoolRessource()->getService(CXios::defaultWriterId,0)-> getEventScheduler()->registerEvent(5,1000) ; 300 } 301 CXios::getPoolRessource()->getEventScheduler()->registerEvent(5,10) ; 302 CXios::getPoolRessource()->getEventScheduler()->registerEvent(6,10) ; 303 304 int numEvents=0 ; 305 int poolEvent=1 ; 306 int gatherEvent=1 ; 307 int writerEvent=1 ; 308 do 309 { 310 if (CXios::getPoolRessource()->getEventScheduler()->queryEvent(poolEvent,10)) 311 { 312 CXios::getPoolRessource()->getEventScheduler()->popEvent() ; 313 MPI_Barrier(CXios::getPoolRessource()->getCommunicator()); 314 poolEvent++ ; 315 numEvents++; 316 } 317 318 if (CXios::getPoolRessource()->getEventScheduler()->queryEvent(gatherEvent,100)) 319 { 320 CXios::getPoolRessource()->getEventScheduler()->popEvent() ; 321 MPI_Barrier(CXios::getPoolRessource()->getService(CXios::defaultGathererId,0)->getCommunicator()); 322 gatherEvent++ ; 323 numEvents++; 324 } 325 326 if (CXios::getPoolRessource()->getEventScheduler()->queryEvent(writerEvent,1000)) 327 { 328 CXios::getPoolRessource()->getEventScheduler()->popEvent() ; 329 MPI_Barrier(CXios::getPoolRessource()->getService(CXios::defaultWriterId,0)->getCommunicator()); 330 writerEvent++ ; 331 numEvents++; 332 } 333 334 335 } while (numEvents!=11) ; 336 337 } 255 338 256 339 … … 410 493 boost::hash<string> hashString; 411 494 size_t hashId = hashString("oasis_enddef"); 412 if (CXios::getPoolRessource()->getService(CXios::defaultServicesId,0)->getEventScheduler()->queryEvent(0,hashId)) 495 496 if (CXios::getPoolRessource()->getEventScheduler()->queryEvent(0,hashId)) 413 497 { 414 CXios::getPoolRessource()->get Service(CXios::defaultServicesId,0)->getEventScheduler()->popEvent() ;498 CXios::getPoolRessource()->getEventScheduler()->popEvent() ; 415 499 driver_->endSynchronizedDefinition() ; 416 500 eventSent=false ; … … 426 510 boost::hash<string> hashString; 427 511 size_t hashId = hashString("oasis_enddef"); 428 CXios::getPoolRessource()->get Service(CXios::defaultServicesId,0)->getEventScheduler()->registerEvent(0,hashId);512 CXios::getPoolRessource()->getEventScheduler()->registerEvent(0,hashId); 429 513 eventSent=true ; 430 514 }
Note: See TracChangeset
for help on using the changeset viewer.