Changeset 2458 for XIOS3/trunk/src/server.cpp
- Timestamp:
- 01/25/23 16:59:46 (17 months ago)
- Location:
- XIOS3/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/trunk
-
Property
svn:mergeinfo
set to
False
/XIOS3/dev/XIOS_FILE_SERVICES merged eligible
-
Property
svn:mergeinfo
set to
False
-
XIOS3/trunk/src/server.cpp
r2437 r2458 21 21 #include "servers_ressource.hpp" 22 22 #include "services.hpp" 23 #include "pool_node.hpp" 23 24 #include <cstdio> 24 25 #include "workflow_graph.hpp" … … 188 189 if (serversRessource->isServerLeader()) 189 190 { 190 int nbRessources = ressourcesManager->getRessourcesSize() ; 191 if (!CXios::usingServer2) 191 // creating pool 192 CPoolNodeGroup::get("xios","pool_definition")->solveDescInheritance(true) ; 193 vector<CPoolNode*> pools = CPoolNodeGroup::get("xios","pool_definition")->getAllChildren(); 194 for(auto& pool : pools) pool->allocateRessources() ; 195 196 int nbRessources = ressourcesManager->getFreeRessourcesSize() ; 197 if (nbRessources>0) 192 198 { 193 ressourcesManager->createPool(CXios::defaultPoolId, nbRessources) ; 194 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultWriterId, CServicesManager::WRITER,nbRessources,1) ; 195 servicesManager->createServicesOnto(CXios::defaultPoolId, CXios::defaultReaderId, CServicesManager::READER, CXios::defaultWriterId) ; 196 } 197 else 198 { 199 int nprocsServer = nbRessources*CXios::ratioServer2/100.; 200 int nprocsGatherer = nbRessources - nprocsServer ; 199 if (!CXios::usingServer2) 200 { 201 ressourcesManager->createPool(CXios::defaultPoolId, nbRessources) ; 202 ressourcesManager->waitPoolRegistration(CXios::defaultPoolId) ; 203 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultWriterId, CServicesManager::WRITER,nbRessources,1) ; 204 servicesManager->createServicesOnto(CXios::defaultPoolId, CXios::defaultReaderId, CServicesManager::READER, CXios::defaultWriterId) ; 205 } 206 else 207 { 208 int nprocsServer = nbRessources*CXios::ratioServer2/100.; 209 int nprocsGatherer = nbRessources - nprocsServer ; 201 210 202 int nbPoolsServer2 = CXios::nbPoolsServer2 ;203 if (nbPoolsServer2 == 0) nbPoolsServer2 = nprocsServer;204 ressourcesManager->createPool(CXios::defaultPoolId, nbRessources) ;205 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultGathererId, CServicesManager::GATHERER, nprocsGatherer, 1) ;206 servicesManager->createServicesOnto(CXios::defaultPoolId, CXios::defaultReaderId, CServicesManager::READER, CXios::defaultGathererId) ;207 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultWriterId, CServicesManager::WRITER, nprocsServer, nbPoolsServer2) ;208 209 211 int nbPoolsServer2 = CXios::nbPoolsServer2 ; 212 if (nbPoolsServer2 == 0) nbPoolsServer2 = nprocsServer; 213 ressourcesManager->createPool(CXios::defaultPoolId, nbRessources) ; 214 ressourcesManager->waitPoolRegistration(CXios::defaultPoolId) ; 215 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultGathererId, CServicesManager::GATHERER, nprocsGatherer, 1) ; 216 servicesManager->createServicesOnto(CXios::defaultPoolId, CXios::defaultReaderId, CServicesManager::READER, CXios::defaultGathererId) ; 217 servicesManager->createServices(CXios::defaultPoolId, CXios::defaultWriterId, CServicesManager::WRITER, nprocsServer, nbPoolsServer2) ; 218 } 210 219 } 211 220 // servicesManager->createServices(CXios::defaultPoolId, CXios::defaultServicesId, CServicesManager::ALL_SERVICES, nbRessources, 1) ; 212 221 } 222 /* 223 MPI_Request req ; 224 MPI_Status status ; 225 MPI_Ibarrier(xiosGlobalComm,&req) ; // be sure that all services are created now, could be remove later if more asynchronisity 226 int ok=false ; 227 while (!ok) 228 { 229 daemonsManager->eventLoop() ; 230 MPI_Test(&req,&ok,&status) ; 231 } 232 */ 213 233 CTimer::get("XIOS initialize").suspend() ; 214 234
Note: See TracChangeset
for help on using the changeset viewer.