1

我在 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 的所有处理核心?我的笔记本电脑配备了 Intel Core 2 Duo CPU。操作系统为 Windows 7。

先感谢您。

4

1 回答 1

1

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

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

X10_NPLACES=2 x10 Hello
x10 -np 2 Hello
于 2014-07-05T18:13:04.130 回答