I finish my research on CPU affinity performance for games on dual core or dual CPU systems.
I use windows w2k3 enterprise because is the only available OS that can run the windows resource manager. http://www.microsoft.com/windowsserver2003/downloads/wsrm.mspx
To check the process affinity and CPU usage I use sysinternals process explorer
http://www.sysinternals.com/Utilities/ProcessExplorer.html
The windows resource manager allows you to make affinity policies for process and services.
EJ: you configure WRM to run all the OS on CPU0 and the .exe of your games or other single treaded apps on CPU1.
The WRM works as a service so if you have the service on manual your OS starts like the average Joe dual system and all of your games and app run on both cores or wherever the OS tread scheduler thinks they should run.
The WRM do not allow you to manage the OS process, but a quick registry edit cleaning the System Exclusion List you could make one of your cores totally empty and ready for your CPU hungry single treaded apps/games.
I chose to make CPU1 free because CPU0 is the default for several things.
Performance Gains
I use PI calculations, Sandra, 3dmark 2003&2005, CPU only benchmarks etc.
On PI calculations or any other single treaded CPU benchmark if you make it run with the WRM properly configured you get 5% or less gains in performance, but your OS stays totally responsive because the tread of the bench app do not interfere with all the OS and user process. (the score of single treaded is half the score of a dual cpu capable app.)
3dmark give some 5% or less.
In games is a totally different story.
If the game is pretty much VGA limited (like BF2) your gains will be on parts where the CPU became the limit, I get more max FPS number but my average FPS gains in BF2 are 8/10% at the most.
In BF2 I pass from a max 80FPS to 92FPS, as I said before on games that are seriously VGA limited the gains are limited but they exist.
On HL2 my x800xl is not too much of a bottleneck so in normal mode (no affinity optimizations) I put Dr freeman steady at 150FPS and when I start the WRM and the HL2 run alone on CPU1 my FPS jump to 182!!!
I use a creative X-FI so in theory the board unloads my CPU from audio calculations; I think that people with onboard audio should get better results.
UPDATE
using WRM and my X-FI the unused core (cpu0) uses 10% cpu, I uninstalled my X-FI and use the onboard sound and configure the bf2 tu use software audio and high quality.
the unused core went to 15/20 with spikes of 25% of CPU usage!!!! and the audio quality have no inpact on FPS when runing with the WRM.
this shows that the X-fi really work and the redirection of all OS operatios to CPU0 have clearly advantage for onboard audio users.
IRQ
I use a resource kit utility to redirect all IRQ to CPU0 but I was unable to get a tangible performance gain.
Application Needed
I change the WRM .msi to run on XP but it fails to install the WRM service.
The only way to manage OS process affinity in XP is using sysinternals process explorer, but is not automatic.
I think that a application is needed because it is a pain to set up all the affinities by hand not to mention that there is a IRQ and tread process priority performace gains not deeply explored.
I found that NCR SMP Utilization Manager very awkward but has some nice features.
http://www.ncr.com/support/pcfiles/Utility/NTTOOLS/SMPUT200.EXE
So far the WRM is the best to manage process affinity.
WE NEED SOMEONE TO MAKE A APP LIKE THE WRM FOR XP.
please if you want to recreate this feel free to ask.
my machine
LANPARTY UT nF4 SLI-DR
AMD 3800 Dual core@2.8Ghz
Thermalrigh si-120
2x1G Ram TCCC
ATI X800XL
Creative X-FI EM
3x sata2 hitachi 80GB Raid0
1 WD 80GB
Nec DVD-R
Samsung DVD-CDR combo
Thernaltake Armour
Thermaltake 680W PSU
Aerocool Coolpanel (Front Panel)
Windows 2003 enterprise
I use windows w2k3 enterprise because is the only available OS that can run the windows resource manager. http://www.microsoft.com/windowsserver2003/downloads/wsrm.mspx
To check the process affinity and CPU usage I use sysinternals process explorer
http://www.sysinternals.com/Utilities/ProcessExplorer.html
The windows resource manager allows you to make affinity policies for process and services.
EJ: you configure WRM to run all the OS on CPU0 and the .exe of your games or other single treaded apps on CPU1.
The WRM works as a service so if you have the service on manual your OS starts like the average Joe dual system and all of your games and app run on both cores or wherever the OS tread scheduler thinks they should run.
The WRM do not allow you to manage the OS process, but a quick registry edit cleaning the System Exclusion List you could make one of your cores totally empty and ready for your CPU hungry single treaded apps/games.
I chose to make CPU1 free because CPU0 is the default for several things.
Performance Gains
I use PI calculations, Sandra, 3dmark 2003&2005, CPU only benchmarks etc.
On PI calculations or any other single treaded CPU benchmark if you make it run with the WRM properly configured you get 5% or less gains in performance, but your OS stays totally responsive because the tread of the bench app do not interfere with all the OS and user process. (the score of single treaded is half the score of a dual cpu capable app.)
3dmark give some 5% or less.
In games is a totally different story.
If the game is pretty much VGA limited (like BF2) your gains will be on parts where the CPU became the limit, I get more max FPS number but my average FPS gains in BF2 are 8/10% at the most.
In BF2 I pass from a max 80FPS to 92FPS, as I said before on games that are seriously VGA limited the gains are limited but they exist.
On HL2 my x800xl is not too much of a bottleneck so in normal mode (no affinity optimizations) I put Dr freeman steady at 150FPS and when I start the WRM and the HL2 run alone on CPU1 my FPS jump to 182!!!
I use a creative X-FI so in theory the board unloads my CPU from audio calculations; I think that people with onboard audio should get better results.
UPDATE
using WRM and my X-FI the unused core (cpu0) uses 10% cpu, I uninstalled my X-FI and use the onboard sound and configure the bf2 tu use software audio and high quality.
the unused core went to 15/20 with spikes of 25% of CPU usage!!!! and the audio quality have no inpact on FPS when runing with the WRM.
this shows that the X-fi really work and the redirection of all OS operatios to CPU0 have clearly advantage for onboard audio users.
IRQ
I use a resource kit utility to redirect all IRQ to CPU0 but I was unable to get a tangible performance gain.
Application Needed
I change the WRM .msi to run on XP but it fails to install the WRM service.
The only way to manage OS process affinity in XP is using sysinternals process explorer, but is not automatic.
I think that a application is needed because it is a pain to set up all the affinities by hand not to mention that there is a IRQ and tread process priority performace gains not deeply explored.
I found that NCR SMP Utilization Manager very awkward but has some nice features.
http://www.ncr.com/support/pcfiles/Utility/NTTOOLS/SMPUT200.EXE
So far the WRM is the best to manage process affinity.
WE NEED SOMEONE TO MAKE A APP LIKE THE WRM FOR XP.
please if you want to recreate this feel free to ask.
my machine
LANPARTY UT nF4 SLI-DR
AMD 3800 Dual core@2.8Ghz
Thermalrigh si-120
2x1G Ram TCCC
ATI X800XL
Creative X-FI EM
3x sata2 hitachi 80GB Raid0
1 WD 80GB
Nec DVD-R
Samsung DVD-CDR combo
Thernaltake Armour
Thermaltake 680W PSU
Aerocool Coolpanel (Front Panel)
Windows 2003 enterprise