Jump to content
The simFlight Network Forums
airforce2

Performance degradation with FS2004+FSUIPC on Intel HT CPU

Recommended Posts

Pete;

I just dropped in a 3.06 GHz hyperthreading CPU into my system...had the most unpleasant surprise of seeing a sizeable decrease in performance compared to the Intel 2.8 GHz (non HT) that preceded it.

I found this article in my research.

http://support.microsoft.com/default.aspx?scid=kb;en-us;815227

It says that there's a known bug in the UnMapViewOfFile function in the WinXP kernel that causes performance degradation in Windows XP machines with SP1 installed and multiple logical processors (hyperthreading or SMP). As I recall, FSUIPC uses file mapped views.

I'm calling Microsoft tomorrow to discuss the fix...not sure why, rather than posting the fix, they post a KB article that says "call us." Grrrr

Regards

Share this post


Link to post
Share on other sites

It says that there's a known bug in the UnMapViewOfFile function in the WinXP kernel that causes performance degradation in Windows XP machines with SP1 installed and multiple logical processors (hyperthreading or SMP). As I recall, FSUIPC uses file mapped views.

Yes, when it is being used via IPC from an external program. Each call from an external program needs data transferring. The system for this, designed by Adam Szofran way back in FS95 days, uses a memory mapped file. When FSUIPC receives a message from a program is has to Map a view of that file into its memory, and when it has finished obeying the data therein, it Unmaps that view, as you say.

Is the slow down you've noticed only when an external program is accessing FS frequently? There should be no effect whatsoever with nothing interfacing to FS.

I'm calling Microsoft tomorrow to discuss the fix...not sure why, rather than posting the fix, they post a KB article that says "call us." Grrrr

Please keep us informed -- I've not yet upgraded from my 2.4Gb P4, but it sounds like I should go for an Athlon 3200 next time, rather than Intel?

Regards,

Pete

Share this post


Link to post
Share on other sites

I'm reaching the end of a very frustrating 3-day weekend here...

Microsoft support was of no help...the quasi-literate dipweed that answered the support call Friday morning didn't send the hotfix to me all day Friday despite multiple e-mail contacts...in fact I've gotten it, but not from them. It made no discernable difference in performance in the first attempt, and subsequent experimentation with the HT CPU resulted in an OS meltdown that resulted in eventual complete re-installation of the OS and probably 75 applications on my primary PC. Thankfully I am fairly disciplined in backup habits, so I lost very little other than the 2 days to recover things back to a useable configuration.

After reinstalling Win XP from scratch with the HT CPU in from the begining, I'm seeing ~25 fps in clear wx, 12 in stormy (the worst for wx here so far). That's with HYPErthreading disabled in the BIOS. Frame rates are nearly halved with HT turned on. I did some other experimenting with CPU-intensive applications other than FS, and HT failed equally miserably there. It seems to help in cases where multiple threads run with relatively low processor loading and paging activity. The performance drop is probably due to bottlenecks in the L2 cache or other hardware chokepoints that both virtual CPUs are hitting.

Anyway, as far as I'm concerned, HYPErthreading is little more than a lot of HYPE, with nothing to recommend it to the flight simmer. And decorum prohibits me from posting my thoughts about Microsoft's customer...ummm...support (?).

I need a beer.

Cheers

Share this post


Link to post
Share on other sites

After reinstalling Win XP from scratch with the HT CPU in from the begining, I'm seeing ~25 fps in clear wx, 12 in stormy (the worst for wx here so far). That's with HYPErthreading disabled in the BIOS. Frame rates are nearly halved with HT turned on. I did some other experimenting with CPU-intensive applications other than FS, and HT failed equally miserably there. It seems to help in cases where multiple threads run with relatively low processor loading and paging activity. The performance drop is probably due to bottlenecks in the L2 cache or other hardware chokepoints that both virtual CPUs are hitting.

Sorry to hear about your woes. Would you now recommend Athlon's as the more likely power house for FS then? What you've said has made me very nervous about getting Intel for my next big upgrade, which I was hoping to do in September.

Can you clarify which chipset your mobo uses? Do you know if the problem is specifically processor -- could it be different with different chipsets (i.e. motherboards)?

Regards,

Pete

Share this post


Link to post
Share on other sites

Pete;

I don't dislike Intel CPUs, but I do think the HYPErthreading is a non-factor for FS. With the HT disabled in BIOS, it's still a very fast CPU. I took an existing machine with a 2.8GHz non-HT CPU and dropped in a 3.06 GHz HT one. Although the found hardware wizard detected and loaded some drivers for the new CPU, it performed poorly...I doubt all the necessary support drivers were loaded correctly that way.

The PC, when configured with a fresh install of WinXP, beginning at the outset with the HT CPU installed, is very stable and performs at par with a ~9% faster CPU. It's the major butt pain of reinstalling everything and recreating the config that made it so painful. If you're starting from a clean HDD, I think you'll be OK. I don't mess with AMD stuff much...a number of friends have had issues with them--they tend to be finicky about which RAM modules work, as well as real heat-monsters. The prevalence of Via chipsets on AMD boards is also troubling--their drivers have left me wanting before.

The mobo in question is a Gigabyte 8IHXP with an Intel 850E chipset plus 1 GB 1066MHz RDRAM. The 2.8 GHz CPU went into a new Gigabyte mobo with an i865G chipset...so far, so good with that one and 1 GB of dual-channel 333MHz SDRAM.

Cheers

Share this post


Link to post
Share on other sites

The repair XP option didn't helped? Last time I upgraded use it and it was a relief since didn't needed to re install anything. It just wiped out all XP instalation leaving the applications intact.

José

Share this post


Link to post
Share on other sites

Nope, the repair install was the first thing I tried. After that I got a BSD telling me I had an INTERNAL_VOLTAGE_ERROR problem on the mobo...never was able to resuscitate XP after that.

Cheers

Share this post


Link to post
Share on other sites

Never studied a HYPErthreading processor but translating what happens in the MP 1.4 to this new technology. Is it possible that the virtual processors had an unbalanced load? do the FS9 threads go all for 1 of the processors? That could explain the FR hit with HYPErthreading.

José

Share this post


Link to post
Share on other sites

I'm no expert on CPU performance or chipset architecture, but I would be interested to know if this is still a problem with an 875P motherboard.

It seems to make sense to me that if you're going to put the latest chip into your machine the motherboard should match it to make sure you get ultimate performance. Just because your old motherboard can take it, might not mean it can provide all the resources the new CPU needs.

Share this post


Link to post
Share on other sites

Looking at other benchmarks some multi-threaded apps can achieve upto a 30% performance boost with hyper-threading enabled, but others can suffer a performance drop and actually run slower.

Really depends on the access paterns/contention between the different threads which dictates whether the hyper-threading shows a boost or decline in performance.

Since hyper-threading CPUs arrived before FS2003 was released I'd imagine MS would've done some performance tests on hyper-threaded CPUs.

And if it showed a big performance drop with hyper-threading enabled they would've either tuned/modified their code or they could've resorted to changing their process affinity mask to prevent their threads from trying to use both 'logical' CPUs, i.e. forced all their threads to only execute on the main CPU, which should result in roughly the same performance as disabling hyper-threading in the BIOS.

Does anyone have any FS2003 benchmarks on a hyper-threading system that started with a clean Windows XP install and then tried disabling hyper-threading in the BIOS?

Share this post


Link to post
Share on other sites

I ended up doing a clean install of Win XP after my upgrade disaster. FS2004 frame rates with HT enabled are approximately half the rate with HT enabled, using PMDG panel or one of the stock Cessnas. I saw 8-9 fps with HT on, and 17-18 with it off, all other tings remaining the same.

Cheers

Share this post


Link to post
Share on other sites

That sort of slow down seems like the real worst case.

With hyper-threading enabled run FS2004 and then use Task Manager to set the FS2004's process affinity to just CPU0.

Processes tab in Task Manager and then right click the FS2004 process and select "Set affinity..."

And see whether the frame rates improve.

Any one else with a hyper-threaded CPU who can confirm similiar slowdowns?

Share this post


Link to post
Share on other sites

Done some MS SPY++ on FS9 and it seems that in my processor, not HT There are 13 threads in FS9 but only one as a significant processor time so every thing seems to be contained there.

By what you said it seems that the logical processor in HT are adaptative. If one logical processor is loaded and the other is free the processor gives more resources to the loaded one.

So the load balance it isn't critical and instead it is desirable that the threads belonging to a process should reside in the same processor, I'm not used to HT only MP where load balance is critical.

José

Share this post


Link to post
Share on other sites

[

Sean,

This IS a super hint for anyone with a 3.06 CPU.....I followed your instructions and it works SUPERBLY.....I just about doubled my frame rates and now can run all of the 3D clouds that I want!!

I hope Peter Dowson reads this before he buys one of those other chipsets....stick with Intel Pete!

Regards,

Mel Ott

quote=SeanMcLeod]That sort of slow down seems like the real worst case.

With hyper-threading enabled run FS2004 and then use Task Manager to set the FS2004's process affinity to just CPU0.

Processes tab in Task Manager and then right click the FS2004 process and select "Set affinity..."

And see whether the frame rates improve.

Any one else with a hyper-threaded CPU who can confirm similiar slowdowns?

Share this post


Link to post
Share on other sites

This IS a super hint for anyone with a 3.06 CPU.....I followed your instructions and it works SUPERBLY.....I just about doubled my frame rates and now can run all of the 3D clouds that I want!!

I hope Peter Dowson reads this before he buys one of those other chipsets....stick with Intel Pete!

Actually I'm hedging my bets. I've got two PCs I want to upgrade -- one I use with the Parhelia for airliner flying, and another with the Aerosoft GA28R which I use for VFR flights in a Piper. I can't easily use the same system for both because the equipment (the huge GA28R versus all that PFC Jetliner stuff) is too heavy! :o

I was thinking of getting a complete new system and shuffling the others down one. The "weakest" (an Athlon 700) then sort of falls off the end and goes to a relative! :)

But, I've been pricing things up and decided I can do it all by merely replacing motherboard, processor and memory, and do both the IFR and VFR systems together for much less than a complete new system!

So, I'm looking at these two upgrades:

IFR (with Parhelia):

P4 3.2GHz with 800 MHz FSB, MSI 875P Neo IS2R mobo, with

2 x 512Mb PC3200 memory, matched pair for dual channel access.

VFR (with nVidia Ti 4600):

Athlon 3200+ with 400 MHz FSB, Asus A7N8X Deluxe Rev 2 mobo,

also with 2 x 512Mb PC3200 memory, matched pair, dual channel

These would replace a P4 2.4GHz and Athlon 1800+ respectively. As far as I can tell from reading through all the reviews these motherboards and RAM configurations are the fastest you can get at present.

Problem at present is the Athlon 3200+ -- I can only get the 333MHz FSB version. The others are on a "long lead time". So maybe I'll only upgrade the one for now.

And I will take note of the business of processor "affinity". Thanks!

Regards,

Pete

Share this post


Link to post
Share on other sites

Just to jump in here, Yes whilst the INTEL chips are on paper, and in some teste faster. Dont beleive the hype. I had/have a 3.20Ghz Hyper threaded CPU with a TI4400, and performance was good, but nothing so special to write home about. I took the plunge and got an Athlon 2800+ And a Via/Asus KT400 MoBo. All I can say performance is better, whilst the Intel is faster on paper, it can not match the sheer Floating Point, and RAW Horse power of the Athlon -XP, Core. Lets not forget SSE2, is being used heavily and DirectX uses SSE2 aswell. If you look at the Intel's They are trying to add another half assed processor, to gain speed. The fastest Athlon is 3300+ but actually only clocked at 2.8Ghz, why?, well because:

1) AMD probley cant get the closk speed - heat ratio right.

2) the FPU and Horse Power, makes up for it.

Im not saying AMD's are better, but FS uses a lot of persion maths FPU, and only a look on the most authoritve hardware sites will proove that AMD cant be toped in that Area.

Again im not saying that AMD'S are better because they are not, but you must take in to account that AMD Processors, are Dynimate in some areas, and even though the CPU is mostly inferior to Intels, there are some things its just King at, and IMHO FS is one of them.

Share this post


Link to post
Share on other sites

Sean;

The select affinity setting in task manager is a wonder cure. To top that, I manually select my other running processes (like flight deck companion) to run on the other vCPU. Frames went from 12 to 28 in clear wx with the complex PMDG panel up. A much more elegant solution than shutting down the HT feature...

Thanks!

Share this post


Link to post
Share on other sites

An even better way of constraining FS9 to run on a single virtual CPU on an HT CPU is using the Microsoft IMAGECFG utility (an older NT/2000 utility that works fine in XP -- do a google search). Command syntax (from an MS-DOS Command window):

IMAGECFG -a 0x1 \fs9.exe

This writes a processor affinity mask into the executable. 0x1 specifies virtual CPU 0, 0x2 specifies vCPU 1, and 0x3 uses both 0 & 1 (default). FS will always run on the specified virtual CPU(s) from that point on.

I have done the same to the other utilities I run on the machine while FS is running, only restricting them to the opposite vCPU.

Share this post


Link to post
Share on other sites
An even better way of constraining FS9 to run on a single virtual CPU on an HT CPU is using the Microsoft IMAGECFG utility (an older NT/2000 utility that works fine in XP -- do a google search). Command syntax (from an MS-DOS Command window):

IMAGECFG -a 0x1 \fs9.exe

This writes a processor affinity mask into the executable. 0x1 specifies virtual CPU 0, 0x2 specifies vCPU 1, and 0x3 uses both 0 & 1 (default). FS will always run on the specified virtual CPU(s) from that point on.

I have done the same to the other utilities I run on the machine while FS is running, only restricting them to the opposite vCPU.

Bob,

What is the easiest way to obtain the imagecfg utility?

I mean the easiest way for a nerd like me. Grin.

Regards,

Mel

Share this post


Link to post
Share on other sites

If the performance drop is so severe with HT then I'm suprised MS didn't change the process affinity when FS2004 starts up and detects a HT enabled CPU.

Especially since HT cpus shipped before FS2004 shipped and since pretty much all the new high-end Intel cpus will ship with HT from now on.

It is also possible to tell the difference between a HT setup and a more regular SMP setup and so also possibly only change the process affinity in the HT case if the regular SMP case doesn't show a performance drop.

Share this post


Link to post
Share on other sites
An even better way of constraining FS9 to run on a single virtual CPU on an HT CPU is using the Microsoft IMAGECFG utility (an older NT/2000 utility that works fine in XP -- do a google search).

So far all a Google search turns up for me is the fact that IMAGECFG is provided in the NT SDK and in MS VC++.

Well I've got the "Platform" SDK which is supposed to cover NT too, and I have MSVC++ 5 and 6, and I can't find this utility in either. I've also searched the NT DDK I have, and the MSDN disks.

Looking up IMAGECFG in the MSDN it says it can be found on the NT 4 disk itself, in "Support\Debug\i386". Unforrtunately this doesn't seem to apply to the Win2000 nor WinXP disks. Evidently it's been removed.

Any ideas, please?

Regards,

Pete

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.