web-dev-qa-db-ja.com

Windows 7でstart / AFFINITYコマンドでアフィニティを設定します

start /AFFINITY [n] [.exe]コマンドを使用して、指定したアフィニティで実行可能ファイルを起動しています。 8個のプロセッサ(1,2,3,4,5,6,7,8)を搭載したシステムがあります。すべての奇数のプロセッサ(1,3,5,7)を使用するようにプロセスを設定したいと思います。これを行う方法がわからないため、startコマンドを使用してそれが可能かどうかを知りたいと思います。そうでない場合、代替のcommand-lineの方法がありますか?

Startコマンドのヘルプは特に有用ではありませんでした。

 AFFINITY    Specifies the processor affinity mask as a hexadecimal number.
             The process is restricted to running on these processors.

             The affinity mask is interpreted differently when /AFFINITY and
             /NODE are combined.  Specify the affinity mask as if the NUMA
             node's processor mask is right shifted to begin at bit zero.
             The process is restricted to running on those processors in
             common between the specified affinity mask and the NUMA node.
             If no processors are in common, the process is restricted to
             running on the specified NUMA node.
20
bradvido

AFFINITYは hexidecimal mask で動作します。これにより、すべてのプロセッサをきめ細かく制御できます。 右端ビットは、最下位CPU(0)を指定することに注意してください( KB 299641 を参照)。

問題の場合、0xAA(10101010)は、プロセッサ1、3、5、および7を使用してプロセスを実行することを要求しますが、0、2、4、または6は使用しません。コマンドラインで「0x」を省略してください。

 start /affinity AA app.exe

他の例:

 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)
23
ladenedge

適切な16進数を取得するには、平面形式8765 4321(8コアCPU用)のコアを逆方向に想像してください(ただし、1234 5678とは異なります)

コア7、6、3をアクティブにするには、number 0x64アフィニティの場合:

/AFFINITY 0x64

見やすくするために、一致と比較:0110 0100-番号= 0x64(8765 4321)-コア

@ladenedgeの例:/AFFINITY AA1010 1010-数値= 0xAA(8765 4321)-コア

参照: Windows 7、8、またはVistaで特定のCPUに割り当てられたアプリケーションを起動する

9
NEf

独自の計算ニーズに関する詳細情報:

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)

その結果:

  • CPU ID 0、1、2、3、4、5、6、7のマスク:255(個々のCPU 10進数値の合計)、つまり16進数の「FF」マスク
  • CPU ID 0、2、4、6のマスク:85(個々のCPU 10進数値の合計)、つまり16進数としての「55」マスク

参照:「これらは8 CPUシステムのアフィニティマスク値」パターンを https://msdn.Microsoft.com/en-US/library/ms187104.aspx で検索します。

4
Pascal