Ignore:
Timestamp:
08/29/23 17:24:04 (10 months ago)
Author:
ymipsl
Message:

Major update :

  • New method to lock and unlock one-sided windows (window_dynamic) to avoid network overhead
  • Introducing multithreading on server sided to manage more efficiently dead-lock occuring (similar to co-routine which will be available and implemented in futur c++ standard), based on c++ threads
  • Suprression of old "attached mode" which is replaced by online writer and reder filters

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/transport/legacy_context_client.hpp

    r2507 r2547  
    1111#include "registry.hpp" 
    1212#include "context_client.hpp" 
     13#include "window_dynamic.hpp" 
    1314 
    1415namespace xios 
     
    4849      void getBuffers(const size_t timeLine, const list<int>& serverList, const list<int>& sizeList, list<CBufferOut*>& retBuffers); 
    4950      void newBuffer(int rank); 
    50       void checkAttachWindows(CClientBuffer* buffer , int rank) ; 
     51      bool checkAttachWindows(CClientBuffer* buffer , int rank, map<int,MPI_Request>& attachList) ; 
    5152      bool checkBuffers(list<int>& ranks); 
    5253      bool checkBuffers(void); 
    5354      void callGlobalEventLoop() ; 
     55      void yield(void) ; 
     56      void synchronize(void) ; 
    5457      bool havePendingRequests(list<int>& ranks) ; 
    5558      void setGrowableBuffer(void) { isGrowableBuffer_=true;} 
     
    7679 
    7780      std::map<int, MPI_Comm> winComm_ ; //! Window communicators 
    78       std::map<int, std::vector<MPI_Win> >windows_ ; //! one sided mpi windows to expose client buffers to servers == windows[nbServers][2] 
     81      std::map<int, std::vector<CWindowDynamic*> >windows_ ; //! one sided mpi windows to expose client buffers to servers == windows[nbServers][2] 
    7982      bool isGrowableBuffer_ = true ; 
    8083 
     
    8285 
    8386      bool locked_ = false ; //!< The context client is locked to avoid recursive checkBuffer 
     87      shared_ptr<CEventScheduler> eventScheduler_ ; 
    8488  }; 
    8589} 
Note: See TracChangeset for help on using the changeset viewer.