X10代码不能识别CPU的第二核心



我在X10中编写了一个规范的"Hello, World"演示类:

class Hello {
  public static def main(args:Rail[String]):void {    
     finish for (p in Place.places()) {
        at (p) async Console.OUT.println(here+" says hello");
     }
     Console.OUT.println("Goodbye");
  }
}

我的计算机有一个2核CPU,但是X10代码不能识别两个处理核心。据我所知,它只能识别CPU的一个核心。因此,控制台的输出如下所示:

Place(0) says hello
Goodbye
不是

Place(0) says hello
Place(1) says hello
Goodbye

如何强制X10代码识别我的笔记本电脑上可用的CPU的所有处理核心?我的笔记本电脑配备了英特尔酷睿2双核CPU。操作系统为Windows 7

提前感谢。

默认情况下,无论有多少物理内核可用,X10都只启动一个位置。(实际上,根据您的应用程序,最好为每个多核CPU运行一个位置,并使用async来利用位置内的多线程并行性。

要请求不同数量的位置,要么设置环境变量X10_NPLACES,要么对x10启动器使用-np选项,即

X10_NPLACES=2 x10 Hello
x10 -np 2 Hello

相关内容

  • 没有找到相关文章

最新更新