Jump to content
Sign in to follow this  
Ray Proudfoot

P3D running but CPU not running at max speed

Recommended Posts

4 hours ago, FunknNasty said:

Just tried AM 85 with my 8600K .....WOW! Long story short, the AM (85) totally out performs no AM and does it 7c to 10c cooler than with no AM, which is saying something because I was completely satisfied with my system before the AM test.

Ehm, how does AM=85 work on a six core not HT CPU? If I am not wrong, this simply results in limiting P3D to run on 3 cores only instead of 6 (10101010, the last "1" and "0" simply ignored as you have only 6 cores), would result in exactly the same as using 21 as AM and easily explains the reduced temperature, as only half of the processor is used... Surprinsing that you see any effect here.

  • Like 1

Greetings, Chris

Intel i5-13600K, 2x16GB 3200MHz CL14 RAM, MSI RTX 4080 Gaming X, Windows 11 Home, MSFS

Share this post


Link to post

With a four core, that's enough to run P3D. So then a six core will run P3D the same on four cores.

P3D relies on system resources and these also occupy some cores.

Allocating more than a certain number of cores may push out those other resources enough to reverse the performance trend.

It depends on a vast amount of variables how that pans out.

In short, some is enough, enough may be too much.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
7 hours ago, SteveW said:

Not using an AM, means that every LP is used for a P3D task. The second task would share the first core with the sacred main task which we hope to give maximum throughput. If the second task shows 50% when the first task shows 100%, the first task has 75% and the second task has 25% of the total throughput. If we move the second task onto the next core we free up 25% of that throughput to the main task.

If we allocate more and more LPs then all that happens is they start to wait for each others time at drawing on the same resource, in turn the main task then is waiting for those. The system starts to show a reverse in the performance - while still increasing in the loading speed the sim performs worse overall.

And also all the shared cache in the CPU is used up needlessly. So when we see small increments in the loading speed adding another LP, we probably don't need that other LP.

 

Hi,

Judged this to be an appropriate moment to blow me own trumpet (!) and to remind everyone how I decided on 4085 as being the best Affinity Mask for my i7-5960X. Once again, my thanks go to Steve for keeping me on the right path.

https://www.avsim.com/forums/topic/541073-using-loading-times-to-determine-affinity-mask/?do=findComment&comment=3889833

Also, as you can see, this reserves 2 HT cores (6 and 7) = 4 Logical Processors (LPs) that can be gainfully employed by various add-on executables. I use bat files, as described by Steve, to assign 2 LPs to each add-on, at least those that allow this to happen. I have noted that UTLive, for example, adopts the same Affinity Mask (4085) as defined by me under the Job Scheduler section heading Prepar3D.cfg.

As we know, UTLive has been configured to load with the sim and I wonder whether there is a way around this behaviour? I need to check, but could we perhaps be using the manual load entry in the xml by changing it from false to true?

Regards,

Mike

 

Share this post


Link to post
9 hours ago, Cruachan said:

Hi David,

4790K (4 Cores, 8 Logical Processors HT=ON)

Affinity Mask 85 (Decimal) = 01,01,01,01 (Binary)

In sequence from right to left, Logical Processors (LPs): 01,23,45,67

Hope you don’t mind me jumping in here but, in the interests of greater clarity, I wonder if I could stick my neck out by asking you to go over your experience again for us while referring to the above. I think I followed your drift, but your references to cores and threads made it all a little confusing. Maybe you could simply modify your post rather than having to create another....assuming you aren’t timed out by the forum software.

 
 

Sure Mike,

AM is confusing and Binary being backwards does not help.

The simple way to explain is adding an AM 85 is turning off the HT on a 4 core Processor for P3D, so it just uses the main cores 1-2-3-4.

The HT "cores" A-B-C-D are not used. 

I found P3D only really used core 1-3-4. fully, they seem to all work at the same rate mirroring each other perfectly. (Core 2 was running around 25-30%) So I made every add-on I use with P3D only use Core 2 with all the HT "cores" A-B-C-D. 

I cannot think of a more simple way to explain it. But I think you got it anyway Mike.

So P3D uses 1-2-3-4 

Add-ons use A-2B-C-D.

or if you want it like this "In sequence from right to left, Logical Processors (LPs): 01,23,45,67"

P3D users 7-5-3-1

All add-ons use 6-54-2-0

 

Edited by Nyxx
  • Upvote 1

David Murden  MSFS   Fenix A320  PMDG 737 • MG Honda Jet • 414 / TDS 750Xi •  FS-ATC Chatter • FlyingIron Spitfire & ME109G • MG Honda Jet 

 Fenix A320 Walkthrough PDF   Flightsim.to •

DCS  A10c II  F-16c  F/A-18c • F-14 • (Others in hanger) • Supercarrier  Terrains = • Nevada NTTR  Persian Gulf  Syria • Marianas • 

• 10900K@4.9 All Cores HT ON   32GB DDR4  3200MHz RTX 3080  • TM Warthog HOTAS • TM TPR • Corsair Virtuoso XT with Dolby Atmos®  Samsung G7 32" 1440p 240Hz • TrackIR 5 & ProClip

Share this post


Link to post

I've found it easier to learn once and use Intel conventions further on, that are standard in the industry:

- CPU consists of Cores, the first Core is considered Core 0 (instead of 1)

- When you turn on HT each Core consists of 2 Logical Processors

- These pairs of LP per Core can be presented in binary form (0 or 1), and these pairs are read from righ to left, i.e. xx.xx.xx.xx.xx.xx 

As simple as that, not a rocket since at all. Introduction of further variables A, B, C etc. and reading in the opposite direction (left to right) is what makes it a confusing voodoo instead.

Honestly I have no slightest idea of what David has just written above.  

 

Edited by Dirk98
  • Upvote 1

Share this post


Link to post
21 minutes ago, Dirk98 said:

Honestly I have no slightest idea of what David has just written above.  

1

LOL 🙂 Enjoyed that 🙂 

Well once anyone has learned anything it's easy.

How about this, go here http://www.gatwick-fsg.org.uk/affinitymask.aspx?SubMenuItem=utilties

Scroll down to Affinity Mask Calculator - [Expert Mode] 

Fill it in, simple? Well is it "Logical and Threads"?

You understand it, so do I, but I also understand why people don't. To many terminologies and things in binary or some calling them all CPU and some calling them LP/Logical/Threads.......the list goes on.

I was trying to simplify to down to 4 processes 1-4 and 4 HT A-D just an attempt to get across what happening better than writing, here you go ..........01,01,01,01 and 10,10,11,10. 


David Murden  MSFS   Fenix A320  PMDG 737 • MG Honda Jet • 414 / TDS 750Xi •  FS-ATC Chatter • FlyingIron Spitfire & ME109G • MG Honda Jet 

 Fenix A320 Walkthrough PDF   Flightsim.to •

DCS  A10c II  F-16c  F/A-18c • F-14 • (Others in hanger) • Supercarrier  Terrains = • Nevada NTTR  Persian Gulf  Syria • Marianas • 

• 10900K@4.9 All Cores HT ON   32GB DDR4  3200MHz RTX 3080  • TM Warthog HOTAS • TM TPR • Corsair Virtuoso XT with Dolby Atmos®  Samsung G7 32" 1440p 240Hz • TrackIR 5 & ProClip

Share this post


Link to post
23 minutes ago, Nyxx said:

I was trying to simplify to down to 4 processes 1-4 and 4 HT A-D just an attempt to get across what happening better than writing, here you go ..........01,01,01,01 and 10,10,11,10. 

Lol,

David, since you are on v4.4 already, could you check  11.11.10.10 affinity on your system (which is =250 JobScheduler)

Thanks,

PS: there were very positive comments about arranging 2 first cores like that xxx.10.10

Edited by Dirk98

Share this post


Link to post

I will have a look.

  • Like 1

David Murden  MSFS   Fenix A320  PMDG 737 • MG Honda Jet • 414 / TDS 750Xi •  FS-ATC Chatter • FlyingIron Spitfire & ME109G • MG Honda Jet 

 Fenix A320 Walkthrough PDF   Flightsim.to •

DCS  A10c II  F-16c  F/A-18c • F-14 • (Others in hanger) • Supercarrier  Terrains = • Nevada NTTR  Persian Gulf  Syria • Marianas • 

• 10900K@4.9 All Cores HT ON   32GB DDR4  3200MHz RTX 3080  • TM Warthog HOTAS • TM TPR • Corsair Virtuoso XT with Dolby Atmos®  Samsung G7 32" 1440p 240Hz • TrackIR 5 & ProClip

Share this post


Link to post
1 hour ago, Nyxx said:

I was trying to simplify to down to 4 processes 1-4 and 4 HT A-D just an attempt to get across what happening better than writing, here you go ..........01,01,01,01 and 10,10,11,10. 

Hi David,

There you go!

Now, as certain individuals are constantly saying in the UK these days, let me take another stab at it (hopefully with more success than said individuals..lol) by first stating “Let me be clear”:

With CPU Hyperthreading (HT) Enabled you have chosen to employ an Affinity Mask with the decimal value 85.

In Binary this is represented as: 01010101  (01,01,01,01)

Each ‘0’ and ‘1’ represents a Logical Processor (2 HT Logical Processors (LPs) per CPU core. 

The LPs are numbered from right to left along the Binary pattern:

76543210 (76,54,32,10)

Core/LP activity, as viewed in Windows Task Manager, is referenced from left to right, 01234567 (Windows 7), and top left hand corner starting with Core 0 (Windows 10).

So, from this we can see that by using AffinityMask=85, you have achieved this result:

1. Prepar3D has been assigned LPs 0, 2, 4 and 6.

2. Each of the Add-on executables can be assigned LPs 5 and 7. 

Probably best to avoid LP 3. Perhaps Steve could kindly share his views on this last statement.

Regards,

Mike

 

 

  • Like 1

Share this post


Link to post

If we take a base 10 number e.g. 450, the zero is the least significant digit, on the far right, we are happy with that.

In the binary number e.g. 1110, just the same, the zero, the least significant digit, or bit, is on the far right again.

The least significant bit in the binary word 1110, the zero on the right, represents core zero in the CPU.

When we look at Task Manager or perhaps a list of those cores the first one (on the left or the top-left) is core zero.

Core zero has no more importance than any other core. In the AM 1110, the second core, the second in from the right going left, the first '1', that's core zero to the app running in that AM.

The Windows system does not reside on core zero, it spreads itself over places doing least work. The function scheduling where things go, might itself start on core zero, or any other core and wait. When it's back in demand it moves to the least utilised cores.

So depending on the timing of the way a certain system might start up, might affect where things go. Since even a 4% app will interfere with the critical timing of the sim, we can improve things by corralling those apps, those that must be present and operational, maybe traffic or weather app.

A weather app might only come into operation every 15mins. So it might gather up the data and make a decision in a burst of activity every 15 mins, we don't want that on the main core. But also, those apps might be doing plenty of thing in the meantime, organising the next injection or perhaps all the updates are not done at once.

If they are on the network then there's still a burst of activity on the network, which shares bandwidth as well, and the simconnect server at the sim increases the hosts which fills up the cores allocated to the sim.

 

 


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
13 minutes ago, Cruachan said:

Probably best to avoid LP 3. Perhaps Steve could kindly share his views on this last statement.

Regards,

Mike

 

 

Yes, you can give the second task a core to itself, what happens here depends on how many cores you allow. The more critical stuff won't really show up amongst the other 40-50% you see on there, but it's there and can be interrupted. If you have enough cores you can see multiples of certain tasks appear, they can be monolthic too. Where they come out is not guessable.

Edited by SteveW
  • Upvote 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post

A little OT but still one of the remaining questions to me: I successfully managed to force all my external software such as REX, AS and ProATC/X to run on core4 and core5 (including HT) only on my rig. However, I did not manage to force UT2 to other cores, as this software is started from the exe.xml when P3D is firing up. All my attempts to start a .bat file instead of the .exe failed, so for now, this is the last external software still running on core0 in my case. I know I could simply start UT2 manually instead of automatically via exe.xml, but that is not really convenient. Is there a possibility to circumvent this? Someone has a good idea (Steve?)?

Edited by AnkH
  • Like 1

Greetings, Chris

Intel i5-13600K, 2x16GB 3200MHz CL14 RAM, MSI RTX 4080 Gaming X, Windows 11 Home, MSFS

Share this post


Link to post

So we require the best cores for the monolithic tasks and keep addons off, then the other cores we can pair up or run addons on those because their tasks take seconds to complete. If we have even more cores we can dedicate the whole core. Having said that it is still possible with many cores that we can improve things using less cores by doubling the background tasks as pairs of LPs per core and freeing up entire cores rather than empty LPs. That works even on a 64 core CPU. Again, so many variables, how that pans out depends on lots of things, so it's got to be set per system. Using the guidelines I provided whereby we try increasing LP's one by one and timing the loading speed.

There's more to come with many cores, and some more trickiness to have to consider. More on that at some stage in the near future.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
4 minutes ago, AnkH said:

A little OT but still one of the remaining questions to me: I successfully managed to force all my external software such as REX, AS and ProATC/X to run on core4 and core5 (including HT) only on my rig. However, I did not manage to force UT2 to other cores, as this software is started from the exe.xml when P3D is firing up. All my attempts to start a .bat file instead of the .exe failed, so for now, this is the last external software still running on core0 in my case. I know I could simply start UT2 manually instead of automatically via exe.xml, but that is not really convenient. Is there a possibility to circumvent this? Someone has a good idea (Steve?)?

Yes it is an exe that can be started manually rather than with the sim, so then it can be done as any other. I think it's an option in the settings to not have it autoload.

  • Upvote 2

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
53 minutes ago, Cruachan said:

Hi David,

There you go!

Now, as certain individuals are constantly saying in the UK these days, let me take another stab at it (hopefully with more success than said individuals..lol) by first stating “Let me be clear”:

With CPU Hyperthreading (HT) Enabled you have chosen to employ an Affinity Mask with the decimal value 85.

In Binary this is represented as: 01010101  (01,01,01,01)

Each ‘0’ and ‘1’ represents a Logical Processor (2 HT Logical Processors (LPs) per CPU core. 

The LPs are numbered from right to left along the Binary pattern:

76543210 (76,54,32,10)

Core/LP activity, as viewed in Windows Task Manager, is referenced from left to right, 01234567 (Windows 7), and top left hand corner starting with Core 0 (Windows 10).

So, from this we can see that by using AffinityMask=85, you have achieved this result:

1. Prepar3D has been assigned LPs 0, 2, 4 and 6.

2. Each of the Add-on executables can be assigned LPs 5 and 7. 

Probably best to avoid LP 3. Perhaps Steve could kindly share his views on this last statement.

Regards,

Mike

1

Yes that's all correct apart from the red. 

They are assigned LP's 1,2,3,5,7. Are you saying 3 is bad? so 1,2,5,7 is better? I use 2 as that's only running at 25-30%

Edited by Nyxx

David Murden  MSFS   Fenix A320  PMDG 737 • MG Honda Jet • 414 / TDS 750Xi •  FS-ATC Chatter • FlyingIron Spitfire & ME109G • MG Honda Jet 

 Fenix A320 Walkthrough PDF   Flightsim.to •

DCS  A10c II  F-16c  F/A-18c • F-14 • (Others in hanger) • Supercarrier  Terrains = • Nevada NTTR  Persian Gulf  Syria • Marianas • 

• 10900K@4.9 All Cores HT ON   32GB DDR4  3200MHz RTX 3080  • TM Warthog HOTAS • TM TPR • Corsair Virtuoso XT with Dolby Atmos®  Samsung G7 32" 1440p 240Hz • TrackIR 5 & ProClip

Share this post


Link to post

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  
  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...