Ignore:
Timestamp:
06/12/23 11:52:10 (13 months ago)
Author:
ymipsl
Message:

New way to manage locks in window manager. Windows is locked with MPI_Win_lock_all at creation (shared mode), and lock is manage by software way in the class (using MPI_swap_and_compare and MPI_Fetch_op). We get in this case a better control of lock, with controled latency between each attemp of lock.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/manager/servers_ressource.cpp

    r2458 r2517  
    8181  void CServersRessource::sendNotification(int rank) 
    8282  { 
    83     winNotify_->lockWindow(rank,0) ; 
    84     winNotify_->pushToWindow(rank, this, &CServersRessource::notificationsDumpOut) ; 
    85     winNotify_->unlockWindow(rank,0) ; 
     83    winNotify_->pushToExclusiveWindow(rank, this, &CServersRessource::notificationsDumpOut) ; 
    8684  } 
    8785 
     
    146144    int commRank ; 
    147145    MPI_Comm_rank(serverComm_, &commRank) ; 
    148     winNotify_->lockWindow(commRank,0) ; 
    149     winNotify_->popFromWindow(commRank, this, &CServersRessource::notificationsDumpIn) ; 
    150     winNotify_->unlockWindow(commRank,0) ; 
     146    winNotify_->popFromExclusiveWindow(commRank, this, &CServersRessource::notificationsDumpIn) ; 
    151147    if (notifyInType_==NOTIFY_CREATE_POOL) createPool() ; 
    152148    else if (notifyInType_==NOTIFY_FINALIZE) finalizeSignal() ; 
Note: See TracChangeset for help on using the changeset viewer.