Speed of flight wrote:For anyone else that it may help, I've just read another thread for using the [JOBSCHEDULER] tweak that may yield the desired result. Turns out, the tweak can certainly be used to assign work to only certain cores. Here's how:
That's how I had it in the cfg file. I am using an 8-core CPU. If I change it for only certain cores, like this:
only certain cores are used. One could use all 8, I think, but I'm not sure FSX will like it. This is how I tried it, and testing now. I'll also try alternating 1s and 0s to see which cores are best for use. I don't know what order AMD numbers them, or how FSX will choose them using this tweak, but we'll just see if it helps.
Got time on the hands, so lets discuss this some more...
You are correct when it comes to adding the line
Affinitymask = xxxx
The sequence of "0" and "1" you put in, ie 10101010 as you refer to here, has nothing to do with FSX or Intel or AMD.
It is binary, the language that your computer understands. (You have 8 digits (bits) in your "string", and that makes it a "byte")
However, whilst you can with the "Affinitymask" point FSX to the available cores you want it to use, you cannot specify specific "jobs" to specific cores.
If you are going to input a whole byte, then you need to be sure that all 8 cores are running.
For those whose PC is most likely not
a true 8 core machine, but rather a 4 core machine with Hyperthreading, then you need to be sure that hyperthreading is activated in the bios.
An easy way to check is as follows:
Go CTR+ALT+DEL and click on task manager, then on "performance"
Under "CPU Usage History", you will see 8 "minigraphs", one for each running core.
(If you only have 4 minigraphs, then your hyperthreading is not running.)
The Intel i5 is a true 4 core CPU, with no hyper threading..
i7 is 4 core +hyperthreading
Now the bad news:
Whether FSX can utilize hyperthreading
is much debated...General consensus is that it DOES NOT. This means FSX will only schedule to the 4 "true" cores, at best.
Remember now that FSX and its forerunners where originally compiled for single core machines.
To help take advantage of the newer dual cores launching at the time, Microsoft put out some patches, ie SP1 and SP2 and acceleration.
These patches are not the full rescue...and I would imagine that this is the area that Prepar3d is working on as we speak..true utilizing of multicoresSo back to the Affinitymask.
The "value" you ascribe to the affinitymask should be a decimal number and not a binary value.. FSX will read and then translate the value to binary.
ie, binary value "11111111" should be written as 255 - the decimal equivalent.
The value 10101010 should then be written as 170However, since we don't believe that hyperthreading is useful
, or if we run an i5 CPU, we can limit ourselves to four digits.
We can use all four cores 1111, written as 15.
Or, as is my preference,
use three cores 1110, written as 14. (Note here that the "0" here is CPU core number 1.. followed by core 2, 3 and 4.)
So now we have:
Affinitymask=14And that is about as far as the "Affinitymask" can help you..How to convert binary to decimal?
Launch your calculator and select the programmer option.
Select Word and Bin, then input the binary you want.
Click on the Dec, and your decimal will be displayed This remains a critical tweak for FSX and it is important that it is added to the cfg.sys