Ignore:
Timestamp:
11/19/21 15:41:40 (3 years ago)
Author:
ymipsl
Message:

Improvment of one sided protocol

  • removed latency
  • solve dead-lock

YM

Location:
XIOS/dev/dev_ym/XIOS_COUPLING/src/manager
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/contexts_manager.cpp

    r2258 r2260  
    155155  { 
    156156    CTimer::get("CContextsManager::eventLoop").resume(); 
     157    int flag ; 
     158    MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
    157159    double time=MPI_Wtime() ; 
    158160    if (time-lastEventLoop_ > eventLoopLatency_)  
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/contexts_manager.hpp

    r2246 r2260  
    8383    int managerGlobalLeader_ ; 
    8484 
    85     const double eventLoopLatency_=1e-2;  
     85    const double eventLoopLatency_=0;  
    8686    double lastEventLoop_=0. ; 
    8787 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/pool_ressource.cpp

    r2246 r2260  
    106106    
    107107    double time=MPI_Wtime() ; 
     108    int flag ; 
     109    MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
    108110    if (time-lastEventLoop_ > eventLoopLatency_)  
    109111    { 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/pool_ressource.hpp

    r2246 r2260  
    4545    bool finalizeSignal_ ; 
    4646     
    47     const double eventLoopLatency_=1e-2;  
     47    const double eventLoopLatency_=0;  
    4848    double lastEventLoop_=0. ; 
    4949  }; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/ressources_manager.cpp

    r2258 r2260  
    113113  { 
    114114    CTimer::get("CRessourcesManager::eventLoop").resume(); 
     115    int flag ; 
     116    MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
    115117    double time=MPI_Wtime() ; 
    116118    if (time-lastEventLoop_ > eventLoopLatency_)  
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/ressources_manager.hpp

    r2246 r2260  
    7272    int freeRessourcesSize_ ; 
    7373 
    74     const double eventLoopLatency_=1e-2;  
     74    const double eventLoopLatency_=0;  
    7575    double lastEventLoop_=0. ; 
    7676 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/server_context.cpp

    r2258 r2260  
    237237    CTimer::get("CServerContext::eventLoop").resume(); 
    238238    bool finished=false ; 
    239      
     239    int flag ; 
     240    MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
     241 
    240242//    double time=MPI_Wtime() ; 
    241243//    if (time-lastEventLoop_ > eventLoopLatency_)  
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/server_context.hpp

    r2246 r2260  
    6161    bool isAttachedMode_ ; 
    6262 
    63     const double eventLoopLatency_=1e-2;  
     63    const double eventLoopLatency_=0;  
    6464    double lastEventLoop_=0. ; 
    6565 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/servers_ressource.cpp

    r2246 r2260  
    118118    CTimer::get("CServersRessource::eventLoop").resume(); 
    119119    double time=MPI_Wtime() ; 
     120    int flag ; 
     121    MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
     122 
    120123    if (time-lastEventLoop_ > eventLoopLatency_)  
    121124    { 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/servers_ressource.hpp

    r2246 r2260  
    5050    bool finalizeSignal_ ; 
    5151 
    52     const double eventLoopLatency_=1e-2;  
     52    const double eventLoopLatency_=0;  
    5353    double lastEventLoop_=0. ; 
    5454 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/services.cpp

    r2258 r2260  
    105105    //checkCreateContextNotification() ; 
    106106    CTimer::get("CService::eventLoop").resume(); 
    107      
     107    int flag ; 
     108    MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
     109    
    108110//    double time=MPI_Wtime() ; 
    109111//    if (time-lastEventLoop_ > eventLoopLatency_)  
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/services.hpp

    r2246 r2260  
    7171    int nbPartitions_ ; 
    7272 
    73     const double eventLoopLatency_=1e-2;  
     73    const double eventLoopLatency_=0;  
    7474    double lastEventLoop_=0. ; 
    7575 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/services_manager.cpp

    r2246 r2260  
    109109  { 
    110110    CTimer::get("CServicesManager::eventLoop").resume(); 
     111    int flag ; 
     112    MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
    111113    double time=MPI_Wtime() ; 
    112114    if (time-lastEventLoop_ > eventLoopLatency_)  
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/services_manager.hpp

    r2246 r2260  
    6060    int managerGlobalLeader_ ; 
    6161 
    62     const double eventLoopLatency_=1e-2;  
     62    const double eventLoopLatency_=0;  
    6363    double lastEventLoop_=0. ; 
    6464     
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/window_manager.hpp

    r2258 r2260  
    6161        time=MPI_Wtime() ; 
    6262        while(time-lastTime < latency_) time=MPI_Wtime() ; 
     63        int flag ; 
     64        MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
    6365        MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, window_) ; 
    6466        MPI_Compare_and_swap(&WINDOWS_LOCKED, &state, &lock, MPI_INT, rank, OFFSET_LOCK, window_) ; 
     
    8688        time=MPI_Wtime() ; 
    8789        while(time-lastTime < latency_) time=MPI_Wtime() ; 
     90        int flag ; 
     91        MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, MPI_STATUS_IGNORE); 
    8892        MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, window_) ; 
    8993        MPI_Compare_and_swap(&WINDOWS_LOCKED, &state, &lock, MPI_INT, rank, OFFSET_LOCK, window_) ; 
Note: See TracChangeset for help on using the changeset viewer.