Ignore:
Timestamp:
01/22/21 12:00:29 (3 years ago)
Author:
yushan
Message:

Graph intermedia commit to a tmp branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_trunk_graph/src/context_server.hpp

    r1228 r2019  
    55#include "buffer_server.hpp" 
    66#include "mpi.hpp" 
     7#include "event_scheduler.hpp" 
    78 
    89namespace xios 
    910{ 
    1011  class CContext ; 
     12  class CContextClient; 
    1113 
    1214  class CContextServer 
     
    1921    bool listenPendingRequest(MPI_Status& status) ; 
    2022    void checkPendingRequest(void) ; 
     23    void getBufferFromClient(size_t timeLine) ; 
    2124    void processRequest(int rank, char* buff,int count) ; 
    2225    void processEvents(void) ; 
     
    2528    void setPendingEvent(void) ; 
    2629    bool hasPendingEvent(void) ; 
    27  
     30    bool isAttachedModeEnabled() const; 
     31    void releaseBuffers(void) ; 
     32    void notifyClientsFinalize(void) ; 
     33     
    2834    MPI_Comm intraComm ; 
    2935    int intraCommSize ; 
     
    3339    int commSize ; 
    3440 
     41    MPI_Comm interCommMerged; //!< Communicator of the client group + server group (intraCommunicator) needed for one sided communication. 
     42 
     43    MPI_Comm commSelf; //!< Communicator of the server alone. Needed to create a new communicator between 1 proc client and 1 proc server for one sided communication 
     44 
    3545    map<int,CServerBuffer*> buffers ; 
     46    map<int,size_t> lastTimeLine ; //!< last event time line for a processed request 
     47    map<int,size_t>::iterator itLastTimeLine ; //!< iterator on lastTimeLine 
    3648    map<int,MPI_Request> pendingRequest ; 
    3749    map<int,char*> bufferRequest ; 
     
    4456    bool pendingEvent ; 
    4557    bool scheduled  ;    /*!< event of current timeline is alreading scheduled ? */ 
     58    bool attachedMode ;  //! true if attached mode is enabled otherwise false 
     59    bool pureOneSided ; //!< if true, client will communicated with servers only trough one sided communication. Otherwise the hybrid mode P2P /One sided is used. 
     60          
    4661    size_t hashId ; 
     62 
     63    void setAssociatedClient(CContextClient* associatedClient) {associatedClient_=associatedClient ;} 
     64    CContextClient* getAssociatedClient(void) { return associatedClient_ ;} 
    4765 
    4866    ~CContextServer() ; 
     
    5068    private: 
    5169      std::map<int, StdSize> mapBufferSize_; 
     70      vector<MPI_Win> windows ; //! one sided mpi windows to expose client buffers to servers ; No memory will be attached on server side. 
     71      CEventScheduler* eventScheduler_ ; 
     72      bool isProcessingEvent_ ; 
     73      CContextClient* associatedClient_ ; 
    5274  } ; 
    5375 
Note: See TracChangeset for help on using the changeset viewer.