Improved benchmarking of compression algorithms - #225
Conversation
I added a new CMake option: experiment-datafiles - that allows to download experiments files (CMS, ATLAS) that are bigger then 1.5 GB
eguiraud
left a comment
There was a problem hiding this comment.
Hi Oksana, looks good except the questions below.
I can't comment on whether the pattern
auto newtree = oldtree->CloneTree();
timer.Start();
newfile->Write();
timer.Stop()
does what we want, but you know better.
The RDF benchmarks look ok as long as we remember that they measure both the writing and the data generation, differently from the other benchmarks.
| double rtime = timer.RealTime(); | ||
| double ctime = timer.CpuTime(); | ||
| // For Run2012B_DoubleMuParked.root: | ||
| float size_mb = 774.619423; |
There was a problem hiding this comment.
these hardcoded values are a bit "scary", can we get them programmatically?
| if(experiment-datafiles) | ||
| # We need to enable download of datafiles from oot.cern.ch | ||
| set(rootbench-datafiles ON CACHE BOOL "Download files from root.cern.ch" FORCE) | ||
| endif() No newline at end of file |
There was a problem hiding this comment.
why do we need a separate option? other files downloaded if rootbench-datafiles is on are not much smaller, and now we have two options that we need to set to get all benchmarks.
if we need the option, why does it imply root-benchdatafiles=ON? it would be simpler to keep them orthogonal - one turns on some benchmarks, the other turns on some other.
if we need the second option, it needs at least to be mentioned in the README.
|
Thank you @oshadura for this work, and apologies for the long silence on it! The improvements proposed here have now landed in two parts, so I'm closing this PR:
The Thanks again for pushing on the compression benchmarking. The ideas here outlived the branch! |
Each compression algorithm is now benchmarked at levels 1, 6 and 9 instead of a single hardcoded level, and the benchmarks report the compressed file size and the throughput of uncompressed input bytes. The benchmarked dataset is also made big enough for the compression to dominate over the fixed snapshot overheads (10 million doubles instead of 100 thousand). The input data is generated only once, so that unlike before, the random number generation does not contribute to the measured time. The output file is now written to RB_TEMP_FS and removed afterwards. This implements the improvements proposed for these benchmarks in PR #225 on top of the current state of the repository.
I added a new CMake option: experiment-datafiles - that allows to download experiments files (CMS, ATLAS) that are bigger then 1.5 GB
I also used these benchmarks for testing FLZMA2 (suggestions are welcomed!)
(this pr replaces #216)