sphenix-software-l AT lists.bnl.gov
Subject: sPHENIX discussion of software
List archive
Re: [Sphenix-software-l] Quick study on storage containers
- From: "Huang, Jin" <jhuang AT bnl.gov>
- To: Christof E Roland <cer AT mit.edu>, "sphenix-software-l AT lists.bnl.gov" <sphenix-software-l AT lists.bnl.gov>
- Subject: Re: [Sphenix-software-l] Quick study on storage containers
- Date: Fri, 8 Apr 2022 18:02:37 +0000
Hi Christof and Hugo
Just to share one thought on this:
> we can get rid of maps wherever we can.
Many memory concerns are focused on the map. However, there are two aspects mixed here:
Therefore, before we blame map for memory usage, it appears useful to test the case that
This approach use the cost of memory for (key + pointer)/object to retain the benefit of fast indexing provided by map, and least invasive change to the current code. For continuous keyed objects, we probably want to just switch to vector or TClonesArray
Cheers
Jin
______________________________
Jin HUANG
Physicist, Ph.D. Brookhaven National Laboratory Physics Department, Bldg 510 C Upton, NY 11973-5000
Office: 631-344-5898 Cell: 757-604-9946 ______________________________
-----Original Message-----
Hi,
following our discussion on Tuesday i did a quick study on our storage containers, especially the ones using maps, i.e. the hitsetcontainer. The hitsetcontainer is the construct storing what is, from the reco software point of view, the closest representation of raw data we have defined.
I filled the hitsetcontainer with either 5 k or ~5.5 million fake hits per event and looked at the evolution of the memory footprint of the jobs using the prmon tool. From the difference between the low and high occupancy case I canlculate the job memory "price tag" of storing a hit, i.e. 3 unint32 - 12 bytes.
Storing 5 million extra hits in a std map increases the job memory by 0.5GB. This corresponds to a ~100byte effective memory price tag including all the overhead and pre allocated memory around stl maps.
Using TObjArrays its about 60 byte
For stl vectors its ~14 which, given the precision with which you can read off the GB job memory scale in prmon, is equal to the 12 bytes you expect.
I guess we should investigate to which extend we can get rid of maps wherever we can.
Cheers
Christof
|
-
[Sphenix-software-l] Quick study on storage containers,
Christof E Roland, 04/08/2022
-
Re: [Sphenix-software-l] Quick study on storage containers,
Hugo Pereira Da Costa, 04/08/2022
-
Re: [Sphenix-software-l] Quick study on storage containers,
Christof E Roland, 04/08/2022
-
Re: [Sphenix-software-l] Quick study on storage containers,
Hugo Pereira Da Costa, 04/08/2022
- Re: [Sphenix-software-l] Quick study on storage containers, Christof E Roland, 04/08/2022
-
Re: [Sphenix-software-l] Quick study on storage containers,
Hugo Pereira Da Costa, 04/08/2022
-
Re: [Sphenix-software-l] Quick study on storage containers,
Christof E Roland, 04/08/2022
- Re: [Sphenix-software-l] Quick study on storage containers, Huang, Jin, 04/08/2022
-
Re: [Sphenix-software-l] Quick study on storage containers,
Hugo Pereira Da Costa, 04/08/2022
Archive powered by MHonArc 2.6.24.