Jump to content

Spreading the load across all threads of CPU


jparnold

Recommended Posts

I have read plenty of discussions and information about FSX and multicored CPUs and if I remember correctly FSX can't utilise all cores/threads and it is old technology (software) which was written before multi cored CPUs became the norm. Not sure if this is correct or not.

I have 'googled' this question and got quite a few 'hits' including a tutorial video on YouTube.

I have tried everything I have read/watched and none seem to make any difference.

 

Refer screen shot of task manager/performance which shows the first fairly low and some others showing no activity.

Is this the best I can expect or is there a method to force FSX to share the workload better?

task manager performance.jpg

John

Gigabyte Z390 UD Intel Core i7-9700K 3.60 Ghz Dual 16Gb DDR4 2666

Gigabyte RTX2060 OC 6GB 2 X 256MB SSD drives 1 X 500GB HDD

Windows 10 64bit Home Logitech Extreme 3D Pro joystick

Link to comment
Share on other sites

The FSX code simply wasn't made to be multi-threaded. So no matter what you do, you can't make it use all the cores. I've read that FSX does use some other cores, but not as much as core 0.

 

When It comes to building a computer for a Sim, focus on a CPU that has very good single threaded processing. That's the best we can do until a better Sim comes along. I've read from the Flight Sim Con article on the home page that there was a new Sim I guess coming out and it will use multiple cores. I just hope the ATC is better than what we have now. That's one of my biggest pet peeves with Simming.

Link to comment
Share on other sites

Thanks.

 

Is FSX Steam edition written to utilise all cores?

John

Gigabyte Z390 UD Intel Core i7-9700K 3.60 Ghz Dual 16Gb DDR4 2666

Gigabyte RTX2060 OC 6GB 2 X 256MB SSD drives 1 X 500GB HDD

Windows 10 64bit Home Logitech Extreme 3D Pro joystick

Link to comment
Share on other sites

FSX Steam Edition is essentially the same as FSX Gold, so it isn't any better with using multiple cores. Adapting applications to use multiple CPU cores requires significant changes to the core of the application and is often not easily with existing applications. FSX SP1 added support for loading scenery and terrain data on additional CPU cores, but the main simulation engine is still limited to one core.
Link to comment
Share on other sites

Thanks.

 

Is FSX Steam edition written to utilise all cores?

 

Sorry, but no. No more so than the original. I have FSX:SE, and it doesn't do any better than the Box edition.

Having said that, there is the whole

[JOBSCHEDULER]

AffinityMask=60 discussion.

 

Supposedly, you can force the CPU to reserve certain cores for the OS and other tasks going on behind the scenes, and the others for FSX to utilize.

While FSX can't use multi-threading, any CPU will cause a program to utilize the lowest numbered core first, then start spreading the load onto other cores. Like if Core0 gets saturated with doing the tasks the OS and other background programs, it starts assing those tasks to Core1. Then if that gets saturated also, it will start spreading to tasks onto Core2, and so on and so on.

With multi-threading active, please note that every CoreX will essentially have another, virtual core for the tasks to run on. As long as they are capable of utilizing the virtual cores. FSX can't. So if Core0 gets saturated, the FSX tasks will be spread to Core1. Physical Core1, not virtual Core1. So really, with multi-threading active, if FSX saturates Core0, it will be spread to Core2, not Core1.

What setting the Affinity Mask does is to tell the CPU to utilize a specific Core or Cores for FSX, letting the OS and such utilize the other Cores without interference from FSX.

 

I know, I'm lousy at explaining this stuff, but that's the best I can do. I have a 6 Core processor, multi-threading ON, so with the above Affinity Mask setting, the CPU can utilie the first two physical cores, and the other 4 are for FSX, although it seldom utilizes more than 1, at the MOST 2, with the second being very low utilization, and only with heavy duty scenery, and so on. There is a very easy way to determine the Affinity Mask setting you desire. All you need is a calculator capable of converting Decimal to Binary. Put in the number you think will utilize the core(s) you want, and convert it to Binary. Bear in mind, it gives the result backwards. So 14 will give, I think, 0111, indicating the first core, or Core0 is reserved for the OS. The 0 is the indicator. Notice it's the farthest left, not right, indicating Core0, not Core 4. Backwards...

 

About as clear as mud?

Pat☺

[sIGPIC][/sIGPIC]

Had a thought...then there was the smell of something burning, and sparks, and then a big fire, and then the lights went out! I guess I better not do that again!

Sgt, USMC, 10 years proud service, Inactive reserve now :D

Link to comment
Share on other sites

While FSX can't use multi-threading, any CPU will cause a program to utilize the lowest numbered core first, then start spreading the load onto other cores.

 

Minor note, on Intel processors it's called Hyper Threading. Multi-threading is on the software side. A multi-threaded app uses multiple processing threads which can be spread across CPU cores. The core FSX sim engine, however, is single threaded which is why it is limited to one core. FSX post SP1 does have limited multi-threading support for loading scenery and terrain data.

 

When it comes to what gets run on each core, it's up to the OS. However, this can be overridden with the affinity_mask setting. I suggest trying the sim without adding this first, and only adding it if there are issues with stuttering.

Link to comment
Share on other sites

Thanks everyone.

I have already tried setting [JOBSCHEDULER] AffinityMask which made no noticeable difference.

I also have found an article on 'unparking' parked cores together with an application which shows which ones, if any, are 'parked and allowed the user to 'unpark' them (the app modifies the registry instead of having the edit it manually) and after 'unparking' 3 'parks cores once again no noticeable difference.

 

Mind you using the standard FSX B737-800 at YSSY (with target frame rate set at 50) I am getting around 50fps BUT when using some 3rd party aircraft and scenery the fps drops significantly to 20 something and I was hoping to address that without setting scenery complexity 'sliders' down.

John

Gigabyte Z390 UD Intel Core i7-9700K 3.60 Ghz Dual 16Gb DDR4 2666

Gigabyte RTX2060 OC 6GB 2 X 256MB SSD drives 1 X 500GB HDD

Windows 10 64bit Home Logitech Extreme 3D Pro joystick

Link to comment
Share on other sites

You are running into the limitations in the design of FSX. As its roots go back to the world of single core processors, it isn't designed to take full advantage of multi-core CPUs. It would take a major re-design of the core sim itself, and the only people that can do that are the ones with access to the source code. It should also be noted that few PC games in general can take advantage of more than 2-4 cores themselves as it is difficult to do well. The best route for improving FSX performance is a faster CPU, either by buying one with a higher clock speed, or overclocking what you have, if possible.
Link to comment
Share on other sites

Mind you using the standard FSX B737-800 at YSSY (with target frame rate set at 50) I am getting around 50fps BUT when using some 3rd party aircraft and scenery the fps drops significantly to 20 something and I was hoping to address that without setting scenery complexity 'sliders' down.

 

Ahh, the magic FPS numbers.

Irrelevant, however. How smoooooth does it run? Is it jerky, jumpy, jittery? Are there freezes, jumps, black-out areas? If none of those things happened, who cares if you get 300 FPS or 30?

There are any number of "tweaks & tips" sites, blogs and so on out there. Some work extremely well, some not so well. Every system is different, every system may or may not need different tweaks from every other system. The trick is to try a tweak youu think will work for your system. ONE tweak at a time, and see what effect it has. Good effect? Leave it in, no effect, or bad one, take it back out. It's a very long, although not complicated, process.

Heck, I've had FSX:SE since it came out. Bought it for $5.00 on sale the day it came out. I'm still finding new tweaks and tricks to try. Some work, some don't. People are finding new things to tweak all the time, so it's a never ending process.

 

Point to the sim is to enjoy it! If you spend all your time tweaking it, no time to fly. All your time flying? Ok, but what if there IS a "magic bullet" out there some place that will improve your experience? See what I mean?

In the end, it's entirely up to you what you do to your sim, no one else. All we can do is suggest possibilities. Now, you decide what will help on your system, what won't. :D

 

Good landings and fair winds to you, no matter what you do!

Pat☺

[sIGPIC][/sIGPIC]

Had a thought...then there was the smell of something burning, and sparks, and then a big fire, and then the lights went out! I guess I better not do that again!

Sgt, USMC, 10 years proud service, Inactive reserve now :D

Link to comment
Share on other sites

Thanks

It seems I should go for a faster CPU.

Not sure if I want to fork out a lot of money to upgrade my whole system although I could upgrade my CPU. I saw a new new 4790K (sticker states 4.0Gkz and can be overclocked) for $400 which is an option (I could possibly sell my old 4770 for about $200) but how much faster would FSX run at 4.0Ghz compared to 3.4Ghz? The numbers indicate the CPU is 17.5% faster but how does that 'equate' in FSX. Maybe the law of 'diminishing returns' The more you pay the less you get (as you go higher) so maybe not not 17% more fps.

 

(ADDED LATER)

After 'googling' 4770 compared to the 4790 I found at least web sites which performed tests and published the results and for single threaded software the 4790 was only 3% faster, hardly worth spending money on I think although the 4790 is capable of overclocking which I have never done and not sure if I would try unless someone can tell me that it isn't difficult.

John

Gigabyte Z390 UD Intel Core i7-9700K 3.60 Ghz Dual 16Gb DDR4 2666

Gigabyte RTX2060 OC 6GB 2 X 256MB SSD drives 1 X 500GB HDD

Windows 10 64bit Home Logitech Extreme 3D Pro joystick

Link to comment
Share on other sites

Yeah, what you have now is about as good as it's gonna get. Perhaps an i7 7700k would be a little faster with some fast RAM. But then you have to run Win 10 if not already. I personally despise Win 10 and it will be a very long time before I move to it and when I do I'll have a Pfsense firewall blocking all of M$'s ASN's. But that's a whole other story.

 

Bottom line, just change the settings you have now to a lower number IF and only IF you have stuttering, etc. If you use clouds that are high def consider using lower def clouds. For example, I have REX textures and I just use the 512 pixel textures. Even though I know I proabbly could use higher def textures, I just don't want to saturate my CPU. It's bad enough that despite me using an i5 6600k overclocked to 4.4 GHz, I still get about 15 FPS in New York which is where I really see an FPS drop. No where else. It's primary due to all of the buildings and the third party airports I have. I shun to think what my FPS will look like when I finally get the PMDG 737NGX and fly around NY.

Link to comment
Share on other sites

One other factor to consider is the Turbo Boost speed of each CPU. This is basically built in dynamic overclocking that Intel CPUs have. Under the right conditions, the CPU will overclock itself. For the 4770 this means going from 3.4 to 3.9GHz, while the 4790K can go from 4 to 4.4 GHz.

 

Whether the difference is worth the price is up to you. You can certainly play with the settings to smooth out the performance with what you have. Moving to the faster CPU would give you a boost, but its hard to say exactly how much.

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...