I am using the start /AFFINITY [n] [.exe]
command to start an executable with the specified affinity. I have a system with 8 processors (1,2,3,4,5,6,7,8). I\'d
More info for your own computation needs:
CPU ID CPU value (dec)
0 001 (= 2^0)
1 002 (= 2^1)
2 004 (= 2^2)
3 008 (= 2^3)
4 016 (= 2^4)
5 032 (= 2^5)
6 064 (= 2^6)
7 128 (= 2^7)
Consequently:
Reference: search the 'These are affinity mask values for an 8-CPU system' pattern at https://msdn.microsoft.com/en-US/library/ms187104.aspx.
AFFINITY works with a hexidecimal mask that should allow granular control of all of your processors. Note that the rightmost bit specifies the lowest-order CPU (0) (see KB 299641).
For the case in question, 0xAA (10101010) requests that your process run using processors 1, 3, 5 and 7, but not 0, 2, 4 or 6. Be sure to leave out the '0x' on the command line.
start /affinity AA app.exe
Other examples:
start /affinity 1 app.exe (only use CPU 0)
start /affinity 2 app.exe (only use CPU 1)
start /affinity 1F app.exe (only use CPUs 0, 1, 2, 3, and 4)
To get right HEX number imagine your cores in plane format 8765 4321 (for 8-core CPU) in backward direction (but NOT like 1234 5678)
To get cores 7, 6 and 3 activated, type number 0x64
for affinity:
/AFFINITY 0x64
For better look, match and compare: 0110 0100
- number = 0x64
(8765 4321) - cores
For @ladenedge example: /AFFINITY AA
1010 1010
- number = 0xAA (8765 4321) - cores
See also: Start an Application Assigned to a Specific CPU in Windows 7, 8, or Vista