Changeset 987 for XIOS/dev/dev_olga/src/node/axis.cpp
- Timestamp:
- 11/10/16 13:29:57 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/src/node/axis.cpp
r970 r987 845 845 } 846 846 847 // void CAxis::sendServerAttribut(const std::vector<int>& globalDim, int orderPositionInGrid, 848 // CServerDistributionDescription::ServerDistributionType distType) 849 // { 850 // CContext* context = CContext::getCurrent(); 851 // CContextClient* client = context->client; 852 // int nbServer = client->serverSize; 853 854 // CServerDistributionDescription serverDescription(globalDim, nbServer); 855 // serverDescription.computeServerDistribution(); 856 857 // std::vector<std::vector<int> > serverIndexBegin = serverDescription.getServerIndexBegin(); 858 // std::vector<std::vector<int> > serverDimensionSizes = serverDescription.getServerDimensionSizes(); 859 860 // CEventClient event(getType(),EVENT_ID_SERVER_ATTRIBUT); 861 // if (client->isServerLeader()) 862 // { 863 // std::list<CMessage> msgs; 864 865 // const std::list<int>& ranks = client->getRanksServerLeader(); 866 // for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 867 // { 868 // // Use const int to ensure CMessage holds a copy of the value instead of just a reference 869 // const int begin = serverIndexBegin[*itRank][orderPositionInGrid]; 870 // const int ni = serverDimensionSizes[*itRank][orderPositionInGrid]; 871 // const int end = begin + ni - 1; 872 873 // msgs.push_back(CMessage()); 874 // CMessage& msg = msgs.back(); 875 // msg << this->getId(); 876 // msg << ni << begin << end; 877 // msg << global_zoom_begin.getValue() << global_zoom_n.getValue(); 878 // msg << isCompressible_; 879 880 // event.push(*itRank,1,msg); 881 // } 882 // client->sendEvent(event); 883 // } 884 // else client->sendEvent(event); 885 // } 886 847 887 void CAxis::sendServerAttribut(const std::vector<int>& globalDim, int orderPositionInGrid, 848 888 CServerDistributionDescription::ServerDistributionType distType) 849 889 { 850 890 CContext* context = CContext::getCurrent(); 851 CContextClient* client = context->client; 852 int nbServer = client->serverSize; 891 892 CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer 893 : context->client; 894 895 896 int nbServer = contextClientTmp->serverSize; 853 897 854 898 CServerDistributionDescription serverDescription(globalDim, nbServer); … … 858 902 std::vector<std::vector<int> > serverDimensionSizes = serverDescription.getServerDimensionSizes(); 859 903 904 globalDimGrid.resize(globalDim.size()); 905 for (int idx = 0; idx < globalDim.size(); ++idx) globalDimGrid(idx) = globalDim[idx]; 906 860 907 CEventClient event(getType(),EVENT_ID_SERVER_ATTRIBUT); 861 if (c lient->isServerLeader())908 if (contextClientTmp->isServerLeader()) 862 909 { 863 910 std::list<CMessage> msgs; 864 911 865 const std::list<int>& ranks = c lient->getRanksServerLeader();912 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 866 913 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 867 914 { … … 877 924 msg << global_zoom_begin.getValue() << global_zoom_n.getValue(); 878 925 msg << isCompressible_; 926 msg << orderPositionInGrid; 927 msg << globalDimGrid; 879 928 880 929 event.push(*itRank,1,msg); 881 930 } 882 c lient->sendEvent(event);883 } 884 else c lient->sendEvent(event);931 contextClientTmp->sendEvent(event); 932 } 933 else contextClientTmp->sendEvent(event); 885 934 } 886 935 … … 891 940 *buffer >> axisId; 892 941 get(axisId)->recvServerAttribut(*buffer); 942 943 CContext* context = CContext::getCurrent(); 944 if (context->hasClient && context->hasServer) 945 { 946 std::vector<int> globalDim(get(axisId)->globalDimGrid.numElements()); 947 for (int idx = 0; idx < globalDim.size(); ++idx) globalDim[idx] = get(axisId)->globalDimGrid(idx); 948 get(axisId)->sendServerAttribut(globalDim, get(axisId)->orderPosInGrid, 949 CServerDistributionDescription::BAND_DISTRIBUTION); 950 } 893 951 } 894 952 … … 900 958 buffer >> global_zoom_begin_tmp >> global_zoom_n_tmp; 901 959 buffer >> isCompressible_; 960 buffer >> orderPosInGrid; 961 buffer >> globalDimGrid; 962 902 963 global_zoom_begin = global_zoom_begin_tmp; 903 964 global_zoom_n = global_zoom_n_tmp;
Note: See TracChangeset
for help on using the changeset viewer.