Changeset 2428


Ignore:
Timestamp:
11/22/22 14:25:20 (3 months ago)
Author:
jderouillat
Message:

Backport the XIOS3 system to log the memory consumption (commit ID [2418-2420,2425-2426])

Location:
XIOS2/trunk/src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • XIOS2/trunk/src/client.cpp

    r2029 r2428  
    1010#include "mpi.hpp" 
    1111#include "timer.hpp" 
     12#include "mem_checker.hpp"  
    1213#include "buffer_client.hpp" 
    1314#include "string_tools.hpp" 
     
    302303      report(0)<< " Memory report : increasing it by a factor will increase performance, depending of the volume of data wrote in file at each time step of the file"<<endl ; 
    303304      report(100)<<CTimer::getAllCumulatedTime()<<endl ; 
     305      report(100)<<CMemChecker::getAllCumulatedMem()<<endl ; 
    304306   } 
    305307 
  • XIOS2/trunk/src/cxios.cpp

    r2330 r2428  
    1010#include <new> 
    1111#include "memtrack.hpp" 
     12#include "mem_checker.hpp" 
    1213#include "registry.hpp" 
    1314 
     
    4546  bool CXios::checkSumRecv=false ; 
    4647  bool CXios::checkSumSend=false ; 
     48  bool CXios::logMemory=false ; 
    4749  
    4850  //! Parse configuration file and create some objects from it 
     
    9799    checkSumSend = getin<bool>("checksum_send_fields", false); 
    98100    checkSumRecv = getin<bool>("checksum_recv_fields", false); 
     101 
     102    logMemory = getin<bool>("log_memory", false); 
    99103  
    100104    globalComm=MPI_COMM_WORLD ; 
     
    131135      CClient::openErrorStream(); 
    132136    } 
     137    CMemChecker::logMem("CXios::initClientSide"); 
    133138  } 
    134139  CATCH 
     
    136141  void CXios::clientFinalize(void) 
    137142  { 
     143     CMemChecker::logMem("CXios::clientFinalize", true); 
    138144     CClient::finalize() ; 
    139145     if (CClient::getRank()==0) 
     
    206212      CServer::openErrorStream(); 
    207213    } 
     214    CMemChecker::logMem( "CServer::initialize" ); 
    208215 
    209216    // Enter the loop to listen message from Client 
  • XIOS2/trunk/src/cxios.hpp

    r2330 r2428  
    6060     static bool checkSumRecv; //!< For debugging, compute a checksum of fields received by the model through the XIOS client 
    6161 
     62     static bool logMemory; //!< Activate memory monitoring for all XIOS process 
     63 
    6264    public: 
    6365     //! Setting xios to use server mode 
  • XIOS2/trunk/src/filter/temporal_filter.cpp

    r1876 r2428  
    44#include "workflow_graph.hpp" 
    55#include "file.hpp" 
     6#include "mem_checker.hpp" 
    67 
    78namespace xios 
     
    130131          packet = data[0]; 
    131132 
    132         isFirstOperation = false; 
     133        CMemChecker::logMem( "CTemporalFilter::apply" ); 
     134 
     135        isFirstOperation = false; 
    133136         
    134137        packet->field = this->field; 
  • XIOS2/trunk/src/interface/c/iccalendar.cpp

    r1622 r2428  
    44#include "exception.hpp" 
    55#include "timer.hpp" 
     6#include "mem_checker.hpp" 
    67#include "context.hpp" 
    78#include "context_client.hpp" 
     
    1213  TRY 
    1314  { 
     15    CMemChecker::get("XIOS update calendar").resume(); 
    1416    CTimer::get("XIOS").resume(); 
    1517    xios::CContext* context = CContext::getCurrent(); 
     
    1921    context->sendUpdateCalendar(step); 
    2022    CTimer::get("XIOS").suspend(); 
     23    CMemChecker::get("XIOS update calendar").suspend(); 
    2124  } 
    2225  CATCH_DUMP_STACK 
  • XIOS2/trunk/src/interface/c/icdata.cpp

    r2131 r2428  
    2525#include "mpi.hpp" 
    2626#include "timer.hpp" 
     27#include "mem_checker.hpp" 
    2728#include "array_new.hpp" 
    2829 
     
    117118   TRY 
    118119   { 
     120     CMemChecker::get("XIOS close definition").resume(); 
    119121     CTimer::get("XIOS").resume(); 
    120122     CTimer::get("XIOS close definition").resume(); 
     
    123125     CTimer::get("XIOS close definition").suspend(); 
    124126     CTimer::get("XIOS").suspend(); 
     127     CMemChecker::get("XIOS close definition").suspend(); 
    125128   } 
    126129   CATCH_DUMP_STACK 
     
    414417   TRY 
    415418   { 
     419      CMemChecker::get("XIOS send field").resume(); 
    416420      CTimer::get("XIOS").resume(); 
    417421      CTimer::get("XIOS send field").resume(); 
     
    423427      CTimer::get("XIOS send field").suspend(); 
    424428      CTimer::get("XIOS").suspend(); 
     429      CMemChecker::get("XIOS send field").suspend(); 
    425430   } 
    426431   CATCH_DUMP_STACK 
     
    441446   TRY 
    442447   { 
     448      CMemChecker::get("XIOS send field").resume(); 
    443449      CTimer::get("XIOS").resume(); 
    444450      CTimer::get("XIOS send field").resume(); 
     
    453459      CTimer::get("XIOS send field").suspend(); 
    454460      CTimer::get("XIOS").suspend(); 
     461      CMemChecker::get("XIOS send field").suspend(); 
    455462   } 
    456463   CATCH_DUMP_STACK 
     
    471478   TRY 
    472479   { 
     480      CMemChecker::get("XIOS send field").resume(); 
    473481      CTimer::get("XIOS").resume(); 
    474482      CTimer::get("XIOS send field").resume(); 
     
    483491      CTimer::get("XIOS send field").suspend(); 
    484492      CTimer::get("XIOS").suspend(); 
     493      CMemChecker::get("XIOS send field").suspend(); 
    485494   } 
    486495   CATCH_DUMP_STACK 
     
    503512   TRY 
    504513   { 
     514      CMemChecker::get("XIOS send field").resume(); 
    505515      CTimer::get("XIOS").resume(); 
    506516      CTimer::get("XIOS send field").resume(); 
     
    515525      CTimer::get("XIOS send field").suspend(); 
    516526      CTimer::get("XIOS").suspend(); 
     527      CMemChecker::get("XIOS send field").suspend(); 
    517528   } 
    518529   CATCH_DUMP_STACK 
     
    537548   TRY 
    538549   { 
     550      CMemChecker::get("XIOS send field").resume(); 
    539551      CTimer::get("XIOS").resume(); 
    540552      CTimer::get("XIOS send field").resume(); 
     
    549561      CTimer::get("XIOS send field").suspend(); 
    550562      CTimer::get("XIOS").suspend(); 
     563      CMemChecker::get("XIOS send field").suspend(); 
    551564   } 
    552565   CATCH_DUMP_STACK 
     
    575588   TRY 
    576589   { 
     590      CMemChecker::get("XIOS send field").resume(); 
    577591      CTimer::get("XIOS").resume(); 
    578592      CTimer::get("XIOS send field").resume(); 
     
    587601      CTimer::get("XIOS send field").suspend(); 
    588602      CTimer::get("XIOS").suspend(); 
    589    } 
     603      CMemChecker::get("XIOS send field").suspend(); 
     604  } 
    590605   CATCH_DUMP_STACK 
    591606 
     
    610625   { 
    611626  
     627      CMemChecker::get("XIOS send field").resume(); 
    612628      CTimer::get("XIOS").resume(); 
    613629      CTimer::get("XIOS send field").resume(); 
     
    622638      CTimer::get("XIOS send field").suspend(); 
    623639      CTimer::get("XIOS").suspend(); 
     640      CMemChecker::get("XIOS send field").suspend(); 
    624641   } 
    625642   CATCH_DUMP_STACK 
     
    646663   TRY 
    647664   { 
     665      CMemChecker::get("XIOS send field").resume(); 
    648666      CTimer::get("XIOS").resume(); 
    649667      CTimer::get("XIOS send field").resume(); 
     
    658676      CTimer::get("XIOS send field").suspend(); 
    659677      CTimer::get("XIOS").suspend(); 
     678      CMemChecker::get("XIOS send field").suspend(); 
    660679   } 
    661680   CATCH_DUMP_STACK 
     
    681700   TRY 
    682701   { 
     702      CMemChecker::get("XIOS send field").resume(); 
    683703      CTimer::get("XIOS").resume(); 
    684704      CTimer::get("XIOS send field").resume(); 
     
    693713      CTimer::get("XIOS send field").suspend(); 
    694714      CTimer::get("XIOS").suspend(); 
     715      CMemChecker::get("XIOS send field").suspend(); 
    695716   } 
    696717   CATCH_DUMP_STACK 
     
    710731   TRY 
    711732   { 
     733      CMemChecker::get("XIOS send field").resume(); 
    712734      CTimer::get("XIOS").resume(); 
    713735      CTimer::get("XIOS send field").resume(); 
     
    724746      CTimer::get("XIOS send field").suspend(); 
    725747      CTimer::get("XIOS").suspend(); 
     748      CMemChecker::get("XIOS send field").suspend(); 
    726749   } 
    727750   CATCH_DUMP_STACK 
     
    740763   TRY 
    741764   { 
     765      CMemChecker::get("XIOS send field").resume(); 
    742766      CTimer::get("XIOS").resume(); 
    743767      CTimer::get("XIOS send field").resume(); 
     
    754778      CTimer::get("XIOS send field").suspend(); 
    755779      CTimer::get("XIOS").suspend(); 
     780      CMemChecker::get("XIOS send field").suspend(); 
    756781   } 
    757782   CATCH_DUMP_STACK 
     
    772797   TRY 
    773798   { 
     799      CMemChecker::get("XIOS send field").resume(); 
    774800      CTimer::get("XIOS").resume(); 
    775801      CTimer::get("XIOS send field").resume(); 
     
    786812      CTimer::get("XIOS send field").suspend(); 
    787813      CTimer::get("XIOS").suspend(); 
     814      CMemChecker::get("XIOS send field").suspend(); 
    788815    } 
    789816   CATCH_DUMP_STACK 
     
    805832   TRY 
    806833   { 
     834      CMemChecker::get("XIOS send field").resume(); 
    807835      CTimer::get("XIOS").resume(); 
    808836      CTimer::get("XIOS send field").resume(); 
     
    819847      CTimer::get("XIOS send field").suspend(); 
    820848      CTimer::get("XIOS").suspend(); 
     849      CMemChecker::get("XIOS send field").suspend(); 
    821850    } 
    822851   CATCH_DUMP_STACK 
     
    841870   TRY 
    842871   { 
     872      CMemChecker::get("XIOS send field").resume(); 
    843873      CTimer::get("XIOS").resume(); 
    844874      CTimer::get("XIOS send field").resume(); 
     
    855885      CTimer::get("XIOS send field").suspend(); 
    856886      CTimer::get("XIOS").suspend(); 
     887      CMemChecker::get("XIOS send field").suspend(); 
    857888    } 
    858889   CATCH_DUMP_STACK 
     
    876907   TRY 
    877908   { 
     909      CMemChecker::get("XIOS send field").resume(); 
    878910      CTimer::get("XIOS").resume(); 
    879911      CTimer::get("XIOS send field").resume(); 
     
    890922      CTimer::get("XIOS send field").suspend(); 
    891923      CTimer::get("XIOS").suspend(); 
     924      CMemChecker::get("XIOS send field").suspend(); 
    892925    } 
    893926   CATCH_DUMP_STACK 
     
    911944   TRY 
    912945   { 
     946      CMemChecker::get("XIOS send field").resume(); 
    913947      CTimer::get("XIOS").resume(); 
    914948      CTimer::get("XIOS send field").resume(); 
     
    925959      CTimer::get("XIOS send field").suspend(); 
    926960      CTimer::get("XIOS").suspend(); 
     961      CMemChecker::get("XIOS send field").suspend(); 
    927962    } 
    928963   CATCH_DUMP_STACK 
     
    947982   TRY 
    948983   { 
     984      CMemChecker::get("XIOS send field").resume(); 
    949985      CTimer::get("XIOS").resume(); 
    950986      CTimer::get("XIOS recv field").resume(); 
     
    959995      CTimer::get("XIOS recv field").suspend(); 
    960996      CTimer::get("XIOS").suspend(); 
    961    } 
     997       CMemChecker::get("XIOS send field").suspend(); 
     998  } 
    962999   CATCH_DUMP_STACK 
    9631000 
     
    9751012   TRY 
    9761013   { 
     1014      CMemChecker::get("XIOS send field").resume(); 
    9771015      CTimer::get("XIOS").resume(); 
    9781016      CTimer::get("XIOS recv field").resume(); 
     
    9871025      CTimer::get("XIOS recv field").suspend(); 
    9881026      CTimer::get("XIOS").suspend(); 
     1027      CMemChecker::get("XIOS send field").suspend(); 
    9891028   } 
    9901029   CATCH_DUMP_STACK 
     
    10021041   TRY 
    10031042   { 
     1043      CMemChecker::get("XIOS send field").resume(); 
    10041044      CTimer::get("XIOS").resume(); 
    10051045      CTimer::get("XIOS recv field").resume(); 
     
    10141054      CTimer::get("XIOS recv field").suspend(); 
    10151055      CTimer::get("XIOS").suspend(); 
     1056      CMemChecker::get("XIOS send field").suspend(); 
    10161057   } 
    10171058   CATCH_DUMP_STACK 
     
    10301071   TRY 
    10311072   { 
     1073      CMemChecker::get("XIOS send field").resume(); 
    10321074      CTimer::get("XIOS").resume(); 
    10331075      CTimer::get("XIOS recv field").resume(); 
     
    10421084      CTimer::get("XIOS recv field").suspend(); 
    10431085      CTimer::get("XIOS").suspend(); 
     1086      CMemChecker::get("XIOS send field").suspend(); 
    10441087   } 
    10451088   CATCH_DUMP_STACK 
     
    10601103   TRY 
    10611104   { 
     1105      CMemChecker::get("XIOS send field").resume(); 
    10621106      CTimer::get("XIOS").resume(); 
    10631107      CTimer::get("XIOS recv field").resume(); 
     
    10721116      CTimer::get("XIOS recv field").suspend(); 
    10731117      CTimer::get("XIOS").suspend(); 
     1118      CMemChecker::get("XIOS send field").suspend(); 
    10741119   } 
    10751120   CATCH_DUMP_STACK 
     
    10911136   TRY 
    10921137   { 
     1138      CMemChecker::get("XIOS send field").resume(); 
    10931139      CTimer::get("XIOS").resume(); 
    10941140      CTimer::get("XIOS recv field").resume(); 
     
    11031149      CTimer::get("XIOS recv field").suspend(); 
    11041150      CTimer::get("XIOS").suspend(); 
     1151      CMemChecker::get("XIOS send field").suspend(); 
    11051152   } 
    11061153   CATCH_DUMP_STACK 
     
    11221169   TRY 
    11231170   { 
     1171      CMemChecker::get("XIOS send field").resume(); 
    11241172      CTimer::get("XIOS").resume(); 
    11251173      CTimer::get("XIOS recv field").resume(); 
     
    11341182      CTimer::get("XIOS recv field").suspend(); 
    11351183      CTimer::get("XIOS").suspend(); 
     1184      CMemChecker::get("XIOS send field").suspend(); 
    11361185   } 
    11371186   CATCH_DUMP_STACK 
     
    11541203   TRY 
    11551204   { 
     1205      CMemChecker::get("XIOS send field").resume(); 
    11561206      CTimer::get("XIOS").resume(); 
    11571207      CTimer::get("XIOS recv field").resume(); 
     
    11661216      CTimer::get("XIOS recv field").suspend(); 
    11671217      CTimer::get("XIOS").suspend(); 
     1218      CMemChecker::get("XIOS send field").suspend(); 
    11681219   } 
    11691220   CATCH_DUMP_STACK 
     
    11891240   TRY 
    11901241   { 
     1242      CMemChecker::get("XIOS send field").resume(); 
    11911243      CTimer::get("XIOS").resume(); 
    11921244      CTimer::get("XIOS recv field").resume(); 
     
    12031255      CTimer::get("XIOS recv field").suspend(); 
    12041256      CTimer::get("XIOS").suspend(); 
     1257      CMemChecker::get("XIOS send field").suspend(); 
    12051258   } 
    12061259   CATCH_DUMP_STACK 
     
    12201273   TRY 
    12211274   { 
     1275      CMemChecker::get("XIOS send field").resume(); 
    12221276      CTimer::get("XIOS").resume(); 
    12231277      CTimer::get("XIOS recv field").resume(); 
     
    12341288      CTimer::get("XIOS recv field").suspend(); 
    12351289      CTimer::get("XIOS").suspend(); 
     1290      CMemChecker::get("XIOS send field").suspend(); 
    12361291   } 
    12371292   CATCH_DUMP_STACK 
     
    12521307   TRY 
    12531308   { 
     1309      CMemChecker::get("XIOS send field").resume(); 
    12541310      CTimer::get("XIOS").resume(); 
    12551311      CTimer::get("XIOS recv field").resume(); 
     
    12661322      CTimer::get("XIOS recv field").suspend(); 
    12671323      CTimer::get("XIOS").suspend(); 
     1324      CMemChecker::get("XIOS send field").suspend(); 
    12681325   } 
    12691326   CATCH_DUMP_STACK 
     
    12831340   TRY 
    12841341   { 
     1342      CMemChecker::get("XIOS send field").resume(); 
    12851343      CTimer::get("XIOS").resume(); 
    12861344      CTimer::get("XIOS recv field").resume(); 
     
    12971355      CTimer::get("XIOS recv field").suspend(); 
    12981356      CTimer::get("XIOS").suspend(); 
    1299     } 
     1357      CMemChecker::get("XIOS send field").suspend(); 
     1358   } 
    13001359   CATCH_DUMP_STACK 
    13011360 
     
    13151374   TRY 
    13161375   { 
     1376      CMemChecker::get("XIOS send field").resume(); 
    13171377      CTimer::get("XIOS").resume(); 
    13181378      CTimer::get("XIOS recv field").resume(); 
     
    13291389      CTimer::get("XIOS recv field").suspend(); 
    13301390      CTimer::get("XIOS").suspend(); 
     1391      CMemChecker::get("XIOS send field").suspend(); 
    13311392    } 
    13321393   CATCH_DUMP_STACK 
     
    13501411   TRY 
    13511412   { 
     1413      CMemChecker::get("XIOS send field").resume(); 
    13521414      CTimer::get("XIOS").resume(); 
    13531415      CTimer::get("XIOS recv field").resume(); 
     
    13641426      CTimer::get("XIOS recv field").suspend(); 
    13651427      CTimer::get("XIOS").suspend(); 
     1428      CMemChecker::get("XIOS send field").suspend(); 
    13661429    } 
    13671430   CATCH_DUMP_STACK 
     
    13841447   TRY 
    13851448   { 
     1449      CMemChecker::get("XIOS send field").resume(); 
    13861450      CTimer::get("XIOS").resume(); 
    13871451      CTimer::get("XIOS recv field").resume(); 
     
    13981462      CTimer::get("XIOS recv field").suspend(); 
    13991463      CTimer::get("XIOS").suspend(); 
     1464      CMemChecker::get("XIOS send field").suspend(); 
    14001465    } 
    14011466   CATCH_DUMP_STACK 
     
    14201485   TRY 
    14211486   { 
     1487      CMemChecker::get("XIOS send field").resume(); 
    14221488      CTimer::get("XIOS").resume(); 
    14231489      CTimer::get("XIOS recv field").resume(); 
     
    14341500      CTimer::get("XIOS recv field").suspend(); 
    14351501      CTimer::get("XIOS").suspend(); 
    1436     } 
     1502      CMemChecker::get("XIOS send field").suspend(); 
     1503   } 
    14371504   CATCH_DUMP_STACK 
    14381505  
  • XIOS2/trunk/src/interface/fortran/ixios.F90

    r1849 r2428  
    3838                  ASSIGNMENT(=) 
    3939USE itimer, ONLY : xios(timer_resume), xios(timer_suspend), xios(timer_reset), xios(timer_get_time) 
     40USE imem_checker, ONLY : xios(mem_checker_get), xios(mem_checker_log)  
    4041 
    4142USE ifield, ONLY : txios(field), txios(fieldgroup), xios(is_valid_field), xios(is_valid_fieldgroup) 
  • XIOS2/trunk/src/io/netCdfInterface.cpp

    r1639 r2428  
    1010#include "netCdfInterface.hpp" 
    1111#include "netCdfException.hpp" 
     12#include "mem_checker.hpp" 
    1213 
    1314namespace xios 
     
    2223int CNetCdfInterface::create(const StdString& fileName, int cMode, int& ncId) 
    2324{ 
     25  CMemChecker::get("NetCDF create").resume(); 
    2426  int status = nc_create(fileName.c_str(), cMode, &ncId); 
    2527  if (NC_NOERR != status) 
     
    3436    throw CNetCdfException(e); 
    3537  } 
    36  
     38  CMemChecker::get("NetCDF create").suspend(); 
     39   
    3740  return status; 
    3841} 
     
    4952int CNetCdfInterface::createPar(const StdString& fileName, int cMode, MPI_Comm comm, MPI_Info info, int& ncId) 
    5053{ 
     54  CMemChecker::get("NetCDF create").resume(); 
    5155  int status = xios::nc_create_par(fileName.c_str(), cMode, comm, info, &ncId); 
    5256  if (NC_NOERR != status) 
     
    6165    throw CNetCdfException(e); 
    6266  } 
     67  CMemChecker::get("NetCDF create").suspend(); 
    6368 
    6469  return status; 
     
    7479int CNetCdfInterface::open(const StdString& fileName, int oMode, int& ncId) 
    7580{ 
     81  CMemChecker::get("NetCDF open").resume(); 
    7682  int status = nc_open(fileName.c_str(), oMode, &ncId); 
    7783  if (NC_NOERR != status) 
     
    8692    throw CNetCdfException(e); 
    8793  } 
    88  
     94  CMemChecker::get("NetCDF open").suspend(); 
     95   
    8996  return status; 
    9097} 
     
    102109int CNetCdfInterface::openPar(const StdString& fileName, int oMode, MPI_Comm comm, MPI_Info info, int& ncId) 
    103110{ 
     111  CMemChecker::get("NetCDF open").resume(); 
    104112  int status = xios::nc_open_par(fileName.c_str(), oMode, comm, info, &ncId); 
    105113  if (NC_NOERR != status) 
     
    114122    throw CNetCdfException(e); 
    115123  } 
     124  CMemChecker::get("NetCDF open").suspend(); 
    116125 
    117126  return status; 
     
    125134int CNetCdfInterface::close(int ncId) 
    126135{ 
     136  CMemChecker::get("NetCDF close").resume(); 
    127137  int status = nc_close(ncId); 
    128138  if (NC_NOERR != status) 
     
    136146    throw CNetCdfException(e); 
    137147  } 
    138  
     148  CMemChecker::get("NetCDF close").suspend(); 
     149   
    139150  return status; 
    140151} 
     
    147158int CNetCdfInterface::reDef(int ncId) 
    148159{ 
     160  CMemChecker::get("NetCDF other").resume(); 
    149161  int status = nc_redef(ncId); 
    150162  if (NC_NOERR != status) 
     
    158170    throw CNetCdfException(e); 
    159171  } 
     172  CMemChecker::get("NetCDF other").suspend(); 
    160173 
    161174  return status; 
     
    169182int CNetCdfInterface::endDef(int ncId) 
    170183{ 
     184  CMemChecker::get("NetCDF other").resume(); 
    171185  int status = nc_enddef(ncId); 
    172186  if (NC_NOERR != status) 
     
    181195    throw CNetCdfException(e); 
    182196  } 
     197  CMemChecker::get("NetCDF other").suspend(); 
    183198 
    184199  return status; 
     
    773788int CNetCdfInterface::setFill(int ncid, bool fill) 
    774789{ 
     790  CMemChecker::get("NetCDF other").resume(); 
    775791  int old_fill_mode; 
    776792  int status = nc_set_fill(ncid, fill ? NC_FILL: NC_NOFILL, &old_fill_mode); 
     
    786802    throw CNetCdfException(e); 
    787803  } 
     804  CMemChecker::get("NetCDF other").suspend(); 
    788805 
    789806  return status; 
     
    801818int CNetCdfInterface::defVarFill(int ncid, int varId, int noFill, void* fillValue) 
    802819{ 
     820  CMemChecker::get("NetCDF other").resume(); 
    803821  int status = nc_def_var_fill(ncid, varId, noFill, fillValue); 
    804822  if (NC_NOERR != status) 
     
    814832    throw CNetCdfException(e); 
    815833  } 
     834  CMemChecker::get("NetCDF other").suspend(); 
    816835 
    817836  return status; 
     
    829848int CNetCdfInterface::varParAccess(int ncid, int varId, int access) 
    830849{ 
     850  CMemChecker::get("NetCDF other").resume(); 
    831851  int status = nc_var_par_access(ncid, varId, access); 
    832852  if (NC_NOERR != status) 
     
    841861    throw CNetCdfException(e); 
    842862  } 
     863  CMemChecker::get("NetCDF other").suspend(); 
    843864 
    844865  return status; 
     
    852873int CNetCdfInterface::sync(int ncid) 
    853874{ 
     875  CMemChecker::get("NetCDF other").resume(); 
    854876  int status = nc_sync(ncid); 
    855877  if (NC_NOERR != status) 
     
    864886    throw CNetCdfException(e); 
    865887  } 
     888  CMemChecker::get("NetCDF other").suspend(); 
    866889 
    867890  return status; 
  • XIOS2/trunk/src/io/netCdfInterface_impl.hpp

    r1158 r2428  
    1313#include "netCdfInterface.hpp" 
    1414#include "netCdfException.hpp" 
     15#include "mem_checker.hpp" 
    1516 
    1617namespace xios 
     
    2829  int CNetCdfInterface::getAttType(int ncid, int varId, const StdString& attrName, T* data) 
    2930  { 
     31    CMemChecker::get("NetCDF get/put").resume(); 
    3032    int status = ncGetAttType(ncid, varId, attrName.c_str(), data); 
    3133    if (NC_NOERR != status) 
     
    3941      throw CNetCdfException(sstr.str()); 
    4042    } 
     43    CMemChecker::get("NetCDF get/put").suspend(); 
    4144 
    4245    return status; 
     
    5760                                   StdSize numVal, const T* data) 
    5861  { 
     62    CMemChecker::get("NetCDF get/put").resume(); 
    5963    int status = ncPutAttType(ncid, varId, attrName.c_str(), numVal, data); 
    6064    if (NC_NOERR != status) 
     
    6973      throw CNetCdfException(sstr.str()); 
    7074    } 
     75    CMemChecker::get("NetCDF get/put").suspend(); 
    7176 
    7277    return status; 
     
    8590  int CNetCdfInterface::getVaraType(int ncid, int varId, const StdSize* start, const StdSize* count, T* data) 
    8691  { 
     92    CMemChecker::get("NetCDF get/put").resume(); 
    8793    int status = ncGetVaraType(ncid, varId, start, count, data); 
    8894    if (NC_NOERR != status) 
     
    96102      throw CNetCdfException(sstr.str()); 
    97103    } 
     104    CMemChecker::get("NetCDF get/put").suspend(); 
    98105 
    99106    return status; 
     
    112119  int CNetCdfInterface::putVaraType(int ncid, int varId, const StdSize* start, const StdSize* count, const T* data) 
    113120  { 
     121    CMemChecker::get("NetCDF get/put").resume(); 
    114122    int status = ncPutVaraType(ncid, varId, start, count, data); 
    115123    if (NC_NOERR != status) 
     
    123131      throw CNetCdfException(sstr.str()); 
    124132    } 
    125  
     133    CMemChecker::get("NetCDF get/put").suspend(); 
     134     
    126135    return status; 
    127136  } 
  • XIOS2/trunk/src/node/context.cpp

    r2253 r2428  
    1515#include "xios_spl.hpp" 
    1616#include "timer.hpp" 
     17#include "mem_checker.hpp" 
    1718#include "memtrack.hpp" 
    1819#include <limits> 
     
    701702   TRY 
    702703   { 
     704    CMemChecker::logMem( "CContext::closeDefinition" ); 
    703705    CTimer::get("Context : close definition").resume() ; 
    704706    postProcessingGlobalAttributes(); 
     
    729731    } 
    730732    CTimer::get("Context : close definition").suspend() ; 
     733    CMemChecker::logMem( "CContext::closeDefinition_END" ); 
    731734   } 
    732735   CATCH_DUMP_ATTR 
     
    19761979          garbageCollector.invalidate(calendar->getCurrentDate()); 
    19771980        } 
     1981        CMemChecker::logMem( "CContext::updateCalendar_"+std::to_string(step) ); 
    19781982      } 
    19791983      else if (prevStep == step) 
  • XIOS2/trunk/src/server.cpp

    r2029 r2428  
    1313#include "tracer.hpp" 
    1414#include "timer.hpp" 
     15#include "mem_checker.hpp" 
    1516#include "event_scheduler.hpp" 
    1617#include "string_tools.hpp" 
     
    423424      MPI_Comm_free(&intraComm); 
    424425 
     426      CMemChecker::logMem( "CServer::finalize", true ); 
    425427      if (!is_MPI_Initialized) 
    426428      { 
     
    432434      report(0)<<"Performance report : Ratio : "<<CTimer::get("Process events").getCumulatedTime()/CTimer::get("XIOS server").getCumulatedTime()*100.<<"%"<<endl  ; 
    433435      report(100)<<CTimer::getAllCumulatedTime()<<endl ; 
     436      report(100)<<CMemChecker::getAllCumulatedMem()<<endl ; 
    434437    } 
    435438 
Note: See TracChangeset for help on using the changeset viewer.