Ignore:
Timestamp:
04/20/21 09:49:47 (3 years ago)
Author:
ymipsl
Message:

New management of client-server buffers.

  • buffers can grow automatically in intialization phase
  • buffers is evaluated after the close context definition phase and fixed at optimal value.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/field.cpp

    r2022 r2130  
    497497  CATCH_DUMP_ATTR 
    498498 
     499  bool CField::evaluateBufferSize(map<CContextClient*,map<int,size_t>>& evaluateBuffer, bool isOptPerformance) 
     500  { 
     501    CContextClient* client=nullptr ; 
     502 
     503    for(int i=0;i<2;i++) 
     504    { 
     505      map<int,int> dataSize ; 
     506      if (i==0  && clientToServerStoreFilter_) client = clientToServerStoreFilter_-> getTransferedDataSize(dataSize) ; 
     507      if (i==1  && serverToClientStoreFilter_) client = serverToClientStoreFilter_-> getTransferedDataSize(dataSize) ; 
     508 
     509      if (client!=nullptr) 
     510      { 
     511        map<int,size_t> bufferSize ; 
     512    
     513        if (evaluateBuffer.count(client)!=0) bufferSize = evaluateBuffer[client] ; 
     514        if (isOptPerformance) 
     515        { 
     516          for(auto& it : dataSize)  
     517          { 
     518            if (bufferSize.count(it.first)==0) bufferSize[it.first]=it.second ; 
     519            else bufferSize[it.first]+=it.second ; 
     520          } 
     521        } 
     522        else 
     523        { 
     524          for(auto& it : dataSize)  
     525          { 
     526            if (bufferSize.count(it.first)==0) bufferSize[it.first]=it.second ; 
     527            else bufferSize[it.first]=std::max(bufferSize[it.first],(size_t)it.second) ; 
     528          } 
     529        } 
     530        evaluateBuffer[client] = bufferSize ; 
     531        client=nullptr ; 
     532      } 
     533    } 
     534    if (client==nullptr) return false ; 
     535    else return true; 
     536  }   
    499537 
    500538 
Note: See TracChangeset for help on using the changeset viewer.