Ignore:
Timestamp:
12/13/17 16:06:32 (6 years ago)
Author:
ymipsl
Message:
  • Add more debugging information at info_level 100
  • Enforce synchronisation check for event on client side, using parameter "check_event_sync" at true

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/context_client.cpp

    r1232 r1377  
    9696      list<int> ranks = event.getRanks(); 
    9797 
     98      if (CXios::checkEventSync) 
     99      { 
     100        int typeId, classId, typeId_in, classId_in, timeLine_out; 
     101        typeId_in=event.getTypeId() ; 
     102        classId_in=event.getClassId() ; 
     103        MPI_Allreduce(&timeLine,&timeLine_out, 1, MPI_UINT64_T, MPI_SUM, intraComm) ; 
     104        MPI_Allreduce(&typeId_in,&typeId, 1, MPI_INT, MPI_SUM, intraComm) ; 
     105        MPI_Allreduce(&classId_in,&classId, 1, MPI_INT, MPI_SUM, intraComm) ; 
     106        if (typeId/clientSize!=event.getTypeId() || classId/clientSize!=event.getClassId() || timeLine_out/clientSize!=timeLine) 
     107        { 
     108           ERROR("void CContextClient::sendEvent(CEventClient& event)", 
     109               << "Event are not coherent between client."); 
     110        } 
     111      } 
     112 
    98113      if (!event.isEmpty()) 
    99114      { 
     
    124139          for (list<int>::const_iterator it = sizes.begin(); it != sizes.end(); it++) 
    125140            tmpBufferedEvent.buffers.push_back(new CBufferOut(*it)); 
    126  
     141          info(100)<<"DEBUG : temporaly event created : timeline "<<timeLine<<endl ; 
    127142          event.send(timeLine, tmpBufferedEvent.sizes, tmpBufferedEvent.buffers); 
    128143        } 
     
    151166            (*itBuffer)->put((char*)(*it)->start(), (*it)->count()); 
    152167 
     168          info(100)<<"DEBUG : temporaly event sent "<<endl ; 
    153169          checkBuffers(tmpBufferedEvent.ranks); 
    154170 
     
    230246            for (int i = 0; i < context->serverPrimServer.size(); ++i) 
    231247              context->serverPrimServer[i]->listen(); 
     248//            CServer::contextEventLoop(false) ; // avoid dead-lock at finalize... 
    232249          } 
    233250 
     
    406423      const std::list<int>& ranks = getRanksServerLeader(); 
    407424      for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 
     425      { 
     426        info(100)<<"DEBUG : Sent context Finalize event to rank "<<*itRank<<endl ; 
    408427        event.push(*itRank, 1, msg); 
     428      } 
    409429      sendEvent(event); 
    410430    } 
Note: See TracChangeset for help on using the changeset viewer.