Ignore:
Timestamp:
08/04/17 16:03:34 (7 years ago)
Author:
mhnguyen
Message:

Making some changes to allow pools with different number of server

+) Associate context client to each grid distribution (This should be changed in the future)
+) Correct some buffer size estimation
+) Clean some redundant code and add comments

File:
1 edited

Legend:

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

    r1235 r1236  
    162162         void computeDomConServer(); 
    163163         std::map<int, int> getDomConServerSide(); 
    164          std::map<int, StdSize> getAttributesBufferSize(); 
    165          std::vector<std::map<int, StdSize> > getDataBufferSize(const std::string& id = ""); 
     164         std::map<int, StdSize> getAttributesBufferSize(CContextClient* client); 
     165         std::map<int, StdSize> getDataBufferSize(CContextClient* client, const std::string& id = ""); 
    166166         std::vector<StdString> getDomainList(); 
    167167         std::vector<StdString> getAxisList(); 
     
    175175         std::vector<int> getAxisOrder(); 
    176176         std::vector<int> getGlobalDimension(); 
    177          bool isScalarGrid() const; 
    178          std::vector<int> getAxisPositionInGrid() const; 
     177         bool isScalarGrid() const;          
    179178 
    180179         bool doGridHaveDataToWrite(); 
     
    200199         bool hasTransform(); 
    201200         size_t getGlobalWrittenSize(void) ; 
     201 
    202202      public: 
    203  
    204          /// Propriétés privées /// 
    205          bool isChecked; 
    206          bool isDomainAxisChecked; 
    207          bool isIndexSent; 
    208  
    209203         CArray<int, 1> storeIndex_client; 
    210204 
    211          map<int, CArray<int, 1> > storeIndex_toSrv; 
    212          map<int, CArray<int, 1> > storeIndex_fromSrv; 
    213          std::vector<map<int,int> > nbSenders, nbReadSenders; 
     205         std::map<CContextClient*, map<int, CArray<int, 1> > > storeIndex_toSrv; // Same grid but can be sent to several pools 
     206         map<int, CArray<int, 1> > storeIndex_fromSrv; // Support, for now, reading with level-1 server 
     207         std::map<CContextClient*, std::map<int,int> > nbSenders, nbReadSenders; 
    214208 
    215209         map<int, CArray<size_t, 1> > outIndexFromClient, compressedOutIndexFromClient, outGlobalIndexFromClient; 
     
    282276 
    283277      private: 
     278         bool isChecked; 
     279         bool isDomainAxisChecked; 
     280         bool isIndexSent; 
     281 
    284282        CDomainGroup* vDomainGroup_; 
    285283        CAxisGroup* vAxisGroup_; 
     
    293291        size_t writtenDataSize_; 
    294292        int numberWrittenIndexes_, totalNumberWrittenIndexes_, offsetWrittenIndexes_; 
    295         std::vector<std::map<int,size_t> > connectedDataSize_; 
    296         std::vector<std::vector<int> > connectedServerRank_; 
     293        std::map<CContextClient*, std::map<int,size_t> > connectedDataSize_; 
     294        std::map<CContextClient*, std::vector<int> > connectedServerRank_; 
    297295        bool isDataDistributed_;         
    298296         //! True if and only if the data defined on the grid can be outputted in a compressed way 
     
    307305        std::map<CGrid*, std::pair<bool,StdString> > gridSrc_; 
    308306        bool hasTransform_; 
    309         CClientServerMapping::GlobalIndexMap globalIndexOnServer_; 
     307        std::map<CContextClient*, CClientServerMapping::GlobalIndexMap> globalIndexOnServer_; 
    310308            // List order of axis and domain in a grid, if there is a domain, it will take value 1 (true), axis 0 (false) 
    311309        std::vector<int> order_; 
Note: See TracChangeset for help on using the changeset viewer.