2

ランタイム メソッドを使用して (Java で) 使用可能なプロセッサの数を取得する方法は既に知っていますが、必要なのは、マルチコア環境でのテストまたは実行の各ラウンド中に使用されるプロセッサの数を制御する方法です。別の言い方をすれば、12 個のプロセッサを搭載したマルチコア コンピューターの 1 つのノードで実験したいのですが、実験 (実行) の各ラウンドで、スレッド化されたアプリケーションを実行するプロセッサの数を指定できる必要があります。2 cpu、4 cpu、6 cpu、8 cpu、10 cpu、12 cpu の使用を指定できるようにする必要があります。どんな提案でも大歓迎ですありがとう

4

2 に答える 2

0

JVM にプロセッサ アフィニティを使用します。OS によっては、これが簡単な作業である場合とそうでない場合があります。:-)

Windows 7 については、http ://www.techrepublic.com/blog/window-on-windows/change-the-processor-affinity-setting-in-windows-7-to-gain-a-performance-edge を参照してください。 /5322

Linux の場合、これを使用します: http://linux.die.net/man/1/taskset

注: Java アプリケーションではなく、JVM に対してプロセッサ アフィニティを設定しています。

また、JNI のアプローチと詳細については、この投稿を参照してください。

于 2013-06-06T13:15:09.157 に答える
0

コアを使用したい数のスレッドのみを作成します (1 つのスレッドを使用して 1 つのコアで実行します)。

Java でコア数を制限することはできません。

于 2013-06-06T13:01:09.110 に答える