Limited By CPU / Limited by main thread /wo 100% Single Core Utilization - Why?

[EDIT]: Forgot to mention the Fly By Wire Mod.

Hi there,

I guess this topic is a bit of a sore point for many already, so I apologize for asking this question yet again, but please, hear me out, I did my homework.

THE QUESTION
My benchmark is the current Paris Landing challenge in the A320 (I have the Fly By Wire Mod installed). My single core CPU utilization is consistently around 60% for each core. My graphics cards is NOT the bottleneck either. Why isn’t at least 1 core at around 100% utilization?

HOMEWORK DONE

  • I know from reading a lot of posts that “limited by main thread” usually means my CPU is the bottleneck.
  • I also know, that when monitoring the CPU usage, one must not look at the overall average utilization but instead the single core utilization.
  • I’ve heard that on Intel machines, turning off Hyper Threating in the BIOS can help boosting FPS. Even though I tried that, I can not confirm for my setup.

MY SPECS
OS: Windows 10 Home 64-bit
CPU: Intel Core i7 3770K OC’d @ 4.0GHz
RAM: Corsair 8,00GB Dual-Channel DDR3 @ 666MHz (9-9-9-24)
MoBo: ASUSTeK COMPUTER INC. P8Z77-V
GPU: 4095MB NVIDIA GeForce GTX 1070 (NVIDIA)
Storage for FS: 119GB SAMSUNG SSD 830 Series (SATA (SSD))

SCREENSHOTS FOR PROOF


As you can see in this shot, the CPU is utilizing ALL cores while loading the landing challenge, but all cores drop to around 60% when in flight. The measurements of the process explorer (a tool from the sysinternals suite which I replaced my task manager with) are confirmed by MSI Afterburner / RTSS in the top left corner. In the last shot in this post, this is also confirmed by the sim itself. Hyper threading is of in this case.


This screen is from the same run as the above. It shows that the utilization remained at around 60% during the flight.


This is a shot from a run with Hyper Threading enabled.


This is a shot from a run without Hyper Threading. This shot confirms the “limited by main thread” I mentioned earlier

1 Like

you got a lot of different answers if you use the forum search function and join into one of existing thread about this topic ( and there are some of it ).

1 Like

Hi Micha,
thanks for your answer. I know that and - as I said - I did search for answers for this specific question two days strait. If I had found one, I wouldn’t have asked again. If you know a post with the exact same question and an answer I am more than happy if you share it with me.

Regards,
Chris

1 Like

as said, you get many different answers:

https://forums.flightsimulator.com/search?q=limited%20by%20main%20thread

In special the “one core load” is often mentioned.

And with different answers I mean:
many different guesses, because we are not MSFS developers :joy:

PS:: I mentioned exact the same as you, and others also…

1 Like

We are numerous to see the same problem, and as said, lot of posts already try to find explanation with more or less success depending cases. It’s a frustrating problem for sure, and my only advice I can give is : just stop.
It don’t come from your machine, it come from the Sim, so stop having headache trying to understand. I did the same, I spent the last months fighting to optimize and understand all those weird behavior. I stopped, and now I feel better :slight_smile: and I wait for the next update, with possibly too many hope about it. I have the risk to be disappointed :wink:

On a side note, unless you don’t have a good cpu fan (I have the old but very good double fan Noctua NH-U12P SE2) you can raise your CPU OC. I changed my CPU last September (kept the Noctua cpu fan), but before, my good old I7-3770K was able to do 4,4Ghz without any issue, even 4,5Ghz on winter (too much for hotter temp). That will help for sure with MSFS which is a too much CPU eater. Even now with my i7 10700K OC 5,2Ghz I struggle with CPU bottleneck (and a RTX 3070 OC)… My previous configuration had also a GTX 1080, and I was able to get 60fps and 40fps in big cities. You should be able to reach that with few settings more lower. Good luck! :slight_smile:

Edit : just realized I also had the same Asus MB and same RAM x 2 16GB (you mean 2666MHz I guess).

2 Likes

The windows scheduler moves threads between cores so even if you run a thread that uses 100% of a core, it shows up as an even distribution across all the cores.

If you pinned the MSFS threads to fixed CPUs you would likely see one that is at 100%

1 Like

The Windows scheduler still drunk on my i7-10700K (8c/16T), MSFS still heavily use my physical core #8 (thread 14 & 15 at the same time, so first “internal” collision of both logical threads) when other cores are nearly idle, and the Oculus OVRServer use also this physical core #8 (and some of #7) so I have another cores collision which made the Sim CPU bottleneck, core #8 reaching 100%.
I used to “fix” this using Process Lasso to separate both Oculus and the Sim threads and saved fps an lower my stutter a lot, core #8 can be below 85% usage in that case, but I hate to have to do this and stopped, not part of my player job! :wink:

1 Like

I have the same issues with a 9900k and 2080ti…running on 2560x1440 (would have triples but that’s out of reach). To be honest I simply stopped using FS2020 because of the poor performance. And I do not have the patience anymore to configure the s*** out of the settings.
So I am just waiting, hoping it get better with future updates.
PS: average FPS with +/- medium settings is around 35-40 fps

2 Likes

Same here unfortunately. :unamused:

My 8700Ks overall usage is 35-40%. The last logical core is being used up to 90% (never 100%). The other cores/threads are loafing around doing barely anything.

My RTX 3080 is also sat doing nothing unless there is a major thunderstorm.

45-50 FPS.

So I’m not sure where the bottleneck is.

1 Like

All depends on what you’re looking at.
If you’re saying your RTX3080 is sitting there doing nothing, it’s because;
a) your CPU can’t provide enough frames to the GPU
b) you’re not running at 4K, but let’s say 1080P. This sort of workload is easy for the 3080.

So if you want more GPU utilization; increase settings or resolution.

Most likely though your bottleneck is your CPU, and you’re main thread limited. Like all games and sims, it really relies on fast single core performance. The main thread is eating up that 1 logical core, and is limiting all other factors. The other cores are doing work, it’s just that the single core speed is the limiting factor.
Don’t expect a game or sim to fully utilize all cores. It’s simply not the type of workload that can do that.

3 Likes

I’m definitely maxed with my 8700k with the setting on the high side of things. The latest glitches really ate away at my little buffer there. Now I’m looking at an upgrade to get the max CPU core speed I can get since that’s what the sim really runs on.

Please refer to Performance Degradation with 1.14.5.0. Upgrade

It is a problem with the current update. Has nothing to do with your machine.

The Good news I get around 38 - 58FPS. The Bad: I still get the Limited by Mainthread. With target frame rates why is the heading in red?

Don’t worry about it basically. There will always be a limiting factor, otherwise you’d be seeing 99999 FPS. In most cases it’ll either be main thread or GPU. As long as it’s smooth, and you’re happy with it, don’t stare at FPS meters.

2 Likes

I usually don’t use these dev tools but just like using diagnostic tools they should lead us to solutions to get the best performance from our hardware. If the tool tells us things like CPU and GPU is limiting perfomance then we should be able to make the adjustments that minimize these bottlenecks.

What would you expect? If your CPU is the limiting factor, the only way to get better performance is by
a) dropping your settings
b) upgrading your CPU.

After a certain point the CPU will just be at its limit though (100% main thread load), and there are no more FPS to be had. You’re on 50 FPS, which is about as good as can be expected from current hardware. Maybe you’ll get more with a system upgrade in 2 or 3 years.

Some examples of CPU loading settings are the glass panel refresh rate and the objects render distance slider. Are you expecting a simple FPS monitor to tell you which settings to adjust?

You do know the object rendering distance settings also just affect gpu and ram.Just telling you just incase you didn’t know. Increasing those LOD sliders hardly affect my CPU but it hammers my ram and vram.

I do know they also affect the GPU.

About the effect on CPU; you’ll find that especially in Photogrammetry areas the objects render distance slider is pretty heavy on the CPU side. The more vertices there are, the heavier the load.

Thanks for your reply. This is the kind of information I appreciate. My rig is Cyberpower circa 2013. I7-3820 OC @ 3.8 in a Asus P9X79 Deluxe. I have a EVGA GTX 1080 purchased last year. I just Upgraded my RAM to 32 GB XMP 2133. So now I’m contemplating swapping out the CPU for a I7-4960X. I’ve been Flight Simulating since 1987 and even then as high end as my hardware was at the time it always was under the curve. That’s why I’ve spent a small fortune on hardware upgrades through the years just to get that magic ultimte FPS. It would have cost less to go to flight school. (but then again you’re still around if you crash in FS which I’ve done plenty of times).

To everyone considering a CPU swap: I‘m also considering that, but chose to wait at least for the DX12 update. As has been pointed out many times, single core performance is the biggest bottleneck and this might (!) improve with DX12 for existing systems.
Only after testing that, I would consider upgrading again. And when you do, keep that single core speed in mind. It might only make a difference of a few hundred MHz which I bet does not result in huge FPS gains.

If I upgrade, I‘ll post the results here. Expect end of 2021 the soonest.