Using processor affinities?

Started by Mark_Kratzer, May 21, 2015, 07:29:49 AM

Previous topic - Next topic

Mark_Kratzer

Okay.  So, I read all the documentation I could today; both offline and online.

There was an article talking about how logical processors (HT) are not mirrors of one another.  I had thought they were.

So, I have a i7 5930K.  6 cores + HT.  I had assumed that assigning something 10-11 if effectively the same thing; not matter whether the process is assigned to 10 or 11.  But according to this paper assigning to 10 results in the bulk of available cycles.  While as assigning to 11 results in limited cycles.

So, what should I be doing in Processor Lasso.  Should I only bind affinities to the even numbered processors (let 0 be an even number)?  Or should I be binding affinities to pairs such as 10-11 which no negative impact?

Also, I remember seeing somewhere in a document that there is an option to tell Processor Lasso to ignore logical processors.  But I cannot find it anywhere.  Is there such a thing?

Thanks.

Jeremy Collake

I didn't notice this forum post until today (and generally try to leave the forum to the volunteers and users, until my help is necessary). Anyway, apologies for the delay.

There is 'Hyperthreaded core avoidance' which basically sets the CPU affinity to every other logical processor, so you'd have a CPU affinity that forces a process's threads onto distinct CPUs.

Note that physical processors are also represented as logical processors, so technically they are all logical processors, I'm just trying to - again - convey the difference between a real physical CPU and the 2 logical cores that represent it, which of course you understand, but other users may not.

As for specifically what to do in your case, it's hard to say -- and experimentation may be the best method to discover. I would advise limiting your changes to as few as possible. If you have problematic processes, you can 'quarantine' them to only a couple logical cores, for instance. Conversely, if you have a process you want to ensure has max performance, you could use 'HyperThreaded core avoidance' to make sure it's threads are well positioned on distinct CPUs, *but* if that process has more threads than 1/2 your logical cores, then you may lose performance. So, it's a tricky call, varies for every PC, depending on what software is installed, and the user behavior on that PC.
Software Engineer. Bitsum LLC.