Actual Tools

Change Program Affinity

Available in: Actual Window Manager, Actual Window Guard

The Change Program Affinity action provides you better control over CPU resources in a multi-processor system (including those with the HyperThreading™ and multi-core CPUs). Having several CPUs tremendously increases the computing power and also allows finer and more accurate load distribution between available processor units.

By default, Windows® distributes currently running applications between processors uniformly, thus providing the equal load for all available processor units. Saying shortly, it runs all applications on all processors. Let's imagine a set of "On/Off" switches where each switch corresponds to an existing CPU - this "set" is called program CPU affinity. Each running program has its own CPU affinity, and all those affinity "switches" are on by default (i.e. program runs on all available CPUs). However, sometimes arises a need to free CPU resources for a computationally intensive task (like bulky data compression, sound/video encoding, rendering of 3D-scenes, complex mathematical calculations, etc.) - adjusting program affinities can help on this way.

Hint  For example, we have two processors (CPU 0 and CPU 1) installed in our system, and we are currently running Microsoft Word, Internet Explorer and 3D Studio Max. Also, we have an urgent task need to be completed in 3D Studio Max as soon as possible, so we want to grant more CPU resources to it. The default affinity picture will be as follows:

Program CPU 0 CPU 1
Microsoft Word on on
Internet Explorer on on
3D Studio Max on on
CPU load before adjusting affinities

To provide 3D Studio Max with more CPU resources, we turn off CPU 1 switches in Microsoft Word and Internet Explorer:

Program CPU 0 CPU 1
Microsoft Word on off
Internet Explorer on off
3D Studio Max on on
CPU load after adjusting affinities

So now 3D Studio Max will use CPU 1 exclusively and therefore will finish its calculations more quickly.

Hint  Another use for this action is improving the compatibility of aged software (like old games or legacy programs) with a modern hardware. Such programs were developed in "single-CPU era" and, being run in multi-processor environment, they often become unstable or even crash unexpectedly. This situation can be improved by adjusting such programs' CPU affinity so that only one CPU left enabled, and therefore the program will run in a virtual single-CPU environment. For example, such old but still popular PC games as System Shock 2 and Thief: The Dark Project (released in 1998 by Looking Glass Studios) or Grim Fandango (released in 1998 by LucasArts Entertainment) require changing their affinity so that they will run on a single processor only to keep their work stable - thus, you can use the described action to do this automatically at game's startup.

Related actions: Change Program Priority.

Possible triggers: Startup.