指定在多核系统中使用的CPU数量

时间:2013-06-06 12:48:22

标签: java multithreading parallel-processing multicore

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

2 个答案:

答案 0 :(得分:0)

只创建你想要使用核心的线程(使用1个线程在1核心执行)。

此处不可能限制Java中的核心数量。

答案 1 :(得分: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应用程序!

另外,请参阅this帖子了解JNI方法和进一步讨论。