Special Aircraft Service

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2 3   Go Down

Author Topic: Process affinity mask hidden settings?  (Read 12905 times)

0 Members and 1 Guest are viewing this topic.

marcost

  • Modder
  • member
  • Offline Offline
  • Posts: 1088
  • Keep calm and run away
Process affinity mask hidden settings?
« on: February 09, 2013, 01:42:04 AM »

Hi I have only ever found descriptions of the conf.ini option Processor affinity mask settings from 0 to 15. In our never-ending search to optimise everything about Il2, I thought I'd try some other numbers in there. Here's what I appear to get when checking with W7 64 resource manager:

setting in conf.ini=apparent core activity in resource monitor during mission

0=4
1=0
2=1
3=0 
4=2
5=0    2
6=2
7=0    2
8=3
9= freeze
10=3   
11=0  3 
12=2
13=0  2
14=2
15=0  3 
16=4
17=0  4
18=4
19=0  4
20=2  4
21=0  2  4
22=2  4
24=0
28=2  4
35=0
41=0


Look at 21 - activity on three cores!?

Here's the resource monitor when set to 21



Note in the list on the left it shows Il2 running on 12, but it shows that for every setting I tried. It's the graphs that change. Maximum threads I got on any setting was 24.

All my other apps (trackIR etc) are set to run on core 0 so any activity on other cores I assume is IL2. Here is the activity for the same mission on setting 12, proving the low level of background activity on core 0?




My spec - I72600k, 8gb RAM, GTX660ti

Is this known behaviour? Can anyone replicate this or tell me what's going on

I'm not going to claim FPS improvement at this stage, especially as my install won't run ntrak files for some reason

Regards,


M

Logged

SAS~Malone

  • flying as #46 with the FAC
  • Editor
  • member
  • Offline Offline
  • Posts: 14562
  • proud member of that 'other' site
Re: Process affinity mask hidden settings?
« Reply #1 on: February 09, 2013, 01:44:48 AM »

i am watching, hoping to learn something from this.
i am using a dual-core Athlon +5200 cpu, also W7 64-bit, and i don't think i've ever managed to set Il-2 to use both cores....
Logged
.....taking fun seriously since 1968.....  8)

Mick

  • Modder
  • member
  • Offline Offline
  • Posts: 5535
Re: Process affinity mask hidden settings?
« Reply #2 on: February 09, 2013, 01:59:21 AM »

I am currently using :

[rts]
ProcessAffinityMask=2

... and my 2 cores seem to be used (Intel E8400 dual core proc)

Did you think of deleting the comma in front of ProcessAffinityMask ...?
Logged

marcost

  • Modder
  • member
  • Offline Offline
  • Posts: 1088
  • Keep calm and run away
Re: Process affinity mask hidden settings?
« Reply #3 on: February 09, 2013, 03:18:23 AM »

more:

23=1  4
24=0 4
25=0 3  4
26=1  3 4
27=1 4

Apparently on a quad core you may see eight cores in the monitor - four real and four virtual due to hyperthreading. Don't know which is which though, 0to3=real, 4to7=virtual? 0,2,4,6= real 1,3,5,7=virtual?
Logged

PA_Willy

  • member
  • Offline Offline
  • Posts: 775
Re: Process affinity mask hidden settings?
« Reply #4 on: February 09, 2013, 04:06:29 AM »

0, 2, 4 and 6, are real cores.

W7 is smarter than Vista and XP, and this OS ever assigns tasks to real cores first. Only if all true cores are in use, assigns tasks to virtual ones.
Logged

marcost

  • Modder
  • member
  • Offline Offline
  • Posts: 1088
  • Keep calm and run away
Re: Process affinity mask hidden settings?
« Reply #5 on: February 09, 2013, 04:07:47 AM »

Ok thanks Willy

Still experimenting:

110=2  5
356=0 2 5 6
550=0 2 4  6
Logged

SAS~Storebror

  • Editor
  • member
  • Offline Offline
  • Posts: 24037
  • Taking a timeout
    • STFU
Re: Process affinity mask hidden settings?
« Reply #6 on: February 09, 2013, 07:33:54 AM »

ProcessAffinityMask is a setting which gets routed directly to the operating system.
In your case marcost your CPU is a quad core with hyper threading, meaning that you have 4 physical cores in total where each simulates an additional core.
Your core's numbers hence are:

1 = physical core no. 1, thread 1
2 = physical core no. 1, thread 2
3 = physical core no. 2, thread 1
4 = physical core no. 2, thread 2
5 = physical core no. 3, thread 1
6 = physical core no. 3, thread 2
7 = physical core no. 4, thread 1
8 = physical core no. 4, thread 2

Per default the "thread 2" cores will be parked unless there's heavy CPU load with more than 4 threads in parallel.
This means if you'd like to use the first 3 (physical) cores you have to use core no. 1, 3 and 5 (in resource monitor, which is zero-based, this means core 0, 2 and 4).
Writing this down in binary format gets you this result:
Core 0 = 1 (physical core no.1, thread 1: Use this core)
Core 1 = 0 (physical core no.1, thread 2: Don't use this core)
Core 2 = 1
Core 3 = 0
Core 4 = 1
Core 5 = 0
Core 6 = 0
Core 7 = 0

Now write down the "0"s and "1"s in reverse order and you get this:
00010101
This is the binary value of your ProcessAffinityMask setting, in decimal this is
21

You can do the same with any number of cores. E.g. if you happen to have a hexa-core system with hyperthreading, this would mean you have 12 cores in total.
Let's say you don't wanna let IL-2 hog the hyper threading (which means it should only use physical cores) and you wanna keep core no.0 free for the OS, then you get this binary setting:
010101010100
This is decimal 1364, which is the value you'd have to assign to ProcessAffinityMask to get that effect.

Best regards - Mike
Logged
Don't split your mentality without thinking twice.

marcost

  • Modder
  • member
  • Offline Offline
  • Posts: 1088
  • Keep calm and run away
Re: Process affinity mask hidden settings?
« Reply #7 on: February 09, 2013, 09:05:15 AM »

hi Mike,

Fantastic, thank you for taking the time to explain - that is very clear.

So if I want to use core 1,2,3 and leave 0 free for the OS:

Core 0 = 0
Core 1 = 0
Core 2 = 1
Core 3 = 0
Core 4 = 1
Core 5 = 0
Core 6 = 1
Core 7 = 0

binary 01010100 = 84 decimal

Correct?

And any point in terms of Il2 performance to address the virtual cores as well/instead?

Thank again,

Martin
Logged

Hangman

  • Modder
  • member
  • Offline Offline
  • Posts: 819
Re: Process affinity mask hidden settings?
« Reply #8 on: February 09, 2013, 01:21:19 PM »

So does this mean IL-2 can use more than one CPU core.
Where those decimal amounts comes from?
Logged

marcost

  • Modder
  • member
  • Offline Offline
  • Posts: 1088
  • Keep calm and run away
Re: Process affinity mask hidden settings?
« Reply #9 on: February 09, 2013, 02:45:54 PM »

I set process affinity mask to 84 and can see activity on cores 2 3 4 (1 2 3 in Windows) and Il2 is running smoother and more consistent frame rates

I worked out the binary 01010100 then converted it like this using the binary scale:

0x1=0
0x2=0
1x4=4
0x8=0
1x16=16
0x32=0
1x64=64
0x128=0

4+16+64=84

Or just use a converter http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html
Logged

SAS~Tom2

  • SAS Honourable Member
  • member
  • Offline Offline
  • Posts: 7954
  • no sweat
Re: Process affinity mask hidden settings?
« Reply #10 on: February 09, 2013, 03:15:17 PM »

Interisting, I usually use 8 or 15, 15 seems well for me.
Will try some others. :)
Logged

greybeard

  • Modder
  • member
  • Offline Offline
  • Posts: 1931
  • diligo veritatem
Re: Process affinity mask hidden settings?
« Reply #11 on: February 10, 2013, 02:57:21 AM »

Or just use a converter http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

You may use the calculator which comes with Windows, setting it to "Scientific" or "Programmer", according to Win version. You must see "Bin" and "Dec" choices on its KB. Set to "Bin" and then write down the binary cod as per Storebror instruction and according to your personal choices, then click on "Dec" and voilĂ , you got the decimal counterpart!

I test framerate always with same track "TheBlackDeath", for its first two and half minutes (then I hit Pause), after having hit Shift+Tab and typed "fps START SHOW" (case sensitive) to get an objective datum. So far, I didn't get any improvement using or not the ProcessAffinityMask setting in "conf.ini". Maybe Win 7 is smarter than previous OS in multicore use, but it looks IL2 can't deal with CPU better than it. I've now an i7, and got about the same AVG - MAX and MIN fps (respectively around 90 - 140 - 20) with and without semicolon put before "ProcessAffinityMask=84" (if I didn't something wrong).

GB
Logged
CPU: Intel Core i5 3570K @ 3.40GHz - RAM: 16,0GB DDR3 @ 799 MHz - MoBo: ASUSTeK COMPUTER INC. P8Z77-V LX2 (LGA1155) - Vidcard: 4095 MBNVIDIA GeForce GTX 970 - Screen: EK241Y (1920x1080@75Hz) - Audio: Sennheiser HD 4.50BTNC headset.
Pages: [1] 2 3   Go Up
 

Page created in 0.042 seconds with 23 queries.