Changeset 1337 for XIOS/dev/XIOS_DEV_CMIP6/src/node/axis.cpp
- Timestamp:
- 11/21/17 10:05:04 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/src/node/axis.cpp
r1336 r1337 180 180 { 181 181 // size estimation for sendDistributedValue 182 boost::unordered_map<int, vector<size_t> >::const_iterator it, ite = indSrv_[client ].end();183 for (it = indSrv_[client ].begin(); it != ite; ++it)182 boost::unordered_map<int, vector<size_t> >::const_iterator it, ite = indSrv_[client->serverSize].end(); 183 for (it = indSrv_[client->serverSize].begin(); it != ite; ++it) 184 184 { 185 185 size_t sizeIndexEvent = CArray<int,1>::size(it->second.size()); … … 607 607 608 608 609 indSrv_[ client].swap(globalIndexAxisOnServer);609 indSrv_[nbServer].swap(globalIndexAxisOnServer); 610 610 611 611 if (distType==CServerDistributionDescription::ROOT_DISTRIBUTION) 612 612 { 613 for(int i=1; i<nbServer; ++i) indSrv_[ client].insert(pair<int, vector<size_t> >(i,indSrv_[client][0]) ) ;613 for(int i=1; i<nbServer; ++i) indSrv_[nbServer].insert(pair<int, vector<size_t> >(i,indSrv_[nbServer][0]) ) ; 614 614 serverZeroIndexLeader.clear() ; 615 615 } 616 616 617 CClientServerMapping::GlobalIndexMap::const_iterator it = indSrv_[ client].begin(),618 ite = indSrv_[ client].end();619 620 for (it = indSrv_[ client].begin(); it != ite; ++it) connectedServerRank_[client].push_back(it->first);617 CClientServerMapping::GlobalIndexMap::const_iterator it = indSrv_[nbServer].begin(), 618 ite = indSrv_[nbServer].end(); 619 620 for (it = indSrv_[nbServer].begin(); it != ite; ++it) connectedServerRank_[nbServer].push_back(it->first); 621 621 622 622 for (std::list<int>::const_iterator it = serverZeroIndexLeader.begin(); it != serverZeroIndexLeader.end(); ++it) 623 connectedServerRank_[ client].push_back(*it);623 connectedServerRank_[nbServer].push_back(*it); 624 624 625 625 // Even if a client has no index, it must connect to at least one server and 626 626 // send an "empty" data to this server 627 if (connectedServerRank_[client].empty()) 628 connectedServerRank_[client].push_back(client->clientRank % client->serverSize); 629 630 nbSenders[client] = CClientServerMapping::computeConnectedClients(client->serverSize, client->clientSize, client->intraComm, connectedServerRank_[client]); 627 if (connectedServerRank_[nbServer].empty()) 628 connectedServerRank_[nbServer].push_back(client->clientRank % client->serverSize); 629 630 // nbSenders[client] = CClientServerMapping::computeConnectedClients(client->serverSize, client->clientSize, client->intraComm, connectedServerRank_[client]); 631 nbSenders[nbServer] = CClientServerMapping::computeConnectedClients(client->serverSize, client->clientSize, client->intraComm, connectedServerRank_[nbServer]); 631 632 632 633 delete clientServerMap; … … 1091 1092 { 1092 1093 CContextClient* client = (0 != context->clientPrimServer.size()) ? context->clientPrimServer[p] : context->client; 1094 int nbServer = client->serverSize; 1093 1095 1094 1096 CEventClient eventData(getType(), EVENT_ID_DISTRIBUTED_ATTRIBUTES); … … 1111 1113 1112 1114 boost::unordered_map<int, std::vector<size_t> >::const_iterator it, iteMap; 1113 iteMap = indSrv_[ client].end();1114 for (int k = 0; k < connectedServerRank_[ client].size(); ++k)1115 iteMap = indSrv_[nbServer].end(); 1116 for (int k = 0; k < connectedServerRank_[nbServer].size(); ++k) 1115 1117 { 1116 1118 int nbData = 0; 1117 int rank = connectedServerRank_[ client][k];1118 it = indSrv_[ client].find(rank);1119 int rank = connectedServerRank_[nbServer][k]; 1120 it = indSrv_[nbServer].find(rank); 1119 1121 if (iteMap != it) 1120 1122 nbData = it->second.size(); … … 1182 1184 listData.back() << list_label.back(); 1183 1185 1184 eventData.push(rank, nbSenders[ client][rank], listData.back());1186 eventData.push(rank, nbSenders[nbServer][rank], listData.back()); 1185 1187 } 1186 1188
Note: See TracChangeset
for help on using the changeset viewer.