Sign in to follow this  
Guest JackDanielsDrinker

FSX and multi-Cores

Recommended Posts

I am wondering why multi-cores have been left alone by ACES during the development of FSX. I read somewhere that they realized by end of 2005 (if I remember correctly) that the industry was heading this way, but on their timetable it was already too late to include this in their development ?!I am quite puzzled by this, especially since FSX appears to be a big software loop doing over and over again a million things. I do not see really where it would be difficult at all to take advantage of multi-cores in this case.In hardware, it's called a pipeline, and it's quite simple : - identify the A to Z main steps done in that big loop - create N smaller loops (let's say 4 for quad-cores), doing : 1. A..G 2. H..M 3. N..T 4. U..Z (and do that intelligently, so that each loop has approximatly the same workload) - each loop hand-over the result of its work to the next one, and starts again - add a bit of synchronization, so that loop 1 doesn't overwhelm the rest of the pipeline - when running on a multi-core, send each one of these loops to a different core.I acknowledge it is simpler to write this post than do it actually for FSX, but all of my background in high-tech/telecoms tells me this should be no big deal for a world class development team.I am hopeful...Dom

Share this post


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

I totally agree with it. But you can be hopeful.Just follow this link:http://blogs.msdn.com/ptaylor/archive/2007...0.aspx#comments...Thanks for keeping us informed.What I an certainly thousands of other FS enthausiasts would like to know is:WILL SP1 SOLVE THE AMD DUAL CORE COMPATIBILITY ISSUE????Can you give us any input on that?Thanks in advance for your response.ManfredFebruary 5, 2007 6:34 AM Phil Taylor said:I dont understand "dual core compatibility". FSX certainly runs on multicore CPUs. It just doesnt take full advantage of them.If you mean, are we working to increase our use of 2nd and more cores, that I understand.We are working on it, but its too early to tell if it will be in the SP.February 5, 2007 1:48 PM ...Dirk

Share this post


Link to post
Share on other sites

I had an opportunity to chat with some of the ACES team members about multi-cores at last September's AVSIM conference. First, it is absolutely incorrect to say that "multi-cores have been left alone by ACES during the development of FSX." The developers put in as much hyperthreading and multi-core support as they could finish at the time of release. Multi-core support is there, and you can see it in Task Manager if you have set things up properly. To be clear, FSX DEFINITELY SUPPORTS MULTIPLE CORES. However, the extent of that support is not what it will ultimately be -- at most, you'll only get about 30% usage from the second core. ACES also experimented with additional hyperthreading in the development of FSX, but the results were not satisfactory and the hyperthreading that didn't work was (obviously) not included in the final release. As Phil Taylor has pointed out in his blog, and other ACES Team members have also confirmed, the developers are trying to expand FSX's use of multiple cores. I know that ACES would like to include more multi-core support in SP1, but I have no clue whether it's going to be possible from a technical/programming standpoint. If additional support is not in SP1, there is a chance it might be included in the DX10 patch -- I just don't know. The assertion that it's "not difficult at all" to rewrite gaming code for dual cores is simply not true. This subject is addressed in a recent interview on gameinformer.com with John Carmack and Todd Hollenshead, the developers of the mega-hit games Quake and Doom. According to Carmack, "... the fundamental problem is that it

Share this post


Link to post
Share on other sites

it is essentially an OS problem. Intel has put forth recently a working architecture with 80 cores and 1 teraflop that cannot be functional, even experimentally, due to to no OS at all able to use it. Multicore (i.e. 2 to n) appears to require a qualitatively different approach to the whole OS thing, which makes it a fundamental research thing, which in turn makes it unpopular as far as financing due to hypothetical and remote profit.

Share this post


Link to post
Share on other sites

>It is also worth asking whether flight simulation will EVER>benefit extensively from multiple cores, and we probably won't>know the answer until FS-Eleven or later, as nearly the entire>FS code may have to be reprogrammed. FS simply may not be an>application that is well-suited to hyperthreading. For FS>users, I expect to see much greater benefit from higher clock>speeds (i.e., the upcoming Intel "Penryn" line of CPUs) than>from dual-cores alone. It was also questionable if anybody would ever use more than 640 Kb internal memory. A knowledgable OS developer at the time said 640 Kb was enough for everyone. Guess what? He was wrong.Sure it is hard. But its not impossible. Valve has invested time and money developing a multi core game engine. They realise there are large benefits if you can provide the first true multicore game engine. Of course in their gaming segment they have a lot of competing products while the civ flightsiming scene is owned by 1 company>Microsoft also faces a serious marketing issue if it relies>too heavily on multi-cores for FS. Where would it leave the>"legacy" base of customers who still use single-core CPUs?As opposed to run badly on existing single cores with no hope in h*ll to get beter performance when you use future multicore technology. Marketng the current FS-X as 'build for the future' is where they have a problem. Currently FS-X is build for the past.>Bottom line: I feel that ACES would like to do everything in>their power to resolve the existing performance issues with>FSX, and multi-cores are probably one part of that solution. >Higher CPU clock speeds may have an even greater positive>impact.So maybe we should write to AMD and Intell to change their current processor road maps and get back to the ever increasing clock speed race. Never mind that memory speeds can't keep up, that heat increases and there are physical stumbling blocks along that road.I don't know if you already experienced that pleasure of a simple dual core but I can guarantee you that after using such a machine you don't want to go back. Multi tasking gets easy. Machine response is almost instant. High clocked single cores is yesterday technology future PCs will have at least 2 cores so it makes sense to program for multi cores. After a short but turbulent time we will get used to programming and developing for multicores. The you cant't make a good game engine on a multicore argument will become just as silly as the 640 Kb memory is enough for everyone statement.

Share this post


Link to post
Share on other sites

As I understand it ACES need some aspects of a real time OS to make the sim run properly, but the thread scheduling mechanism (at least in XP) isn't deterministic enough, so they built what amounts to an RTOS scheduler by using fibers within a single thread.scott s..

Share this post


Link to post
Share on other sites

One of the key elements is that FS 'direction' needs to be locked in about 24 - 30 months before release of the product.24-30 months before the release of FSX multi-core processors were few, expensive and not terribly impressive. The stronger direction was multi-processor machines - which still hold the highend server market.The MS team has stated publicly their best guess was that the technology would not be commercially available at a price most simmers could possibly afford when FSX was released.And they are the first to say they guessed wrong.They faced a decision point about late-2005 - scrap everything and start over - for another 30-48 month development cycle - or finish FSX.You know which side the accountants were on.

Share this post


Link to post
Share on other sites

It is nowhere near that simple. And when using DX9 only 1 thread can issue Draw calls. So you have to go thru the entire Sim engine and find what sort of processing is actually amenable to being forked off on a thread.And the "add a bit of synchronization" drastically understates the difficulty of multithreaded programming.

Share this post


Link to post
Share on other sites

>It is nowhere near that simple. >>And when using DX9 only 1 thread can issue Draw calls. >>So you have to go thru the entire Sim engine and find what>sort of processing is actually amenable to being forked off on>a thread.>>And the "add a bit of synchronization" drastically understates>the difficulty of multithreaded programming.Absolutely - you can tell the people who think this is easy have never had to try and do it for real. I was programming neural network code for multi-processor systems 20 years ago (transputers with Occam) - it wasn't easy then and it isn't easy now. I think that with the move to multi-core there may be more pressure to come up with a workable parallel processing language. We have had a long time to think about this and we haven't really moved that far (the principles are still the same even if the languages are new). The problem is still all about communication.Intel and AMD are selling you multi-core because they need to sell you something to stay in business. Until recently, they couldn't speed things up so they turned to the next best thing - multi-core. For the next year or two, I would still prefer a faster single core (however you decide to measure that) versus a dual core. When the software catches up I will then think about multi-core.With regard to pipelining the various jobs, this is fine as long as process A doesn't need the output of process Z before it can start any new calculations (such as where am I now or what is my current speed). In a graphics pipeline this is not an issue but I suspect with FSX that is not the case. You only need one instance of an A/Z dependency and the whole thing stalls. I can't help thinking that to really benefit from multi-core, FSX would need redesigning from the ground up (with possible reuse of independent components) - hopefully however I'm wrong. The bottom line is that programming independent threads is very easy. However, if these threads have to communicate with each other then it becomes a whole different ball game. It's the same rule for large software development projects - a large number of small independent components is far easier to manage than a much smaller number of interdependant components. To quote wikipedia - 'complex is the opposite of independent'...This post is clearly not aimed at Phil since he will know far more about all of this than I ever will. I have posted it because I think people should ease off on their multi-core expectations for now.

Share this post


Link to post
Share on other sites

I didn't mean to "drastically understate the difficulty of multithreaded programming". Agreed, there is real work involved, and with no doubt some expertise is required to succeed.But multi-cores are a reality today - with quad-cores already there. This is something that needs to be addressed, especially since FSX is so CPU-hungry."And when using DX9 only 1 thread can issue Draw calls."So what ? Dedicate 1 thread to drawing - there is plenty of other things to do in other threads on other cores.It is not because something isn't straightforward that it cannot be done - it certainly takes acknowledging that the issue needs to be addressed, and dealing with it with no complacency.If you look for solutions, you are more likely to find them than if you don't start, assuming it can't be done. How many times did it take for Edison to succeed in creating the 1st light bulb ?Again, nothing that a world class development team would shy away from.

Share this post


Link to post
Share on other sites

Intel and AMD are selling you multi-core because they need to sell you something to stay in business. Until recently, they couldn't speed things up so they turned to the next best thing - multi-core. For the next year or two, I would still prefer a faster single core (however you decide to measure that) versus a dual core. When the software catches up I will then think about multi-core.Precisely my upgrade path as well. Except for multi-tasking there are precious few applications that truely can take advantage of multi core at this time. Now that multi core is the norm it will take a while for the software to catch up.And my logic dictates that making an application like FS (which uses the entire world as its playground) would be far more difficult to program for multi threading than a FPS. I don't envy the programmers (their plight not enhanced when they have the bean counters pounding on their door demanding that the product be released NOW!).History will prove that it was far easier to create the multi core hardware than it was to program for it.

Share this post


Link to post
Share on other sites

Intel and AMD are selling you multi-core because they need to sell you something to stay in business. Until recently, they couldn't speed things up so they turned to the next best thing - multi-core. For the next year or two, I would still prefer a faster single core (however you decide to measure that) versus a dual core. When the software catches up I will then think about multi-core.Just for your information. the fastest single core can not keep up even a single core of an Intel 2 Duo. As been said before, the core speed of a cpu is not the sole source for performance. The Core 2 Duo's are much more efficient than any of the Pentiums even when using only one of it's cores! I have both a E6700 2.67ghz Core 2 Duo w/2gb and dual ATI X1950XTX crossfire cards in non xfire mode and also a P4 3.8Ghz 2Gb Geforce 7800GT. I have FSX on both! The core 2 smokes the Pentium. I get at least 40-50% higher fps with the core 2 running in a single core than the pentium with the same settings! Same is true for FS9! So don't get lulled into the notion that a current high clock speed single core will be faster than than a slower speed multi core like the Core 2's. The reality is just the opposite!! Also with the announcement, that the chip makers have broken the 45ns barrier, you can expect higher core speeds from these multi cores in the future! So you'll be able to have your cake and eat it too!!:)

Share this post


Link to post
Share on other sites

With my AMD Quad and fs9 core-0 runs at 100% core-1 about 30%, OS XP.With Vista and FSX all the cores are active as heck, all busy.FSX seems to run smoother.Here are some screen shots at JFK getting pushed back.If it works.

Share this post


Link to post
Share on other sites

>Just for your information. the fastest single core can not>keep up even a single core of an Intel 2 Duo. As been said>before, the core speed of a cpu is not the sole source for>performance. The Core 2 Duo's are much more efficient than any>of the Pentiums even when using only one of it's cores! I have>both a E6700 2.67ghz Core 2 Duo w/2gb and dual ATI X1950XTX>crossfire cards in non xfire mode and also a P4 3.8Ghz 2Gb>Geforce 7800GT. I have FSX on both! The core 2 smokes the>Pentium. I get at least 40-50% higher fps with the core 2>running in a single core than the pentium with the same>settings! Same is true for FS9! So don't get lulled into the>notion that a current high clock speed single core will be>faster than than a slower speed multi core like the Core 2's.>The reality is just the opposite!! Yes I am fully aware that clock speed is not the best guide to cpu power. I am however curious about the number of single CPU users who report good FSX performance compared with dual core users (unless the dual core users initial expectations were higher so they consequently feel like FSX is slower on their hardware, even though it might not be).>Also with the announcement,>that the chip makers have broken the 45ns barrier, you can>expect higher core speeds from these multi cores in the>future! So you'll be able to have your cake and eat it too!!:)Yes, that is why I said 'until recently'. I think that when the 45nm cores are available at a reasonable price, I will then upgrade. By this point, I will have my cake, it will having icing on it (software will be better configured to work with dual core) and I will definitely eat it.

Share this post


Link to post
Share on other sites

Heck,If I was to run with 1 moving AC, no moving ground, vehicles, no moving AI, no weather etc. etc. etc. in FS9 on my singlechip - at any airport I'd be hitting 50/100 fps.What are the white blotches in background?? low textureres been chosen???H.A.N.D.

Share this post


Link to post
Share on other sites

A few additional thoughts on this.At a high level, I see a flight sim (actually any kind of sim) as : 1. a simulation engine (no display), which will handle : - the weather - the interactions w/ pilot - the flight model, - the ATC - any land/see/air/traffic movements - etc... 2. a pre-rendition engine, that will prepare what needs to be displayed based on user selected views of that simulated world : - choosing which 3D objects should be candidate for rendering, based on object size & distance / angle of view - selecting proper resolution (textures & number of vertices) for each 3D object candidate for rendering, again based on distance - preparing the corresponding textures (file loading, decompression, etc). 3. a rendition engine, that will display those viewsThe simulation engine can probably be broken down into a few parts with low dependency, but lets not even discuss that for now. It is pretty clear to me that 1. has no dependency on 2., nor 2 has any dependency on 3. This is very basic pipeline architecture in my view, no rocket science here.

Share this post


Link to post
Share on other sites

I agree that at a high level, this would seem appropriate. I get the impression that 2 and 3 are mostly taken care of by DirectX and the GPU. FSX seems to be more dependent on raw CPU power than graphics capabilities (as was FS9). This leads me to think it spends a lot of time in step 1, where it becomes harder to tease things apart. This is all speculation on my part so I think I will leave it at that.

Share this post


Link to post
Share on other sites

If thats the whole story and the patch doesn't fix the performance issues FS-X will be the new FS2000. I will wait for FS-XI in that case

Share this post


Link to post
Share on other sites

>It is nowhere near that simple. >>And when using DX9 only 1 thread can issue Draw calls. >>So you have to go thru the entire Sim engine and find what>sort of processing is actually amenable to being forked off on>a thread.>>And the "add a bit of synchronization" drastically understates>the difficulty of multithreaded programming.More or less sounds like you have to scrap the entire engine. Build a new mulit core thread model and then look at the old code for bits that are usable in the new model.I always came away with the impression that th FS series was basicly an old game engine that was just tweaked a little every release with only a major rewrite going from DOS to Windows (Fs2000) and a 2nd one improving performance and add beter 3D support (FS2002).Time for a support multi core major rewrite I guess. Maybe technology dealt us badly this time and left us with an intrim release that can't please the old tech and doesn't support the forseeable new tech.

Share this post


Link to post
Share on other sites

I wonder what the lead time is for Intel or AMD to design and manufacturer a multi-core processor. Less than 24-30 months? They guessed wrong? Surely Microsoft and Intel/AMD have a closer relationship than guessing.SD

Share this post


Link to post
Share on other sites

Everything is developed incrementally.A key 'decision' factor would have been the projected cost of the computer with the new processors.Dual Core processor advances in the past couple years have been nothing short of amazing. Sometimes the hardware guys make a breakthrough on design or more importantly price and things advance very rapidly.Three years ago, I would have bet you that in 2007 we would have 8-10ghz processors available, not dual-core 2.4ghz on a "high end" gaming computer.With the move to multiple processors, the PC world has taken a 90 degree turn directly away from the traditional method of gaining more processing power. And done so in a very short time.Part of me thinks MS would be better off to start over on FS development from scratch - but could you imagine the forums if a new version of FS came out which was 100% not compatible with an addons - free or payware?

Share this post


Link to post
Share on other sites

>More or less sounds like you have to scrap the entire engine.>Build a new mulit core thread model and then look at the old>code for bits that are usable in the new model.>>I always came away with the impression that th FS series was>basicly an old game engine that was just tweaked a little>every release with only a major rewrite going from DOS to>Windows (Fs2000) and a 2nd one improving performance and add>beter 3D support (FS2002).There would be heck to pay if MS were to build the next FS with a whole new engine. Chances are, a complete re-write would have very little in common with previous versions. If that were to happen, a great deal if not all addons from the previous version would not be compatible. And I'm not talking, a building off here and there, but it just won't plain work. There would be an uproar in this community bigger than the one you're seeing now. I've seen it a lot of it on many different forums. People say they won't buy the next product if they can't run all the sceneries or planes they have now.The Flightsim engine we have now is over 10 years old. It has pretty much the same file structure... *.BGL, *.AIR, all those neat extentions as it did in 1995 when FS5 came out.MS is between a rock and a hard place when it comes to designing Flighsim... if they even listen to the community at all that is.

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