Sign in to follow this  
MickBz

Hyperthreading and all that Jazz

Recommended Posts

HI,Interesting to read the FSX excuses about dual core/hyperthreadingnot being utilised to the full. SD's (ACES?) say they didn'tknow which way events would go???I'm puzzled? Take my sit. for eg. Running (I won't say "playing")my FS9 and associated addons that I think essential forthe "immersion factor", If I monitor my system, it shows BOTHCPUs being used equally. Maybe at start-up CPU1 is 100%, but fromflight start to end both CPUs are running 60/80% each.So why am I still seeing comments about FSX (and FS9 for that matter)not utilising threads/CPUs??Did the developers never try running 3rd party addons just tohave a peek??Long Live FS9, I too tried FSX but failed to be impressed(In fact I was dismally let down).And thanks to hyperthreading for keeping my fps reasonable.Any one else seen BOTH processors/threads at full bore?H.A.N.D.Intel P4 3.4Ghz Hyper1Gb Cheap RAMATI X850XT AGPCheapest sound card I could BuyCheapest Motherboard I could BuyRuns FS9 boootiful

Share this post


Link to post
Share on other sites
Help AVSIM continue to serve you!
Please donate today!

Well, you're misinterpreting what you're seeing.You don't need a multi-threaded process to have the single process thread swapped between CPUs (or virtual CPUs, as is the case with your HT CPU). In fact, having FS9 swapping back/forth is not enhancing your performance. HT is not "keeping your fps reasonable."FS9 will run faster when constrained to a single CPU, but you can get gains by putting peripheral processes, like ActiveSky or Radar Contact, onto the secondary CPU/vCPU(s).FSX will likewise run on a multi-CPU machine, with a small amount of its I/O and other housekeeping multithreaded. But to truly take advantage of multiple CPUs requires a great deal of careful attention to parallel process timing and control...not at all a trivial or easy to do thing to do, and not something you would undertake back in 2004-5 before the direction towards multi-core CPUs was as clear as it is now.FSX certainly has its problems, and I do not count myself as a fan. That said, lots of folks like to throw rocks at the development team for their design decisions without a good understanding of the technical issues involved. I'm more unhappy with the testing that failed to uncover the performance deficiencies than any "failure" to completely re-design the FS engine to use my dual core CPU.RegardsBob ScottATP IMEL Gulfstream II-III-IV-VSantiago de Chile

Share this post


Link to post
Share on other sites

Hi,Yes you are correct, as I state, its FS9 PLUS the 3rd parties,being mainly ASV6 and MyTraffic. If I am on the ramp doingnothing, both threads are active the same amount - I take itthat this is the AI planes and weather on most of 1 CPU andFS9 utilising the other (handshaking between the 2 accepted).Having said that - I think the P4 3.4/3.6 era was where thelimits were reached (I have 4 cooling fans in my rig). Dual coreswhere then appearing (1+1=2)?H.A.N.D.

Share this post


Link to post
Share on other sites

>Hi,>>Yes you are correct, as I state, its FS9 PLUS the 3rd>parties,>being mainly ASV6 and MyTraffic. If I am on the ramp doing>nothing, both threads are active the same amount - I take it>that this is the AI planes and weather on most of 1 CPU and>FS9 utilising the other (handshaking between the 2 accepted).>>Having said that - I think the P4 3.4/3.6 era was where the>limits were reached (I have 4 cooling fans in my rig). Dual>cores>where then appearing (1+1=2)?>>>>H.A.N.D.No, the vast majority of what you're seeing is FS9 swapping back/forth between the two virtual CPUs. WinXP is rapidly swapping the FS9 process thread back/forth between the two vCPUs to keep the load more or less equal. ActiveSky only uses a minimal amount of CPU time when FS is running...once the initial load is over it's just updating the wx station parameters in FS9 via FSUIPC. FS is doing the heavy lifting of drawing cloud layers and vis restrictions. You can run a processor usage trace in WinXP's perf monitor on just the AS process and you'll barely see it move off of zero, even in bad wx. And MyTraffic does not run at all with FS9...it is used to write a traffic script for FS before FS is ever run, but *all* the work of simulating the scripted traffic is done by FS itself.Actually, the 65nm dual-core Intel CPUs are significantly faster than a P4, even with Windows constrained to only use a single core. They have a much larger L1/L2 cache, and major improvements in paralleled instruction pipelining...and run much cooler as well. Had Intel gone with a single-core design, it would still be much faster than the 90nm Prescott P-4 or its ancestors.RegardsBob ScottATP IMEL Gulfstream II-III-IV-VSantiago de Chile

Share this post


Link to post
Share on other sites

Bob, I have a P4 3.4 Hyper Thread CPUI have run FS9 (and practically everything else) with the A=Hyper threading engaged and B= feature turned off via BIOS.I can tell you that I have a **3-5 FPS** increase when H.T. is turned on rather than turned off.As a result, I run with H.T. as de facto.Just thought to post this observation.Mitch R.

Share this post


Link to post
Share on other sites

On my system FS9 runs single thread. That's with no add-ons active.Despite what was said above, FS9 is not utilizing anything to do with multi-core or multi-threaded systems. It runs on a single process/thread. WinXP will not swap FS9 between cores unless your FS9 somehow falls "asleep" enough to allow another process to take a significant chunk of the core it's running on. That is unlikely to happen.

Share this post


Link to post
Share on other sites

>Bob, I have a P4 3.4 Hyper Thread CPU>>I have run FS9 (and practically everything else) with the>A=Hyper threading engaged and B= feature turned off via BIOS.>>I can tell you that I have a **3-5 FPS** increase when H.T. is>turned on rather than turned off.>>As a result, I run with H.T. as de facto.>>Just thought to post this observation.>>Mitch R.Mitch; What else are you running along with FS9? I would expect such an increase if you have other processes running that can take advantage of a second (v)CPU, i.e. file indexing service, antivirus, etc. But FS by itself is only running on a single CPU at any given moment in time, so presence of HT is not helping it run faster. Taking a CPU-intensive process off the same (v)CPU that FS runs on may indeed improve things.CheersBob ScottATP IMEL Gulfstream II-III-IV-VSantiago de Chile

Share this post


Link to post
Share on other sites

>On my system FS9 runs single thread. That's with no add-ons>active.>>Despite what was said above, FS9 is not utilizing anything to>do with multi-core or multi-threaded systems. It runs on a>single process/thread. WinXP will not swap FS9 between cores>unless your FS9 somehow falls "asleep" enough to allow another>process to take a significant chunk of the core it's running>on. That is unlikely to happen.Ed, WinXP's executive will indeed move a single-threaded process between cores, even without CPU ute rate going down. If I run FS9 in a very pared-down WinXP environment, I can see the CPU cores both running at ~50-55%, versus one core at 100% and one barely off the zero line with FS constrained to run on a single CPU.The key is not that there are multiple threads, it's that the WinXP executive is shifting the thread between CPUs to attempt load equalization.Now if you're running FS constrained, i.e. used ImageCfg to specify a single CPU in the process mask, you won't see that shifting. Right-click on FS9 in the task manager processes tab...if both 0 and 1 aren't checked, something is constraining it to a single CPU.CheersBob ScottATP IMEL Gulfstream II-III-IV-VSantiago de Chile

Share this post


Link to post
Share on other sites

HiThere is a difference between course grain threading and finegrain threading, and even instruction level pre-fetch. Fine grain threading will occur when a programmerspecifically writes a program to take advantage of multiple CPU/threads on one machine. All "complex" programs can take someadvantage of course grain threading to some extend. Alsothe intel chips/compilers can take advantage of look ahead withinthe machine code to identify what data/etc will be needed in thenext few machine instructions. At some points a CPU does know whatwill happen next (a yes/no branch), so on a multi-thread processorit can do both branches. 1) FS9 and FSX are complex programs which involve many tasks runningas a single thread (ie not written as multi-thread). These includescene generation, hit detection, matrix multiplication for 3D, datafetch, data collate. Ahyperthreaded chip and/or multiple chip can do several things at once. (I have hyperthreading and dual chips - so I have 2 real processors and 4 virtual processors). For example, a big killer forapplications is the wait for memory - this is measured as 100%activity, but the CPU is doing nothing. A dual CPU can issue amemory wait (for data), but process something else (not dependenton that data). The Intel chips have the advantage at the momentover AMD on this very fine level grain threading.2) The CPU usage would measure slightly under 50% for each processorif a process was swapping between each processor. Since I see 100%and 80% on my 2 real processors I am getting 180% * 2.8 Ghz. Alsoan OS (ie XP) really does not like to swap a process, they tendto be sticky to a CPU cos of the overhead of moving all pointersetc. I never see a switch on my processor when running FS9.2.5) Mymachine is not necessarily doing 180% (of a single CPU) on FS9, myguess is that 80% is the overhead of my machine getting really stressed about serving the CPU with data and sending data to the GPUat really high rates. Apart from small amount of instruction pre-fetch (maybe 30% guessing the next instructions)it is most likely that the second processor is soaking up all theoverhead of keeping the other chip supplied with data (mem-waits),GPU/FSB waits, and such like. 3) I don't have a sound card (big mistake), so the other CPU willbe performing all the sound manipulation.4) You try keeping Quicktime and realtime off you computer formore than 2 days. This spamware can be deleted any number oftimes - but comes back.5) I do like to run my antivirus/firewall while connected to broadband,so although they never really figure on the CPU usage, they do soaka couple of % of CPU and do disk requests.Sorry about the long post, but dual processor machines do helpa lot, even if only to keep everything else from interfering withyour enjoyment. I get from 150% to 190% CPU usage over a singleCPU when using FS9. I am getting 40-80 fps on my dual 2.8 with all the scenery set to the right, clouds at 100%. The onlytime the fps drops is at a complex airport with an addon when itbecomes 80%) as it too is having to do memory waitsas the scenery is complex. Last finally, hyperthreading can prevent memory wait blocks sosome extent, if the memory (or disk) does not respond with datathen this thread is stopped, and the same cpu can get on with compute. So if you see a CPU total for multi-processor > 100%then you are see > 100%. Swapping out counts as 0%. RegardsTom

Share this post


Link to post
Share on other sites

>>On my system FS9 runs single thread. That's with no>add-ons>>active.>>>>Despite what was said above, FS9 is not utilizing anything>to>>do with multi-core or multi-threaded systems. It runs on a>>single process/thread. WinXP will not swap FS9 between>cores>>unless your FS9 somehow falls "asleep" enough to allow>another>>process to take a significant chunk of the core it's running>>on. That is unlikely to happen.>>Ed, WinXP's executive will indeed move a single-threaded>process between cores, even without CPU ute rate going down. >If I run FS9 in a very pared-down WinXP environment, I can see>the CPU cores both running at ~50-55%, versus one core at 100%>and one barely off the zero line with FS constrained to run on>a single CPU.>>The key is not that there are multiple threads, it's that the>WinXP executive is shifting the thread between CPUs to attempt>load equalization.>>Now if you're running FS constrained, i.e. used ImageCfg to>specify a single CPU in the process mask, you won't see that>shifting. Right-click on FS9 in the task manager processes>tab...if both 0 and 1 aren't checked, something is>constraining it to a single CPU.>>Cheers>>Bob Scott>ATP IMEL Gulfstream II-III-IV-V>Santiago de Chile>Have to continue to disagree with you Bob. On my system it runs single. There are no affinity restrictions in place.I'd go further to say that if your system is bouncing it between CPUs then your performance is being impacted by it as well. FS9 is a single-thread process. As such there is zero performance improvement for it when it is split by the OS as you're describing.

Share this post


Link to post
Share on other sites

Well, I have:Norton's in the background all the time.I do run file indexing.I also run FS9 always with the following,ASV 6.5A.I. Smooth.I also run FSPassengers, but I think that melds into the FS9 core engine, does it not? That's why I noted it by itself.With H.T. off...FS9 show a 3 to 5 FPS reduction.Mitch

Share this post


Link to post
Share on other sites

Mitch,That's because when you disable H/T you also cripple your OS. Now your system is running a single threaded CPU and all OS processes combined with FS processes run on that single threaded CPU.

Share this post


Link to post
Share on other sites

That's because when you disable H/T you also cripple your OS. Now your system is running a single threaded CPU and all OS processes combined with FS processes run on that single threaded CPU.-----------------------------------------------------------------That's my take as well, Ed.Hyper Threading lets the O.S. 'see' two stand-alone CPU's for code execution. One concrete, the other as virtual.Mitch

Share this post


Link to post
Share on other sites

Hi,Some interesting "theories" here.All I can say that If I do run FS9 on its own(Taking into account I use FSAuto to stopunrequired processes including antivrus)then yes - CPU1 is taking nearly all theload. If I run (via FSAutostart again) FS9AND ASV6 etc. I see a shared load?I've tried the affinity trick but the resultwas worse than leaving it upto XP to manage.So no conclusive arguments here apart fromthe fact the latest Intel duos take the lead - but for how long?H.A.N.D.

Share this post


Link to post
Share on other sites

Well, I can definitely demonstrate load-sharing/thread-swapping behavior when running FS9 on an HT CPU in WinXP.As far as "crippling" the OS with HT off, that's a bit of an overstatement. Keeping in mind that HT virtual CPUs have to share the L1 cache in a pretty inefficient way, running certain kinds of processes on an HT CPU can actually drags things down. One in particular is the 16-bit subsystem.That said, I don't completely shut off HT on my P4 machine...but I do run FS with its affinity mask set to vCPU0, I put AS6 and Radar Contact onto vCPU1, and if WOW16 is running (i.e. with RealityXP Garmins) I set its affinity to vCPU0 as well. YMMV, but it produces improvements to speed and stability here.RegardsBob ScottATP IMEL Gulfstream II-III-IV-VSantiago de Chile

Share this post


Link to post
Share on other sites

FSX can't use dual cores/ultiple cpus/multiple threads because fs2000 cannot. Simple. Same engine, same limitations. So aces is correct in this regard. When they made fs2000, they never expected dual cores+ to be the norm. At the time, only high end servers used multiple cpus and those were cost prohibitive to the average user. For me, FS9/10 runs the same limited to 1 CPU or left alone across the 2.

Share this post


Link to post
Share on other sites

I took Ed's use of the word 'crippling' as probably what he meant---that it reduces XP's efficiency with a H.T.-enabled CPU, if the user chooses not to use that enhanced feature over using XP with a non-H.T. featured CPU.That is what I also subscribe to.Not 'cripple' as in to render a real detrimental performance blow.Right Ed? :)Mitch

Share this post


Link to post
Share on other sites

Correct.As for 16bit... can't remember the last time I ran something so... um... DOS. ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this