ROOT Version: 6.08.02
Platform: Ubuntu 16.04
Compiler: Not Provided
Hello. I’ve noticed that when running ROOT on my 4 core (8 logical processors) PC laptop with Intel i5 8300H, it never goes above 25% CPU usage. At first I thought that it was only using 1 core, but later noticed that my computer spreads the work load over all cores. I tried PROOF-lite with the assumption that it was using only 1 core for the process, and it didn’t work, which I’m sure is a result of the workload being spread out through all the cores instead of 1.
I also tried to limit ROOT’s CPU usage to only 1 core then use PROOF, but that didn’t work either.
I would understand if ROOT simply doesn’t use all the CPU as I would want, but is there anything I can do? I have a workload that will take many hours to complete, and even up to a full day or two. I would like to be able to speed up the completion of the workload. Any ideas to increase CPU usage by ROOT?
Note: I used the command of “TProof::Open(”")" to activate PROOF, I also tried setting workers equal to different numbers less than 8 and no improvement.
@ganis, perhaps you can help here?
Not sure to understand: a CPU bounded ROOT analysis shows in top up to 100% CPU even in single core and up to N * 100% in PROOF-Lite, with N the number of effective cores of the machine.
Could you please provide an example of what you are doing, showing the problem?
PROOF-Lite started with
TProof::Open("") starts a number of independent processes equal to the number of effective CPUs provided by the machine, probably 8 in your case. Each process uses one of more cores, depending on the nature of code run inside
I’m doing data analysis using TTrees. When running the file normally, ROOT shows (in task manager) to be using less than 25% of the CPU. When I check each core, my computer appears to spread the work load over all the cores too (so even though it’s only using 25%, each core is being utilized). I want to be able to use more than 25% of the CPU. Any ideas for why it is maxed out at 25%?
I noticed that on another PC of mine, which has two cores, ROOT only uses 50% of the CPU and it is spread across both cores like the other PC.
The file is pretty complicated at this point, but I calculate moon and sun positions in the sky, work with a lot of random numbers, and I also add, subtract, multiply, or divide 10+ histograms (part of what makes it take a long time, plus how many times I make those random numbers). It’s a bit long to show here so I attached it for your convenience.
Read_muons2D3.C (37.4 KB)
Also the file requires additional data files which I haven’t included, in case you try to run it.
man top and search for “Irix” and/or “Solaris”.
Google also for “processor affinity”.
I tried running it with Irix mode on (as well as off) and nothing changed. Same less than 25% cpu usage.
And I should clarify that the CPU hangs around 23%, not exactly 25%.
Okay, so I think I’ve figured a way around my problem. I’m still a relative novice with C++ and coding that I didn’t realize how useful multi-threading is in this case. It was just that my program was doing a single thread which made it lower than 25%, so using multi threading I am able to increase it past 25%.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.