2

我已经知道如何使用运行时方法来获取可用处理器的数量(在 java 中),但我需要的是如何控制在多核环境中每轮测试或执行期间要使用的处理器数量。换句话说,我想在具有 12 个处理器的多核计算机的一个节点上进行实验,但我需要能够在每一轮实验(执行)中指定应该有多少处理器执行我的线程应用程序。我需要能够指定使用 2 CPU、4 CPU、6 CPU、8 CPU、10 CPU 和 12 CPU。欢迎任何建议谢谢

4

2 回答 2

0

只创建与您想使用内核一样多的线程(使用 1 个线程在 1 个内核上执行)。

这里不可能限制 Java 中的内核数量。

于 2013-06-06T13:01:09.110 回答
0

为 JVM 使用处理器亲和性。根据您的操作系统,这可能是一项微不足道的任务,也可能不是。:-)

对于 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

注意:您正在为 JVM 设置处理器亲和性,而不是 Java 应用程序!

此外,请参阅这篇文章了解 JNI 方法和进一步讨论。

于 2013-06-06T13:15:09.157 回答