How much memory should be reserved in the PAWC common block to store a Column Wise Ntuple (CWN) ?


The answer has two parts. The first part is independent of the number of events. It consists of the space taken to buffer the columns during runtime. Assume we have a Ntuple with N columns and M events (rows).

           (BSIZE+250)*N+20000  words
 
Where BSIZE is the Ntuple buffer size as can be set via the routine HBSET (default 1024 words).

The second part is taken by the RZ directory structure which contains the keys that describe where the Ntuple extensions are stored (Ntuple extensions are the column memory buffers which are flushed to disk, each extension has a size of BSIZE words). For each key 6 words are needed. The number of keys needed to store M events is dependent on the column packing factor (the higher the packing factor is, the more events fit in a column buffer) and on the BSIZE (the larger is BSIZE the fewer extensions need to be stored). An upper limit is given by the key quota as specified in HROPEN, via IQUEST(10) (don't forget to include the COMMON/QUEST/IQUEST(100) in the routine where you call HROPEN ). Assume you set IQUEST(10)=65000 (the maximum) you will need at maximum:

           65000*6 = 390000  words
 
Following from the above the maximum obtainable file size can easily be determined:
           IQUEST(10)*BSIZE*4  bytes
 
The number of events that can be stored in a file is approximately given by:
           M = IQUEST(10)*BSIZE*packing/N
 
where packing is the average packing factor of all columns (all elements of an array column are stored in the same buffer so they have a very small packing factor).


Release NotesKnown bugsFAQsContributionsTutorialReference manualDown loadMiscellaneous

Paw.Support@cern.ch