Hello,
I wonder if you'd find that turning off hyperthreading would cause both
processes to complete in five minutes?
Hyperthreading is a clever trick to prevent CPU resources from sitting idle,
in some circumstances. When you have two processes which don't require the
same CPU resources (e.g., Splus and Word), hyperthreading lets both of them
execute almost simultaneously. Splus can hog the FPU without entirely
blocking Word. When you have two processes which require the same resources
(e.g., two instances of Splus, which both heavily tax the FPU), they will
contend for those resources, and at best won't slow each other down.
Remember, you really have two CPU's, and hyperthreading doesn't change that.
At best, it can help you use those two more efficiently, and at worst you'll
want to turn it off for some jobs. This could be one of them.
Another possibility would be that the process is I/O bound. Modern CPU's
are usually I/O bound, for most tasks, since MHz has been hyped for sales
purposes, but bandwidth hasn't. If getting stuff in and out of RAM (or
worse yet, on and off the disk)is the bottleneck, then hyperthreading
doesn't matter. I would expect that situation to result in two tasks taking
twice as long. Since you say that the CPU's aren't idling, that doesn't
sound like the case here, but I'm not familiar with the details of the
Windows resource monitors. What are the CPU's busy at? Can you look at the
memory and disk utilization patterns?
I guess that you'll have to identify the bottleneck, and see whether that
second CPU is opening it up or making it tighter.
Some interesting information would be whether your machine uses SDR, DDR or
RDRAM (they have different latency and bandwidth characteristics), what the
bus speed is and whether your code loops tightly on a smidgen of data, or is
pumping gigabytes through the CPU's. Is the computer swapping with one
process? With two? That sort of info might help in guessing about where
the bottleneck lies.
One final thought: could it be that the two instances of Splus are
contending for one copy of some other resource, such as a dll, or standard
output? Again, I'm not very familiar with Windows, so I don't know if
that's a realistic suggestion.
If you get any hard information about what's happening, I'm sure that I'm
not the only one who'd like to hear it.
Good luck!
Nels
-----Original Message-----
From: s-news-owner@lists.biostat.wustl.edu
[mailto:s-news-owner@lists.biostat.wustl.edu]On Behalf Of tomas mann
Sent: Tuesday, July 29, 2003 10:41 AM
To: s-news@lists.biostat.wustl.edu
Subject: [S] Multiple instances of Splus on dual CPU
I am running Splus 6.1 Windows on dual hyperthreaded Xeon 2.8G, MSFT 2000
Advanced Server. When I run 1 instance of Splus, CPU utilization is about
35-40% and only one of the 4 logical CPUs- seems to be engaged (according to
the Task Manager). My job runs for let's say 5 minutes. Now, when I run in
parallel a second instance of Splus and run on it a job identical to the 1st
one, the CPU utilization goes up to 80-100% and all 4 logical CPU-s are
engaged but it still takes 10 minutes (instead of the expected 5) to
complete the 2 identical jobs on the 2 separate instances of Splus???
I did create 2 separate project folders for the 2 instances of Splus...
Any insight of what is going on and how to "properly" take advantage of the
"extra" CPU capacity?
Thank you , Tomas
_________________________________________________________________
Sign-up for a FREE BT Broadband connection today!
http://www.msn.co.uk/specials/btbroadband
--------------------------------------------------------------------
This message was distributed by s-news@lists.biostat.wustl.edu. To
unsubscribe send e-mail to s-news-request@lists.biostat.wustl.edu with
the BODY of the message: unsubscribe s-news
|