Jump to content
  • 0
PiNoY

running et dedicatedly with one CPU core

Question

Ok, have anyone here tried running ET with one core from a multi-core CPU or dual core CPU? how was the performance, any noticeable difference felt? improvement feedback would be appreciated if any. thanks in advance!

Share this post


Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 0

can't tell the difference

Share this post


Link to post
Share on other sites
  • 0

ok now i know. thank you guys for the replies.

Share this post


Link to post
Share on other sites
  • 0

When I played on windows with pb, since pb used to give me some (minor) fps lags, I moved et to one core and all pb services and some other processes to the other (using winafc), and I noticed that my fps were more steady, no placebo it was a real improvement

 

With tzac there are no lags anymore and I wouldn't mess with et in any way while using it, you never know :)

 

Linux has no problems in managing cores, it does a much better job than win, so I never needed anything like that. Last summer I tried a python script that was run via lua from conky to switch the core used by et, if the temperature of that core was too high if compared to the other. In the end I decided it was useless and that the os did a better job already, and maybe I needed a better heatsink...

Share this post


Link to post
Share on other sites
  • 0

Interesting to know your experience with that. I would try this as soon as I get back home and see any differences.

Share this post


Link to post
Share on other sites
  • 0

Linux has no problems in managing cores, it does a much better job than win, so I never needed anything like that.

 

What? *nix's process scheduler is horrible in comparison to Windows.

 

The reason you don't need to screw with processor affinity on *nix is because you don't have a PB Driver trying to scan you entire harddisk all the time, thus creating more threads whilst still accessing the originals within ET.exe on the original core. Switching ET.exe (and thus it's dependents, ie. PB) to one core speeds it up because there's no cross-core access between PB and ET.exe itself.... IF you disable PB and leave affinity alone, since ET is single threaded, it has exactly the same result as setting affinity.

Share this post


Link to post
Share on other sites
  • 0

The reason you don't need to screw with processor affinity on *nix is because you don't have a PB Driver trying to scan you entire harddisk all the time, thus creating more threads whilst still accessing the originals within ET.exe on the original core. Switching ET.exe (and thus it's dependents, ie. PB) to one core speeds it up because there's no cross-core access between PB and ET.exe itself.... IF you disable PB and leave affinity alone, since ET is single threaded, it has exactly the same result as setting affinity.

Well, of course I don't know how much cpu does pb actually use on Linux, never checked, maybe it just feels smoother because it doesn't use as much cpu as in win (btw, punkbuster doesn't check your entire hd, I don't know where you found this piece of information, because pb just checks some files inside you game folders, and maybe not even that).

 

But, I had a (slightly) better performance and fps stability (in windows) doing the exact opposite of what you said, i.e. forcing et.exe in 1 core, and pb services in another core.

That means that the potential slowdown caused by what you call 'cross-core' access (you mean accessing the cache? I'm not such an hardware expert, actually I don't know if in my cpu each core has its own cache) is more than compensated by the fact that pb services have a core all for them. (And pb doesn't necessarily access the same parts of memory the game is accessing in a given moment, let alone when it needs to do some totally independent things like calculating the md5 of a pk3 etc.)

 

What? *nix's process scheduler is horrible in comparison to Windows.

horrible is a big word, care to elaborate (or give some link)?

Share this post


Link to post
Share on other sites
  • 0

Et uses one core by default...even if you have multi-core processor...unless you set r_smp 1 ???....but its experimental in ET

Edited by linuxbear64

Share this post


Link to post
Share on other sites
  • 0

Now this is getting confusing for me. The software that I used is somehow showing ET is using -- core (no numbers shown), it doesnt show if its core 1 or 2 while others like Chrome/Firefox or windows are using cores 1,2 ( or can be changed to dedicated core).

 

I tried launching ET with high priority and affinity 1 as parameters using MSDOS binary start, the results were - affinity assignment didnt work (was not applied) but high priority has taken effect based on Task Manager | Process view.

 

Then I tried using Task Manager and attempted several times to change ET affinity core while ET running, failed. But I can change the ET program priority value from Normal to High or Real Time while ET is running. The problem of ET running on High is it will lag first on the very first 3 minutes of playing (red connection graphs instead of green) then it will be just fine after that.

 

Weird to find out that winafc could not work with ET. It seemed to me that winafc could not assign core affinity to ET using profile, but worked with other programs such as Chrome.

 

Am going to use another software this evening or tom, I think its affinity manager and see how it works.

Share this post


Link to post
Share on other sites
  • 0

Et uses one core by default...even if you have multi-core processor...unless you set r_smp 1 ???....but its experimental in ET

That was understood.

Actually r_smp is available only in the Linux version, and even there it does nothing, there is a function that always returns 0 (always fails, it's just a 'xor eax,eax ret', as far as I remember), so it always says 'acceleration failed' by design.

But I think our problem here was to choose the core where et should run, the fact that it's one core, and only one, is understood I think

 

Now this is getting confusing for me. The software that I used is somehow showing ET is using -- core (no numbers shown), it doesnt show if its core 1 or 2 while others like Chrome/Firefox or windows are using cores 1,2 ( or can be changed to dedicated core).

[cut]

In my case (I have win XP, maybe that's the reason?) winafc does change et affinity (and process explorer tells me that affinity is set to cpu0 or 1, and the cpu graph shows clearly that one core is being used more than the other)

 

I made a little test:

etpro lan server with pb, then connect to it with pb, cg_lagometer 2 (an etpro setting to see a graph of your fps) ervery second or so I have a huge spike. Winafc helped me reduce this spike by putting pb in a separate core than et.

same server, but without pb: no big spikes, that means pb is the main reason

Share this post


Link to post
Share on other sites

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


×