Ignore:
Timestamp:
07/07/17 18:17:49 (7 years ago)
Author:
oabramkina
Message:

Two server levels: merging trunk r1200 (except for non-contiguous zoom) into dev. Tested on Curie. Todo: non-contiguous zoom.

File:
1 edited

Legend:

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

    r1194 r1201  
    246246   void CContextClient::newBuffer(int rank) 
    247247   { 
    248      if (!mapBufferSize_.count(rank)) 
    249      { 
    250 //       error(0) << "WARNING: Unexpected request for buffer to communicate with server " << rank << std::endl; 
    251        mapBufferSize_[rank] = CXios::minBufferSize; 
    252      } 
    253      CClientBuffer* buffer = buffers[rank] = new CClientBuffer(interComm, rank, mapBufferSize_[rank], maxBufferedEvents); 
    254      // Notify the server 
    255      CBufferOut* bufOut = buffer->getBuffer(sizeof(StdSize)); 
    256      bufOut->put(mapBufferSize_[rank]); // Stupid C++ 
    257      buffer->checkBuffer(); 
     248      if (!mapBufferSize_.count(rank)) 
     249      { 
     250        error(0) << "WARNING: Unexpected request for buffer to communicate with server " << rank << std::endl; 
     251        mapBufferSize_[rank] = CXios::minBufferSize; 
     252        maxEventSizes[rank] = CXios::minBufferSize; 
     253      } 
     254      CClientBuffer* buffer = buffers[rank] = new CClientBuffer(interComm, rank, mapBufferSize_[rank], maxEventSizes[rank], maxBufferedEvents); 
     255      // Notify the server 
     256      CBufferOut* bufOut = buffer->getBuffer(sizeof(StdSize)); 
     257      bufOut->put(mapBufferSize_[rank]); // Stupid C++ 
     258      buffer->checkBuffer(); 
    258259   } 
    259260 
     
    304305   { 
    305306     mapBufferSize_ = mapSize; 
     307     maxEventSizes = maxEventSize; 
    306308 
    307309     // Compute the maximum number of events that can be safely buffered. 
     
    315317 
    316318     if (minBufferSizeEventSizeRatio < 1.0) 
     319     { 
    317320       ERROR("void CContextClient::setBufferSize(const std::map<int,StdSize>& mapSize, const std::map<int,StdSize>& maxEventSize)", 
    318321             << "The buffer sizes and the maximum events sizes are incoherent."); 
     322     } 
     323     else if (minBufferSizeEventSizeRatio == std::numeric_limits<double>::max()) 
     324       minBufferSizeEventSizeRatio = 1.0; // In this case, maxBufferedEvents will never be used but we want to avoid any floating point exception 
    319325 
    320326     maxBufferedEvents = size_t(2 * minBufferSizeEventSizeRatio) // there is room for two local buffers on the server 
Note: See TracChangeset for help on using the changeset viewer.