Skip to content

[CERN Summer Student Project] TMVA BDT Benchmarking - #231

Merged
guitargeek merged 4 commits into
root-project:masterfrom
xmif1:xmif1_bdt_benchmarking
Sep 3, 2026
Merged

[CERN Summer Student Project] TMVA BDT Benchmarking#231
guitargeek merged 4 commits into
root-project:masterfrom
xmif1:xmif1_bdt_benchmarking

Conversation

@xmif1

@xmif1 xmif1 commented Aug 5, 2021

Copy link
Copy Markdown
Contributor

Includes the header file MakeRandomTTree.h providing a convenience function which facilitates the generation of random TTree instances, based on the random TTree generator in CrossValidationBenchmarks.cxx. If suitable, CrossValidationBenchmarks.cxx may now be modified to use MakeRandomTTree.h

@xmif1 xmif1 changed the title TMVA BDT Benchmarking (Training, CPU benchmarks) [CERN Summer Student Project] TMVA BDT Benchmarking (Training, CPU benchmarks) Aug 5, 2021
@lmoneta lmoneta self-assigned this Aug 5, 2021
@lmoneta
lmoneta self-requested a review August 5, 2021 08:26
@xmif1

xmif1 commented Aug 23, 2021

Copy link
Copy Markdown
Contributor Author

At the present moment, the memory statistics reported are not necessarily correct. For this reason, reporting of such statistics can be turned off.

@xmif1 xmif1 changed the title [CERN Summer Student Project] TMVA BDT Benchmarking (Training, CPU benchmarks) [CERN Summer Student Project] TMVA BDT Benchmarking Aug 23, 2021
xmif1 and others added 4 commits September 3, 2026 22:45
Benchmark the training of TMVA BDT classifiers over a grid of NTrees
and MaxDepth configurations, and their batch inference via
TMVA::Experimental::RReader. Also add the MakeRandomTTree.h header
providing a convenience function to generate random TTree instances,
based on the random TTree generator in CrossValidationBenchmarks.cxx.

This squashes the commits from the CERN summer student project by
Xandru Mifsud, supervised by Lorenzo Moneta (PR root-project#231).
As noted in the original PR, the reported memory statistics were not
necessarily correct: they were sampled only on the first iteration and
then rescaled by the iteration count, which does not measure what the
counter name suggests.
ROOT::EnableImplicitMT() has no effect if implicit multi-threading is
already enabled, so only the very first configuration determined the
size of the thread pool and the thread count axis produced duplicated
measurements. Properly re-enabling IMT per configuration does not help
either: neither the BDT training nor the RReader inference scale with
the IMT pool size at this problem size, so drop the axis instead of
fixing it. This reduces the number of configurations from 160 to 40.
Write the ROOT files produced during the benchmarks to RB_TEMP_FS like
the other benchmarks, drop the unused output file of the testing
benchmark, and skip the testing benchmark with a clear error instead of
crashing if the weight files from the training benchmark are missing.
Also replace a variable-length array, which is not standard C++.
@guitargeek
guitargeek force-pushed the xmif1_bdt_benchmarking branch from 89e7a10 to 8cdaaab Compare September 3, 2026 20:46

@guitargeek guitargeek left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for this summer student work!

@guitargeek
guitargeek merged commit ab84d4c into root-project:master Sep 3, 2026
1 check passed
guitargeek pushed a commit that referenced this pull request Sep 3, 2026
Benchmark the training of TMVA BDT classifiers over a grid of NTrees
and MaxDepth configurations, and their batch inference via
TMVA::Experimental::RReader. Also add the MakeRandomTTree.h header
providing a convenience function to generate random TTree instances,
based on the random TTree generator in CrossValidationBenchmarks.cxx.

This squashes the commits from the CERN summer student project by
Xandru Mifsud, supervised by Lorenzo Moneta (PR #231).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants