XP Pro and Hyperthreading

S

Steve

We recently got two new PCs (P4, Intel 865, FX5200 dual monitor, XP Pro) for
software development. After loading VS2003 and our project's code on the new
machines, we noticed several performance problems with the VS IDE and with
our application. Our app., which worked fine on our older, slower P4 running
Win2K, runs extremely slow on the new PC, 5-15 seconds to react to mouse
clicks, even longer to redraw the main window after resizing, etc. The VS
IDE just seems to bog down at times. This happens on both new PCs.

After much wondering and head scratching, we disabled hyperthreading in the
BIOS and everything worked fine.

As near as we can tell, the OS is detects when hyperthreading is enabled
(two processors shown in Device Manager), but our app just doesn't seem to
run right unless the hyperthreading is disable. BTW, the app seems to run
OK on a PC with HT and XP Home.

Google and MSDN search didn't turn up anything. We need to find a solution
so our customers on XP don't have to change their BIOS to run our software.
Anybody run into anything like this? Any suggestions?

Steve
 
Y

Yves Leclerc

Are both the PRo and Home all running the same service pack and have all the
updates to XP been applied? Did you install the chipset drivers and if it
is an Intel Chipset, you need the Intel Application Accerlerator software
installed.
 
S

Steve

Yes, both are running SP2 and both used Intel chipsets. From what I can
determine from info on Intel's web site, the correct chipset drivers are
loaded. There is a new verison available, but according to the release
notes, it doesn't seem to be related. Probably wouldn't hurt to get the
newer version, though. Hadn't run across the APplication Accelerator yet.
I'll look around for it.

Steve
 
V

V Green

Steve said:
Yes, both are running SP2 and both used Intel chipsets. From what I can
determine from info on Intel's web site, the correct chipset drivers are
loaded. There is a new verison available, but according to the release
notes, it doesn't seem to be related. Probably wouldn't hurt to get the
newer version, though. Hadn't run across the APplication Accelerator yet.
I'll look around for it.

You should NOT need to install IAA.

You should NOT require your customers to install it
to get your app to run either. That's bad form.

After you've complied your code, do you still have the
performance probs OUTSIDE of the IDE?
 
S

Steve Clark

I agree we shouldn't need IAA.

We compiled a release version of our application and when run outside the
IDE it still runs VERY slow: mouse clicks, window resizing, repaints take
literally minutes to complete. Seems to almost hang the system: Task Manager
is not updated during this dead time; cannot click on Task Bar, etc.

We tried running things using the on board video adaptor but got the same
poor performance.

This is all very puzzling since the application seems to run OK on my PC at
home which has a P4 on an Intel 915 motherboard with hyperthreading enabled,
running XP Home.

Just a wild thought but is there any way from the application level to turn
off or ignore the hyperthreading?
 
F

frodo

sounds very much like a contention issue. are you using any mutex's in
your code?; is your code multithreaded at all? don't forget about threads
that the runtime may create on your behalf. how about dll's, and the
dll_init() logic, did you review that for concurrency issues?
strategic use of yeild() can often resolve these issues.

the only real hyperthreading API you can access in your app is the
set_process_affinity(), which shouldn't really affect anything.

time for some major debugging! been there, done that! when you finially
discover it, it'll be so obvious you'll kick yourself...

Good Luck...
 
V

V Green

sounds very much like a contention issue. are you using any mutex's in
your code?; is your code multithreaded at all? don't forget about threads
that the runtime may create on your behalf. how about dll's, and the
dll_init() logic, did you review that for concurrency issues?
strategic use of yeild() can often resolve these issues.

the only real hyperthreading API you can access in your app is the
set_process_affinity(), which shouldn't really affect anything.

time for some major debugging! been there, done that! when you finially
discover it, it'll be so obvious you'll kick yourself...

Good Luck...

Completely agree.

While I don't do it for a living, and keep
stuff pretty simple, I have written a few small
apps for myself with VS and they don't misbehave
on my ASUS PC-DL (dual Xeon) system...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top