Ignore:
Timestamp:
08/29/23 17:24:04 (9 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/buffer_client.hpp

    r2458 r2547  
    77#include "mpi.hpp" 
    88#include "cxios.hpp" 
     9#include "window_dynamic.hpp" 
    910 
    1011namespace xios 
     
    1516      static size_t maxRequestSize; 
    1617 
    17       CClientBuffer(MPI_Comm intercomm, int serverRank, StdSize bufferSize, StdSize estimatedMaxEventSize); 
     18      CClientBuffer(MPI_Comm intercomm, int serverRank, StdSize bufferSize, bool hasWindows); 
    1819      ~CClientBuffer(); 
    1920//      void createWindows(MPI_Comm oneSidedComm) ; 
     
    2829      StdSize remain(void); 
    2930      MPI_Aint getWinAddress(int numWindows) ; 
     31      MPI_Aint getWinBufferAddress(int numWindows) ; 
    3032      void infoBuffer(void) ; 
    3133      bool isNotifiedFinalized(void) ; 
     
    3335      void fixBufferSize(size_t bufferSize) { newBufferSize_=bufferSize ; isGrowableBuffer_=false ; resizingBufferStep_=1 ;} 
    3436      void fixBuffer(void) { isGrowableBuffer_=false ;} 
    35       void attachWindows(vector<MPI_Win>& windows) ; 
     37      void attachWindows(MPI_Comm& winComm) ; 
    3638      bool isAttachedWindows(void) { return isAttachedWindows_ ;} 
    3739    private: 
     
    5860      StdSize maxEventSize; 
    5961      StdSize bufferSize; 
    60       const StdSize estimatedMaxEventSize; 
    6162      bool isFinalized_=false ; 
    6263 
     
    6970      CBufferOut* retBuffer; 
    7071      const MPI_Comm interComm; 
    71       std::vector<MPI_Win> windows_ ; 
    72       bool hasWindows=false ; 
     72      std::vector<CWindowDynamic*> windows_ ; 
     73      bool hasWindows_=false ; 
    7374      bool isAttachedWindows_=false ; 
    7475      double latency_=0 ; 
Note: See TracChangeset for help on using the changeset viewer.