Parallel processing 将旧X10示例移植到版本2.5
我在试图编译的类中有一个旧的X10示例Parallel processing 将旧X10示例移植到版本2.5,parallel-processing,x10-language,Parallel Processing,X10 Language,我在试图编译的类中有一个旧的X10示例 import x10.array.Array; import x10.io.Console; ... public static def main(args: Array[String](1)) { val regionTest = 1..12; val testArray = new Array[Int](1..12, (Point)=>0); for ([i] in testArray) { testArr
import x10.array.Array;
import x10.io.Console;
...
public static def main(args: Array[String](1)) {
val regionTest = 1..12;
val testArray = new Array[Int](1..12, (Point)=>0);
for ([i] in testArray) {
testArray(i) = i;
Console.OUT.println("testArray("+i+") = " + testArray(i));
}
}
不幸的是,它似乎过时了。我自己就知道,现在必须编写publicstaticdefmain(args:Rail[String])
。val regionTest=1..12
的定义似乎没有问题。数组的语法一定是错误的,下面的所有行也可能是错误的。我试图用它来解决这个问题,但没有成功
我的设置正在运行,新的X10 Eclipse IDE项目中的初始类正在运行
有人能帮我将其移植到2.5.x版吗?X10 2.4版中有许多不向后兼容的更改,需要更改代码-请参阅指南 您的示例将更新如下:
import x10.regionarray.Array;
import x10.regionarray.Region;
import x10.io.Console;
....
public static def main(args:Rail[String]) {
val regionTest = Region.makeRectangular(1..12);
val testArray = new Array[Int](regionTest, (Point)=>0n);
for ([i] in testArray) {
testArray(i) = i as Int;
Console.OUT.println("testArray("+i+") = " + testArray(i));
}
}
这表明了一些重要的变化:
- (第1-2行)通用数组类已从
包移动到x10.array
。默认情况下不再导入这些类x10.regionarray
- (第6-7行)没有从
(远程
)到1..12
区域的隐式类型转换。必须显式构造
对象并将其传递给Region
构造函数x10.regionarray.Array
- (第7行)默认的整数类型现在是
,而不是Long
。Int
文本必须以字符“Int
”作为后缀,如“n
”(点)=>0n
- (第8-9行)数组类的索引类型已从
更改为Int
(以支持非常大的数据结构)。因此([i]在testArray中)的分解Long
点
迭代器
现在生成
,而不是i:Long
——这意味着现在在第9行分配给i:Int
数组元素时需要将Int
i转换为Int