performance issue

Jim Edwards jedwards at ucar.edu
Fri Aug 4 12:32:26 CDT 2023


Yes, _enddef is called only once.

Here
<https://github.com/NCAR/ParallelIO/blob/main/src/clib/pio_getput_int.c#L128>
is the code that writes attributes.  Here
<https://github.com/NCAR/ParallelIO/blob/main/src/clib/pio_darray_int.c#L661>
is where variables are written.

ncoffsets -sg pioperf.2-0256-1.nc
netcdf pioperf.2-0256-1.nc {
// file format: CDF-5

file header:
size   = 7804 bytes
extent = 8192 bytes

dimensions:
dim000001 = 10485762
dim000002 = 58
time = UNLIMITED // (1 currently)

record variables:
double vard0001(time, dim000002, dim000001):
      start file offset =        8192    (0th record)
      end   file offset =  4865401760    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =         388
double vard0002(time, dim000002, dim000001):
      start file offset =  4865401760    (0th record)
      end   file offset =  9730795328    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0003(time, dim000002, dim000001):
      start file offset =  9730795328    (0th record)
      end   file offset = 14596188896    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0004(time, dim000002, dim000001):
      start file offset = 14596188896    (0th record)
      end   file offset = 19461582464    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0005(time, dim000002, dim000001):
      start file offset = 19461582464    (0th record)
      end   file offset = 24326976032    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0006(time, dim000002, dim000001):
      start file offset = 24326976032    (0th record)
      end   file offset = 29192369600    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0007(time, dim000002, dim000001):
      start file offset = 29192369600    (0th record)
      end   file offset = 34057763168    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0008(time, dim000002, dim000001):
      start file offset = 34057763168    (0th record)
      end   file offset = 38923156736    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0009(time, dim000002, dim000001):
      start file offset = 38923156736    (0th record)
      end   file offset = 43788550304    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0010(time, dim000002, dim000001):
      start file offset = 43788550304    (0th record)
      end   file offset = 48653943872    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0011(time, dim000002, dim000001):
      start file offset = 48653943872    (0th record)
      end   file offset = 53519337440    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0012(time, dim000002, dim000001):
      start file offset = 53519337440    (0th record)
      end   file offset = 58384731008    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0013(time, dim000002, dim000001):
      start file offset = 58384731008    (0th record)
      end   file offset = 63250124576    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0014(time, dim000002, dim000001):
      start file offset = 63250124576    (0th record)
      end   file offset = 68115518144    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0015(time, dim000002, dim000001):
      start file offset = 68115518144    (0th record)
      end   file offset = 72980911712    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0016(time, dim000002, dim000001):
      start file offset = 72980911712    (0th record)
      end   file offset = 77846305280    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0017(time, dim000002, dim000001):
      start file offset = 77846305280    (0th record)
      end   file offset = 82711698848    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0018(time, dim000002, dim000001):
      start file offset = 82711698848    (0th record)
      end   file offset = 87577092416    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0019(time, dim000002, dim000001):
      start file offset = 87577092416    (0th record)
      end   file offset = 92442485984    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0020(time, dim000002, dim000001):
      start file offset = 92442485984    (0th record)
      end   file offset = 97307879552    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0021(time, dim000002, dim000001):
      start file offset = 97307879552    (0th record)
      end   file offset =102173273120    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0022(time, dim000002, dim000001):
      start file offset =102173273120    (0th record)
      end   file offset =107038666688    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0023(time, dim000002, dim000001):
      start file offset =107038666688    (0th record)
      end   file offset =111904060256    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0024(time, dim000002, dim000001):
      start file offset =111904060256    (0th record)
      end   file offset =116769453824    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0025(time, dim000002, dim000001):
      start file offset =116769453824    (0th record)
      end   file offset =121634847392    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0026(time, dim000002, dim000001):
      start file offset =121634847392    (0th record)
      end   file offset =126500240960    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0027(time, dim000002, dim000001):
      start file offset =126500240960    (0th record)
      end   file offset =131365634528    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0028(time, dim000002, dim000001):
      start file offset =131365634528    (0th record)
      end   file offset =136231028096    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0029(time, dim000002, dim000001):
      start file offset =136231028096    (0th record)
      end   file offset =141096421664    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0030(time, dim000002, dim000001):
      start file offset =141096421664    (0th record)
      end   file offset =145961815232    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0031(time, dim000002, dim000001):
      start file offset =145961815232    (0th record)
      end   file offset =150827208800    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0032(time, dim000002, dim000001):
      start file offset =150827208800    (0th record)
      end   file offset =155692602368    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0033(time, dim000002, dim000001):
      start file offset =155692602368    (0th record)
      end   file offset =160557995936    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0034(time, dim000002, dim000001):
      start file offset =160557995936    (0th record)
      end   file offset =165423389504    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0035(time, dim000002, dim000001):
      start file offset =165423389504    (0th record)
      end   file offset =170288783072    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0036(time, dim000002, dim000001):
      start file offset =170288783072    (0th record)
      end   file offset =175154176640    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0037(time, dim000002, dim000001):
      start file offset =175154176640    (0th record)
      end   file offset =180019570208    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0038(time, dim000002, dim000001):
      start file offset =180019570208    (0th record)
      end   file offset =184884963776    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0039(time, dim000002, dim000001):
      start file offset =184884963776    (0th record)
      end   file offset =189750357344    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0040(time, dim000002, dim000001):
      start file offset =189750357344    (0th record)
      end   file offset =194615750912    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0041(time, dim000002, dim000001):
      start file offset =194615750912    (0th record)
      end   file offset =199481144480    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0042(time, dim000002, dim000001):
      start file offset =199481144480    (0th record)
      end   file offset =204346538048    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0043(time, dim000002, dim000001):
      start file offset =204346538048    (0th record)
      end   file offset =209211931616    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0044(time, dim000002, dim000001):
      start file offset =209211931616    (0th record)
      end   file offset =214077325184    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0045(time, dim000002, dim000001):
      start file offset =214077325184    (0th record)
      end   file offset =218942718752    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0046(time, dim000002, dim000001):
      start file offset =218942718752    (0th record)
      end   file offset =223808112320    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0047(time, dim000002, dim000001):
      start file offset =223808112320    (0th record)
      end   file offset =228673505888    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0048(time, dim000002, dim000001):
      start file offset =228673505888    (0th record)
      end   file offset =233538899456    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0049(time, dim000002, dim000001):
      start file offset =233538899456    (0th record)
      end   file offset =238404293024    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0050(time, dim000002, dim000001):
      start file offset =238404293024    (0th record)
      end   file offset =243269686592    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0051(time, dim000002, dim000001):
      start file offset =243269686592    (0th record)
      end   file offset =248135080160    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0052(time, dim000002, dim000001):
      start file offset =248135080160    (0th record)
      end   file offset =253000473728    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0053(time, dim000002, dim000001):
      start file offset =253000473728    (0th record)
      end   file offset =257865867296    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0054(time, dim000002, dim000001):
      start file offset =257865867296    (0th record)
      end   file offset =262731260864    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0055(time, dim000002, dim000001):
      start file offset =262731260864    (0th record)
      end   file offset =267596654432    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0056(time, dim000002, dim000001):
      start file offset =267596654432    (0th record)
      end   file offset =272462048000    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0057(time, dim000002, dim000001):
      start file offset =272462048000    (0th record)
      end   file offset =277327441568    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0058(time, dim000002, dim000001):
      start file offset =277327441568    (0th record)
      end   file offset =282192835136    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0059(time, dim000002, dim000001):
      start file offset =282192835136    (0th record)
      end   file offset =287058228704    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0060(time, dim000002, dim000001):
      start file offset =287058228704    (0th record)
      end   file offset =291923622272    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0061(time, dim000002, dim000001):
      start file offset =291923622272    (0th record)
      end   file offset =296789015840    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0062(time, dim000002, dim000001):
      start file offset =296789015840    (0th record)
      end   file offset =301654409408    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0063(time, dim000002, dim000001):
      start file offset =301654409408    (0th record)
      end   file offset =306519802976    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double vard0064(time, dim000002, dim000001):
      start file offset =306519802976    (0th record)
      end   file offset =311385196544    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
}

 ncoffsets -sg run/
SMS_D_Ln9.mpasa7p5_mpasa7p5_mg17.QPC6.derecho_intel.cam-outfrq9s.20230726_094231_iz24v6.cam.h0.0001-01-01-03600.nc
netcdf run/
SMS_D_Ln9.mpasa7p5_mpasa7p5_mg17.QPC6.derecho_intel.cam-outfrq9s.20230726_094231_iz24v6.cam.h0.0001-01-01-03600.nc
{
// file format: CDF-5

file header:
size   = 20620 bytes
extent = 16777216 bytes

dimensions:
ncol = 10485762
time = UNLIMITED // (1 currently)
nbnd = 2
chars = 8
lev = 58
ilev = 59

fixed-size variables:
double lat(ncol):
      start file offset =    16777216
      end   file offset =   100663312
      size in bytes     =    83886096
      gap from prev var =    16756596
double lon(ncol):
      start file offset =   100663312
      end   file offset =   184549408
      size in bytes     =    83886096
      gap from prev var =           0
double areawt(ncol):
      start file offset =   184549408
      end   file offset =   268435504
      size in bytes     =    83886096
      gap from prev var =           0
double area(ncol):
      start file offset =   268435504
      end   file offset =   352321600
      size in bytes     =    83886096
      gap from prev var =           0
double lev(lev):
      start file offset =   352321600
      end   file offset =   352322064
      size in bytes     =         464
      gap from prev var =           0
double ilev(ilev):
      start file offset =   352322064
      end   file offset =   352322536
      size in bytes     =         472
      gap from prev var =           0
int    ndbase:
      start file offset =   352322536
      end   file offset =   352322540
      size in bytes     =           4
      gap from prev var =           0
int    nsbase:
      start file offset =   352322540
      end   file offset =   352322544
      size in bytes     =           4
      gap from prev var =           0
int    nbdate:
      start file offset =   352322544
      end   file offset =   352322548
      size in bytes     =           4
      gap from prev var =           0
int    nbsec:
      start file offset =   352322548
      end   file offset =   352322552
      size in bytes     =           4
      gap from prev var =           0
int    mdt:
      start file offset =   352322552
      end   file offset =   352322556
      size in bytes     =           4
      gap from prev var =           0

record variables:
double time(time):
      start file offset =   352322556    (0th record)
      end   file offset =   352322564    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
int    date(time):
      start file offset =   352322564    (0th record)
      end   file offset =   352322568    (0th record)
      size in bytes     =           4    (of one record)
      gap from prev var =           0
int    datesec(time):
      start file offset =   352322568    (0th record)
      end   file offset =   352322572    (0th record)
      size in bytes     =           4    (of one record)
      gap from prev var =           0
double time_bnds(time, nbnd):
      start file offset =   352322572    (0th record)
      end   file offset =   352322588    (0th record)
      size in bytes     =          16    (of one record)
      gap from prev var =           0
char   date_written(time, chars):
      start file offset =   352322588    (0th record)
      end   file offset =   352322596    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
char   time_written(time, chars):
      start file offset =   352322596    (0th record)
      end   file offset =   352322604    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
int    ndcur(time):
      start file offset =   352322604    (0th record)
      end   file offset =   352322608    (0th record)
      size in bytes     =           4    (of one record)
      gap from prev var =           0
int    nscur(time):
      start file offset =   352322608    (0th record)
      end   file offset =   352322612    (0th record)
      size in bytes     =           4    (of one record)
      gap from prev var =           0
double co2vmr(time):
      start file offset =   352322612    (0th record)
      end   file offset =   352322620    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
double ch4vmr(time):
      start file offset =   352322620    (0th record)
      end   file offset =   352322628    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
double n2ovmr(time):
      start file offset =   352322628    (0th record)
      end   file offset =   352322636    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
double f11vmr(time):
      start file offset =   352322636    (0th record)
      end   file offset =   352322644    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
double f12vmr(time):
      start file offset =   352322644    (0th record)
      end   file offset =   352322652    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
double sol_tsi(time):
      start file offset =   352322652    (0th record)
      end   file offset =   352322660    (0th record)
      size in bytes     =           8    (of one record)
      gap from prev var =           0
int    nsteph(time):
      start file offset =   352322660    (0th record)
      end   file offset =   352322664    (0th record)
      size in bytes     =           4    (of one record)
      gap from prev var =           0
double ADRAIN(time, lev, ncol):
      start file offset =   352322664    (0th record)
      end   file offset =  5217716232    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double ADSNOW(time, lev, ncol):
      start file offset =  5217716232    (0th record)
      end   file offset = 10083109800    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double ANRAIN(time, lev, ncol):
      start file offset = 10083109800    (0th record)
      end   file offset = 14948503368    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double ANSNOW(time, lev, ncol):
      start file offset = 14948503368    (0th record)
      end   file offset = 19813896936    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double AQRAIN(time, lev, ncol):
      start file offset = 19813896936    (0th record)
      end   file offset = 24679290504    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double AQSNOW(time, lev, ncol):
      start file offset = 24679290504    (0th record)
      end   file offset = 29544684072    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double AREI(time, lev, ncol):
      start file offset = 29544684072    (0th record)
      end   file offset = 34410077640    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double AREL(time, lev, ncol):
      start file offset = 34410077640    (0th record)
      end   file offset = 39275471208    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double AWNC(time, lev, ncol):
      start file offset = 39275471208    (0th record)
      end   file offset = 44140864776    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double AWNI(time, lev, ncol):
      start file offset = 44140864776    (0th record)
      end   file offset = 49006258344    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double CCN3(time, lev, ncol):
      start file offset = 49006258344    (0th record)
      end   file offset = 53871651912    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double CLDICE(time, lev, ncol):
      start file offset = 53871651912    (0th record)
      end   file offset = 58737045480    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double CLDLIQ(time, lev, ncol):
      start file offset = 58737045480    (0th record)
      end   file offset = 63602439048    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double CLOUD(time, lev, ncol):
      start file offset = 63602439048    (0th record)
      end   file offset = 68467832616    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double CLOUDCOVER_CLUBB(time, lev, ncol):
      start file offset = 68467832616    (0th record)
      end   file offset = 73333226184    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double CLOUDFRAC_CLUBB(time, lev, ncol):
      start file offset = 73333226184    (0th record)
      end   file offset = 78198619752    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double CONCLD(time, lev, ncol):
      start file offset = 78198619752    (0th record)
      end   file offset = 83064013320    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DCQ(time, lev, ncol):
      start file offset = 83064013320    (0th record)
      end   file offset = 87929406888    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DMS(time, lev, ncol):
      start file offset = 87929406888    (0th record)
      end   file offset = 92794800456    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DTCOND(time, lev, ncol):
      start file offset = 92794800456    (0th record)
      end   file offset = 97660194024    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DTV(time, lev, ncol):
      start file offset = 97660194024    (0th record)
      end   file offset =102525587592    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DTWR_DMS(time, lev, ncol):
      start file offset =102525587592    (0th record)
      end   file offset =107390981160    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DTWR_H2O2(time, lev, ncol):
      start file offset =107390981160    (0th record)
      end   file offset =112256374728    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DTWR_H2SO4(time, lev, ncol):
      start file offset =112256374728    (0th record)
      end   file offset =117121768296    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DTWR_SO2(time, lev, ncol):
      start file offset =117121768296    (0th record)
      end   file offset =121987161864    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double DTWR_SOAG(time, lev, ncol):
      start file offset =121987161864    (0th record)
      end   file offset =126852555432    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double FICE(time, lev, ncol):
      start file offset =126852555432    (0th record)
      end   file offset =131717949000    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double FREQI(time, lev, ncol):
      start file offset =131717949000    (0th record)
      end   file offset =136583342568    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double FREQL(time, lev, ncol):
      start file offset =136583342568    (0th record)
      end   file offset =141448736136    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double FREQR(time, lev, ncol):
      start file offset =141448736136    (0th record)
      end   file offset =146314129704    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double FREQS(time, lev, ncol):
      start file offset =146314129704    (0th record)
      end   file offset =151179523272    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double H2O(time, lev, ncol):
      start file offset =151179523272    (0th record)
      end   file offset =156044916840    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double H2O2(time, lev, ncol):
      start file offset =156044916840    (0th record)
      end   file offset =160910310408    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double H2SO4(time, lev, ncol):
      start file offset =160910310408    (0th record)
      end   file offset =165775703976    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double ICIMR(time, lev, ncol):
      start file offset =165775703976    (0th record)
      end   file offset =170641097544    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double ICWMR(time, lev, ncol):
      start file offset =170641097544    (0th record)
      end   file offset =175506491112    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double IWC(time, lev, ncol):
      start file offset =175506491112    (0th record)
      end   file offset =180371884680    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double NUMICE(time, lev, ncol):
      start file offset =180371884680    (0th record)
      end   file offset =185237278248    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double NUMLIQ(time, lev, ncol):
      start file offset =185237278248    (0th record)
      end   file offset =190102671816    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double NUMRAI(time, lev, ncol):
      start file offset =190102671816    (0th record)
      end   file offset =194968065384    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double NUMSNO(time, lev, ncol):
      start file offset =194968065384    (0th record)
      end   file offset =199833458952    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double OMEGA(time, lev, ncol):
      start file offset =199833458952    (0th record)
      end   file offset =204698852520    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double OMEGAT(time, lev, ncol):
      start file offset =204698852520    (0th record)
      end   file offset =209564246088    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double PDEL(time, lev, ncol):
      start file offset =209564246088    (0th record)
      end   file offset =214429639656    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double PMID(time, lev, ncol):
      start file offset =214429639656    (0th record)
      end   file offset =219295033224    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double Q(time, lev, ncol):
      start file offset =219295033224    (0th record)
      end   file offset =224160426792    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double QRL(time, lev, ncol):
      start file offset =224160426792    (0th record)
      end   file offset =229025820360    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double QRS(time, lev, ncol):
      start file offset =229025820360    (0th record)
      end   file offset =233891213928    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RAINQM(time, lev, ncol):
      start file offset =233891213928    (0th record)
      end   file offset =238756607496    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RCMINLAYER_CLUBB(time, lev, ncol):
      start file offset =238756607496    (0th record)
      end   file offset =243622001064    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RCMTEND_CLUBB(time, lev, ncol):
      start file offset =243622001064    (0th record)
      end   file offset =248487394632    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RCM_CLUBB(time, lev, ncol):
      start file offset =248487394632    (0th record)
      end   file offset =253352788200    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RELHUM(time, lev, ncol):
      start file offset =253352788200    (0th record)
      end   file offset =258218181768    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RELVAR(time, lev, ncol):
      start file offset =258218181768    (0th record)
      end   file offset =263083575336    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RHO_CLUBB(time, lev, ncol):
      start file offset =263083575336    (0th record)
      end   file offset =267948968904    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RIMTEND_CLUBB(time, lev, ncol):
      start file offset =267948968904    (0th record)
      end   file offset =272814362472    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RTM_CLUBB(time, lev, ncol):
      start file offset =272814362472    (0th record)
      end   file offset =277679756040    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RTP2_ZT_CLUBB(time, lev, ncol):
      start file offset =277679756040    (0th record)
      end   file offset =282545149608    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double RVMTEND_CLUBB(time, lev, ncol):
      start file offset =282545149608    (0th record)
      end   file offset =287410543176    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double SNOWQM(time, lev, ncol):
      start file offset =287410543176    (0th record)
      end   file offset =292275936744    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double SO2(time, lev, ncol):
      start file offset =292275936744    (0th record)
      end   file offset =297141330312    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double SOAE(time, lev, ncol):
      start file offset =297141330312    (0th record)
      end   file offset =302006723880    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double SOAG(time, lev, ncol):
      start file offset =302006723880    (0th record)
      end   file offset =306872117448    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
double STEND_CLUBB(time, lev, ncol):
      start file offset =306872117448    (0th record)
      end   file offset =311737511016    (0th record)
      size in bytes     =  4865393568    (of one record)
      gap from prev var =           0
}

On Fri, Aug 4, 2023 at 10:35 AM Wei-Keng Liao <wkliao at northwestern.edu>
wrote:

> Can you run command "ncoffsets -sg file.nc" that shows the sizes of file
> header
> and all variables? For the cesm case, is _enddef called only once?
>
> Could you also point me to the program files that call PnetCDF APIs,
> including
> writing attributes and variables?
>
>
> Wei-keng
>
> On Aug 4, 2023, at 11:05 AM, Jim Edwards <jedwards at ucar.edu> wrote:
>
> I am using the new ncar system, derecho
> <https://urldefense.com/v3/__https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwigtcytrsOAAxWXHjQIHVoDD6YQFnoECBcQAQ&url=https*3A*2F*2Farc.ucar.edu*2Fknowledge_base*2F74317833&usg=AOvVaw2aXlWuOfLnua7fFmIgvfoV&opi=89978449__;JSUlJSU!!Dq0X2DkFhyF93HkjWTBQKhk!Xq6u5krREolkIRHG8AL2taDCmg6HsEdgcEoviUVyzqUINi-ipPM1EhtMcJkQfUYghDhutn7DfH5Wjm57wJ9lQhc$>,
> which has a lustre parallel file system.
>
> Looking at the difference between the two headers below makes me wonder if
> the issue is with variable attributes?
>
>
> snip
>
>
> On Fri, Aug 4, 2023 at 9:39 AM Wei-Keng Liao <wkliao at northwestern.edu>
> wrote:
>
>> Hi, Jim
>>
>> Can your provide the test program and the file header dumped by "ncdump
>> -h", if that is available?
>> Also, what machine was used in the tests and its the parallel file system
>> configuration is?
>> These can help diagnose.
>>
>> Wei-keng
>>
>> On Aug 4, 2023, at 8:49 AM, Jim Edwards <jedwards at ucar.edu> wrote:
>>
>> I am using ncmpi_iput_varn and ncmpi_wait_all to write output from my
>> model.   I have a test program that does nothing but test the
>> performance of the write operation.   Attached is a plot of performance
>> in the model and in the standalone application.   I'm looking for
>> clues as to why the model performance is scaling so badly with the number
>> of variables but the standalone program performance is fine.
>>
>>
>>
>> --
>> Jim Edwards
>>
>> CESM Software Engineer
>> National Center for Atmospheric Research
>> Boulder, CO
>> <Screenshot 2023-07-27 at 11.49.03 AM.png>
>>
>>
>>
>
> --
> Jim Edwards
>
> CESM Software Engineer
> National Center for Atmospheric Research
> Boulder, CO
>
>
>

-- 
Jim Edwards

CESM Software Engineer
National Center for Atmospheric Research
Boulder, CO
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/parallel-netcdf/attachments/20230804/1cded514/attachment-0001.html>


More information about the parallel-netcdf mailing list