Changeset 1009 for XIOS/dev/dev_olga/src/node/domain.cpp
- Timestamp:
- 12/05/16 17:47:54 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/src/node/domain.cpp
r987 r1009 1024 1024 } 1025 1025 } 1026 1027 1028 1029 1030 1031 1032 1026 1033 1027 void CDomain::checkEligibilityForCompressedOutput(void) … … 1396 1390 CContext* context = CContext::getCurrent(); 1397 1391 // Use correct context client to send message 1398 CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer 1399 : context->client; 1400 1401 // CContextClient* client = context->client; 1402 int nbServer = contextClientTmp->serverSize; 1403 1404 CServerDistributionDescription serverDescription(nGlobDomain_, nbServer); 1405 if (isUnstructed_) serverDescription.computeServerDistribution(false, 0); 1406 else serverDescription.computeServerDistribution(false, 1); 1407 1408 std::vector<std::vector<int> > serverIndexBegin = serverDescription.getServerIndexBegin(); 1409 std::vector<std::vector<int> > serverDimensionSizes = serverDescription.getServerDimensionSizes(); 1410 1411 CEventClient event(getType(),EVENT_ID_SERVER_ATTRIBUT); 1412 if (contextClientTmp->isServerLeader()) 1413 { 1414 std::list<CMessage> msgs; 1415 1416 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 1417 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 1418 { 1419 // Use const int to ensure CMessage holds a copy of the value instead of just a reference 1420 const int ibegin_srv = serverIndexBegin[*itRank][0]; 1421 const int jbegin_srv = serverIndexBegin[*itRank][1]; 1422 const int ni_srv = serverDimensionSizes[*itRank][0]; 1423 const int nj_srv = serverDimensionSizes[*itRank][1]; 1424 const int iend_srv = ibegin_srv + ni_srv - 1; 1425 const int jend_srv = jbegin_srv + nj_srv - 1; 1426 1427 msgs.push_back(CMessage()); 1428 CMessage& msg = msgs.back(); 1429 msg << this->getId() ; 1430 msg << ni_srv << ibegin_srv << iend_srv << nj_srv << jbegin_srv << jend_srv; 1431 msg << global_zoom_ni.getValue() << global_zoom_ibegin.getValue() << global_zoom_nj.getValue() << global_zoom_jbegin.getValue(); 1432 msg << isCompressible_; 1433 1434 event.push(*itRank,1,msg); 1435 } 1436 contextClientTmp->sendEvent(event); 1437 } 1438 else contextClientTmp->sendEvent(event); 1392 int nbSrvPools = (context->hasServer) ? context->clientPrimServer.size() : 1; 1393 for (int i = 0; i < nbSrvPools; ++i) 1394 { 1395 CContextClient* contextClientTmp = (context->hasServer) ? context->clientPrimServer[i] 1396 : context->client; 1397 // CContextClient* client = context->client; 1398 int nbServer = contextClientTmp->serverSize; 1399 1400 CServerDistributionDescription serverDescription(nGlobDomain_, nbServer); 1401 if (isUnstructed_) serverDescription.computeServerDistribution(false, 0); 1402 else serverDescription.computeServerDistribution(false, 1); 1403 1404 std::vector<std::vector<int> > serverIndexBegin = serverDescription.getServerIndexBegin(); 1405 std::vector<std::vector<int> > serverDimensionSizes = serverDescription.getServerDimensionSizes(); 1406 1407 CEventClient event(getType(),EVENT_ID_SERVER_ATTRIBUT); 1408 if (contextClientTmp->isServerLeader()) 1409 { 1410 std::list<CMessage> msgs; 1411 1412 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 1413 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 1414 { 1415 // Use const int to ensure CMessage holds a copy of the value instead of just a reference 1416 const int ibegin_srv = serverIndexBegin[*itRank][0]; 1417 const int jbegin_srv = serverIndexBegin[*itRank][1]; 1418 const int ni_srv = serverDimensionSizes[*itRank][0]; 1419 const int nj_srv = serverDimensionSizes[*itRank][1]; 1420 const int iend_srv = ibegin_srv + ni_srv - 1; 1421 const int jend_srv = jbegin_srv + nj_srv - 1; 1422 1423 msgs.push_back(CMessage()); 1424 CMessage& msg = msgs.back(); 1425 msg << this->getId() ; 1426 msg << ni_srv << ibegin_srv << iend_srv << nj_srv << jbegin_srv << jend_srv; 1427 msg << global_zoom_ni.getValue() << global_zoom_ibegin.getValue() << global_zoom_nj.getValue() << global_zoom_jbegin.getValue(); 1428 msg << isCompressible_; 1429 1430 event.push(*itRank,1,msg); 1431 } 1432 contextClientTmp->sendEvent(event); 1433 } 1434 else contextClientTmp->sendEvent(event); 1435 } 1439 1436 } 1440 1437
Note: See TracChangeset
for help on using the changeset viewer.