Ignore:
Timestamp:
08/28/17 12:15:49 (7 years ago)
Author:
oabramkina
Message:

Modifications allowing secondary-server pools of different size. It's controlled by a new parameter number_pools_server2.
Tests: complete, toy, ipsl.

This functionality is to be used in future. For now it is disabled and XIOS works as before with one process assigned per pool.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/grid.hpp

    r1236 r1243  
    203203         CArray<int, 1> storeIndex_client; 
    204204 
    205          std::map<CContextClient*, map<int, CArray<int, 1> > > storeIndex_toSrv; // Same grid but can be sent to several pools 
     205/** Map containing indexes that will be sent in sendIndex(). In future: change the key to pair<distrType, serverSize> (?) */ 
     206         std::map<CContextClient*, map<int, CArray<int, 1> > > storeIndex_toSrv; 
     207 
    206208         map<int, CArray<int, 1> > storeIndex_fromSrv; // Support, for now, reading with level-1 server 
     209 
     210 
    207211         std::map<CContextClient*, std::map<int,int> > nbSenders, nbReadSenders; 
    208212 
     
    215219         map<int, CArray<size_t, 1> > outLocalIndexStoreOnClient;  
    216220 
    217          // If a client wants to write out data, it'll use this index. 
    218          // A client receives global index of data from other clients (via recvIndex), 
    219          // then does remapping these index into local index to WRITE into a file 
    220          CArray<size_t,1> localIndexToWriteOnClient, localIndexToWriteOnServer; 
     221/** Indexes calculated based on server distribution (serverDistribution_). They are used for writing data into a file. */ 
     222         CArray<size_t,1> localIndexToWriteOnServer; 
     223 
     224/** Indexes calculated based on client distribution (clientDistribution_). They are not used at all. 
     225    They should be the same as localIndexToWriteOnServer and potentially can be used as an additional check.*/ 
     226         CArray<size_t,1> localIndexToWriteOnClient; 
    221227 
    222228         CArray<size_t,1> indexFromClients; 
     
    286292        bool isAxisListSet, isDomListSet, isScalarListSet; 
    287293 
     294/** Distribution calculated in computeClientIndex() based on the knowledge of the entire grid */ 
    288295        CDistributionClient* clientDistribution_; 
     296 
     297/** Distribution calculated upon receiving indexes */ 
    289298        CDistributionServer* serverDistribution_; 
     299 
    290300        CClientServerMapping* clientServerMap_; 
    291301        size_t writtenDataSize_; 
    292302        int numberWrittenIndexes_, totalNumberWrittenIndexes_, offsetWrittenIndexes_; 
     303 
     304/** Map storing ranks of connected servers. In future: change the key to the server size (?) */ 
     305        std::map<CContextClient*, std::vector<int> > connectedServerRank_; 
     306 
     307/** Map storing data size that will be sent to connected servers. In future: change the key to the server size (?) */ 
    293308        std::map<CContextClient*, std::map<int,size_t> > connectedDataSize_; 
    294         std::map<CContextClient*, std::vector<int> > connectedServerRank_; 
     309 
    295310        bool isDataDistributed_;         
    296311         //! True if and only if the data defined on the grid can be outputted in a compressed way 
     
    305320        std::map<CGrid*, std::pair<bool,StdString> > gridSrc_; 
    306321        bool hasTransform_; 
     322 
     323/** Map storing data size that will be sent to connected servers. In future: change the key to the server size (?) */ 
    307324        std::map<CContextClient*, CClientServerMapping::GlobalIndexMap> globalIndexOnServer_; 
    308             // List order of axis and domain in a grid, if there is a domain, it will take value 1 (true), axis 0 (false) 
     325 
     326/** List order of axis and domain in a grid, if there is a domain, it will take value 1 (true), axis 0 (false) */ 
    309327        std::vector<int> order_; 
     328 
    310329   }; // class CGrid 
    311330 
Note: See TracChangeset for help on using the changeset viewer.