I am currently running some performance tests of the ROOT framework using this benchmark and I am encountering unexpected behavior: I have run the queries of the benchmark using various instances sizes on EC2 (all m5d instance sizes, to be precise), which have between 2 and 48 physical cores, and observed that the running time only improves until 8 to 16 cores and gets significantly worse after that (see plot.pdf (378.7 KB)) With some queries, using 48 cores is slower than using just 2 cores.
Is this a known behavior, and if yes, is there an easy fix?
You should be able to fully reproduce what I did the following way: I am using the Docker image from
Docker Hub and GitHub - masonproffitt/opendata-benchmarks: Example repository showing benchmarks with open data. I use the Docker image like so:
docker run --rm \
-v /path/to/benchmark/data/:/data/:ro \
masonproffitt/rdataframe-benchmarks:0.0 \
/root/util/run_benchmark.sh \
-n 3 \
$query_id \
"/data/Run2012B_SingleMu.root" \
true
This assumes that you have downloaded the benchmark data from root://eospublic.cern.ch//eos/root-eos/benchmark/Run2012B_SingleMu.root to /path/to/benchmark/data/ (which should also work on EC2 in case you want to use the same hardware as I did).
ROOT Version: 6.22.08 (via official Docker image rootproject/root:6.22.08-ubuntu20.04)