PDA

View Full Version : For those with multi core processors



Mr_Zooly
04-08-2008, 02:50 PM
I did have a few problems regarding framerates in game, a good friend has helped me by giving a fix for my issues and now I will share them with you all.
in the config file look for:
[rts]
ProcessAffinityMask=2 for dual core processors.

if you have a quad core use: ProcessAffinityMask=4

TgD Thunderbolt56
04-09-2008, 11:51 AM
You can see/learn more here too: http://il2.netteq.com/Muliti-Core_Guide.aspx

major_setback
04-09-2008, 12:23 PM
Originally posted by Mr_Zooly:
I did have a few problems regarding framerates in game, a good friend has helped me by giving a fix for my issues and now I will share them with you all.
in the config file look for:
[rts]
ProcessAffinityMask=2 for dual core processors.

if you have a quad core use: ProcessAffinityMask=4

What is your frame rate improvement?

I never bothered with this because they said over at the Community Help forum that there was no improvement gained by doing this.

I would like to know if that's changed.

Patriot_Act
04-09-2008, 12:38 PM
In my case no improvment.
None at all, and I followed the procedure
to the last detail.

Funny thing that the affinity was already set to 4.

It looked like this

core 0 core1 core2 core3

all were checked.

The LCD core used indicator showed an interesting change though.
It shows all 4 cores in use, but rarely more than 31% usage.

I get the feeling that this game is NOT as CPU
dependant as some people claim.

I run a AMD Quadfather 4 core FX-74.
4 gigs RAM and SLI 8800GT.

BD track tests still hang below the best with
7800GT SLI by about 10% at 74.

P.A.

striker-85
04-09-2008, 02:06 PM
Originally posted by Patriot_Act:
It looked like this

core 0 core1 core2 core3

all were checked.

The LCD core used indicator showed an interesting change though.
It shows all 4 cores in use, but rarely more than 31% usage.

I get the feeling that this game is NOT as CPU
dependant as some people claim.


The actual IL-2 game runs on a single thread. If you look at the IL-2 process you will see many threads but only one of those is the actual game itself.

Because the game is single threaded it can only be executed on a single core at any one time, meaning the game thread will not execute on more than one core at the same time.

What you are seeing in the results above is the OS load balancing the game thread, it moves it across the available cores. As the OS determines a core is less utilized it will moved the thread to that core. Because the OS is performing this balancing act across the cores you will see the load distributed across them. But you will never get more than what you would get if the thread executed on a single core, i.e. adding the percentages of the thread running on each core will not be greater than 100%.

Each time the IL-2 thread moves from a core or is pre-empted on the core it is executing on you get a context switch. The context switch means it saves the values in the processor registers for that thread and then executes the next thread. When it is time to execute the IL-2 thread it will then reload the processor registers from the previous context switch.

Also each core has its own L2 cache, so jumping from core to core you could lose some of the benefits of the cache as other running processes will uses the same cache, possibly pushing cached IL-2 stuff out or moving to a core that hasn't cached something the previous core had.

With the guide I tried to minimize context switches and cache invalidation by limiting only IL-2 to the second core and forcing everything else to use the first core.

For me I had about a 10-15 fps increase but I traced this down to the TIR software, and I could have used other methods to make this work.

I would say only the most technical of people may want to consider this, I don't think the average user will see any significant gains that would justify the pain of trying to do this.

I definatly made a significant reduction in context switches for the IL-2 game process but haven't really measured what that equates to in fps. I do know that screen freezes have never been an issue for me after doing this.

Patriot_Act
04-10-2008, 01:47 AM
That explains why the game runs just as fast on one, two, three, or four cores.

My older FX-57 single core machine inherited the SLI 7800GTs
Although in actual gameplay it's really not as good
it lays waste to this rig in the BD track score.

It's variable, but I will say the average BD track
test is at 88 fps.

The 7800 cards are overclocked a bit, my 8800s are not.

Funny thing, i tried overclocking the 8800s, no help, not one teenie bit!
It helps the 7800s by about the percentage of overclocking, 5%.


P.A.

WOLFMondo
04-10-2008, 01:52 AM
I got better performance forcing IL2 to run on one core of an AMDX2. Allowing to run on both cores caused occasional stutters.

Feathered_IV
04-10-2008, 06:31 AM
When I hit ctrl/alt/delete and access the Windows Task Manager, I can click on the process tab and then right-click on the programs running. One of the options there is Set Affinity. Does this mean a hassle free way of assigning processes to certain cores? http://forums.ubi.com/groupee_common/emoticons/icon_confused.gif

blairgowrie
04-10-2008, 08:07 AM
I must be a goof! I have dld the prioff exe but nothing happens when I try to run it. What am I missing?

Monterey13
04-10-2008, 08:38 AM
Originally posted by Feathered_IV:
When I hit ctrl/alt/delete and access the Windows Task Manager, I can click on the process tab and then right-click on the programs running. One of the options there is Set Affinity. Does this mean a hassle free way of assigning processes to certain cores? http://forums.ubi.com/groupee_common/emoticons/icon_confused.gif

No. It will revert back to default once the application is restarted. If you want to do that for each process every time, you could, but it would be tedious.

striker-85
04-10-2008, 10:02 AM
Originally posted by blairgowrie:
I must be a goof! I have dld the prioff exe but nothing happens when I try to run it. What am I missing?

It is a DOS app, you must run it in a DOS window. Instructions are posted here on how to use it.

http://il2.netteq.com/Muliti-Core_Guide.aspx

prioff is not such a great tool to run manually. I use it to set the affinity of processes when windows boots by changing the registry so prioff loads the startup applications.

I also modified a number of my shortcuts to run prioff which will launch the app I want to run, so the affinity is also automatically set that way when I start a program. The instructions for this is in the above link.

BUT, I would not worry about this stuff unless you are technically inclined, the benefit gained by this has yet to be proven to be worth the effort.

For me though it was worth it, but unless you know what you are doing you can cause problems or maybe miss a few things and not see any difference or make it worse.

striker-85
04-10-2008, 10:18 AM
Originally posted by Feathered_IV:
When I hit ctrl/alt/delete and access the Windows Task Manager, I can click on the process tab and then right-click on the programs running. One of the options there is Set Affinity. Does this mean a hassle free way of assigning processes to certain cores? http://forums.ubi.com/groupee_common/emoticons/icon_confused.gif

That is how I started testing to determine if there was any benefit to isolating IL-2 to a single core. In my case I found there was.

But as Monterey13 said above, the down side of this is that you have to do this everytime you reboot your PC or restart the process.

I did this for about 2 weeks and then decided to automaticaly set the affinity for processes when Windows boots and for apps that I launch.

I only needed to seperate a few processes to see a benefit, in my case it was TIR and IL-2 and a few others. But once I made it automatic I went ahead and put everything on the first core except IL-2, which I set to the second core.

There are many ways to do this but I have only posted the way I did it. Now for me Windows boots and everything is set to its correct processor automaticaly and when I run commonly used programs they are set automatically now.

blairgowrie
04-10-2008, 11:34 AM
Thanks striker-85. I had my good friend Quazi set prioaff up for me by remote assistance. You are right, it is fairly complex and easy to mess up, if you don't know what you are doing.

Feathered_IV
04-12-2008, 07:19 AM
Cheers Striker. Got it set up without too much trouble. Doing a bit of testing now... http://forums.ubi.com/images/smilies/16x16_smiley-wink.gif

Choctaw111
04-12-2008, 10:10 AM
The ProcessAffinityMask uses bitmap values, so merely selecting 4 for a quad core really doesn't cover it. The number 15 actually allows Il2 to use all cores, or more accurately allows Il2 to switch between all 4 cores. Selecting 0 will use Core 1, 1 will use Core 2, 2 will use Cores 1 and 2 there are many other combinations to use. I find I get the best performance using 2, that is to say using Cores 1 and 2 for Il2, and using my other 2 Cores for my other apps, Commo, TrackIR, HL, etc.
Trust me that I have done much testing on my Quad Core machine, in conjunction with several other people, Quazi being one of them (he is really good at this stuff), regarding this matter.

blairgowrie
04-12-2008, 11:22 AM
Can anybody hazard a guess what this error message means when my rig first boots up? The allocation of cores seems to work ok. Quazi has done a remote assistance and has deleted and reinstalled all the prioaff stuff as per the instal guide but it still shows this error message which makes me think something might be wrong.

http://img.photobucket.com/albums/v41/blairgowrie/Prioaff.jpg

Choctaw111
04-12-2008, 12:24 PM
Did that particular applications' folder change? Maybe that app was removed even, or was damaged? Do you know which app Prioaff is failing to allocate? You could try to reinstall that app that Prioaff is having trouble with.

blairgowrie
04-12-2008, 12:58 PM
I went back and checked but can't find any app that didn't allocate. Probably not an issue.

Bearcat99
04-12-2008, 07:44 PM
Originally posted by WOLFMondo:
I got better performance forcing IL2 to run on one core of an AMDX2. Allowing to run on both cores caused occasional stutters.

With me too... in fact I have a QM that I run to test my frames on my machine.. with core 0 I get frames of 76-86 when the QM opens up... on core 1 or both cores with the same QM it drops to 36 at the same point..