Jump to content

6 Core


Recommended Posts

It's the same situation with both 4 core and 6 core processors.  Ever since FSX Service Pack 1, FSX has been multithreaded, and now runs as a three thread program instead of a single thread program as it was when originally released.  Basically, that means that more parts of the program are running at the same time (when you have more than one "processor"), so the program runs more efficiently which means that FSX (post SP1) gives the user better results visually.

On top of that, Windows has a feature called the "affinity mask" by which any program (even a single threaded one) can be told to use one or more cores.  Using this feature, AFAIK, there is no way of controlling which thread runs in which core.  However, unless a program has been designed and written to be multithreaded, giving that program the use of more than one processor isn't going to make it run more efficiently. 

Why ? Because when you write a single threaded program, you know exactly what actions the program has completed at any given point in the code, so you know what "resources" are available at that time; and of course what resources are not available at that time.  The same cannot be said for a multithreaded program - as the different threads are running at the same time in different processors, one thread will never know which actions another thread has completed at any given time, because the other thread may have actually used more processor time within the same elapsed time for whatever reason.  As a result, the multithreaded program designer allows for the fact that any thread may complete its actions at a completely different time from that at which any other thread may complete its actions, by including checks in the code to see whether actions being performed by other threads have been completed or not.  This is known as checking for resources being available.  Usually, the single threaded program does not have these checks, which means that, when the program is running in more than one core, if the code running in a particular core ever reaches a point where it needs a resource which is not available, that code will either crash or wait for that resource to become available - if necessary, it will wait for ever.

As far as FSX is concerned, it will use as many cores as it is given by its affinity mask, whether that is 1, 4, 6 or 256.  It will not necessarily run more efficiently as a result, because even though it is a 3 thread program, you cannot control which threads run in which core.  So whatever code runs in any given core won't necessarily contain any resource availability checks, which means it will sometimes simply wait and wait and wait for some resource that isn't yet available.  The strange thing is that giving more and more cores to FSX will in general make it run faster because resources will be made available more quickly, but in this case, faster is NOT the same as more efficient.

I've tried to keep the above as simple as possible, and it is all essentially an analogy of the real situation, since it would be impossible to explain that simply and concisely in a single post here.  That does not affect the results - giving FSX as many cores as possible will allow it to run "faster", but that is not the same as having it run either efficiently or without throwing the occasional error (or exception).

Hope that helps,

Ro

Link to comment
Share on other sites

It seems I was wrong about affinity being a Windows feature as it's actually an FSX one.  This also means that the assignment of threads to cores is not only controllable but done where it matters most, within FSX.  In fact, according to Phil Taylor's blog at 15 May 2007, 6:55 PM, if you don't use the Affinity mask feature, the o/s "would move thread and generate extra collisions".

In the same blog, Phil says that affinity only currently works with up to 32 cores, though if FSX is only really written to use 3 threads (plus the thread scheduler) using more than 4 will be somewhat hit and miss as I tried to explain above.

Jesus Altuve recommends that you set the mask to 14 for best performance.  For more information, follow this link -

http://www.hovercontrol.com/artman/publish/article_122.shtml

For info on setting the the affinity mask, go here -

http://blogs.msdn.com/b/ptaylor/archive/2007/05/15/new-tweaks-in-sp1.aspx

;D

Link to comment
Share on other sites

The coincidences of life, Rohan I have just posted in this thread almost exactly what you have said here...http://orbxsystems.com/forums/index.php?topic=24471.msg208453#new

In my opinion the best thing to do is leave FSX alone ,delete the fsx.cfg and let fsx rebuild it and add a few tweaks like disablepreload and the like , but avoid any other , maybe bufferpools=,have a go and see, I am running a i7 920 at 3.9 with a GTX480 and 6gig RAM , no problems at all...I beleive that Phil Taylor implied that FSX would run in as many coeres as were available, in that video he is using a 4 CPU PC...monster for those days but in my opinion much more powerfull than a 4 core i7, (more data and instruction cache)and an individual path to memory.

fascinating subject!!!  regards  Jorge

Link to comment
Share on other sites

Jorge,

you are correct is that Phil Taylor implied that FSX will run in as many cores as are available.  However, the info in my second post above also comes directly from Phil Taylor, including the limit of 32 cores and the warning about the consequences of not using the affinity mask when you have more than one core.  I think I'll stick to using a mask value of 14 on my 6 core processor ...

regards,

Ro

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...