jump to navigation

2 CPUS, Plots not fast enough! August 2, 2006

Posted by gordonwatts in computers.

I recently got a Dell dual-core system for home. With two processors I figured I could both run jobs that took 100% of one core and still look at email on the other core.

That didn’t last long. First thing I noticed was when I built the code I was running my build environment (MSVC) automatically took advantage of both cores. Wow, that was the fastest build I’d ever seen! But, I found myself annoyed that ROOT, my plotting package, was using only a single core instead of making the plot x2 faster by using both cores (yes, I did some tests, I was CPU bound, not I/O bound)!



1. Mike Procario - August 2, 2006

Did you compile ROOT yourself? Perhaps you need to enable using multiple cores?

2. angryphysics - August 3, 2006

This ROOT package looks interesting. I’d love to hear how it compares to other packages out there.

3. gordonwatts - August 3, 2006

Ohhh, AngryPhysics. You did not ask me that question… Hee Hee. I’ll try to write up a short entry on that. That should be fun!

Mike — I do, as far as I konw there is no multi-core option. But that is a good point, I should check! There are certian parts of root that are already so complex I’d be extra scared if they went multi-threaded!

4. Sean D - August 3, 2006

I hear that while work on making ROOT more multithreaded is progressing, it’s still not the easiest thing in the world to get to work (that’s more or less hearsay, though). I usually end up running a few different ROOT jobs in parallel on my machine, which is when dual processors with hyperthreading comes in handy 🙂 I’d love to hear how you think ROOT compares to other packages out there!

5. gordonwatts - August 4, 2006

I got this in response to this posting. Philippe is one of the big-time authors of root (he is responsible for a lot of the i/o system, lucky guy):

Hi Gordon,

ROOT has support for multi-thread but the histogram or TTree does not make use of it (yet? 🙂 ) by themselves.

One mean to take advantage of the multicore is to use proof to run the query in parallel. _A priori_ one should be able to run a TSelector and run it either in ROOT or via Proof and get the same result (just faster).


And in follow up:
> Can I post your response to the blog? 🙂

Yes 🙂

> What stuff does take advantage of the multi-core stuff?

For now Proof and user code using thread (TThread).

> Can I run proof like that on my windows machine?

You should be able to.

> And what if I’m running on a single file? 😉

The default (changeable) is that a maximum of 4 proof slave can work on the same file system at a time.
Hence you could have 4 slaves look at the same file (different entries in the same TTree), Proof will handle the decomposition of the problem. In other word the decomposition of the problem is done by entry and not by file.


I’m definately going to look into that. 😉

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: