Changeset 2019 for XIOS/dev/dev_trunk_graph/src/context_server.hpp
- Timestamp:
- 01/22/21 12:00:29 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_trunk_graph/src/context_server.hpp
r1228 r2019 5 5 #include "buffer_server.hpp" 6 6 #include "mpi.hpp" 7 #include "event_scheduler.hpp" 7 8 8 9 namespace xios 9 10 { 10 11 class CContext ; 12 class CContextClient; 11 13 12 14 class CContextServer … … 19 21 bool listenPendingRequest(MPI_Status& status) ; 20 22 void checkPendingRequest(void) ; 23 void getBufferFromClient(size_t timeLine) ; 21 24 void processRequest(int rank, char* buff,int count) ; 22 25 void processEvents(void) ; … … 25 28 void setPendingEvent(void) ; 26 29 bool hasPendingEvent(void) ; 27 30 bool isAttachedModeEnabled() const; 31 void releaseBuffers(void) ; 32 void notifyClientsFinalize(void) ; 33 28 34 MPI_Comm intraComm ; 29 35 int intraCommSize ; … … 33 39 int commSize ; 34 40 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 35 45 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 36 48 map<int,MPI_Request> pendingRequest ; 37 49 map<int,char*> bufferRequest ; … … 44 56 bool pendingEvent ; 45 57 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 46 61 size_t hashId ; 62 63 void setAssociatedClient(CContextClient* associatedClient) {associatedClient_=associatedClient ;} 64 CContextClient* getAssociatedClient(void) { return associatedClient_ ;} 47 65 48 66 ~CContextServer() ; … … 50 68 private: 51 69 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_ ; 52 74 } ; 53 75
Note: See TracChangeset
for help on using the changeset viewer.