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

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