在Chapel

时间:2018-01-05 22:16:05

标签: distributed-computing chapel

我注意到这可以在Chapel中使用。我可以通过将整数数组转换为domain(int)

来将其转换为集合
var x: [1..4] int = (4,5,6,6);
var d = x : domain(int);

writeln(x);
> {4,6,5}

这非常有用,但我想知道是否会出现失败的情况,例如在分布式环境中。

我使用的另一个功能是在投射到域时重复删除集合。

var y = {11,13,15,15};
writeln(y);
> {15,11, 13}

是否有更有效的方法来执行此操作或这是首选方法?我无法计时,因为我无法访问足够大的群集A.T.M。

1 个答案:

答案 0 :(得分:2)

  

我想知道是否会出现失败的情况,例如在分布式环境中。

不应该。像这样的表现良好的Chapel程序在共享和分布式内存执行上下文中应该在功能上等效。当然,性能可能会有所不同(无论好坏,取决于您的数据和计算的分布方式)。

  

有更有效的方法吗?或者这是一种首选方法?

我怀疑Chapel定义了一个首选方法,但这应该是 O(n)(元素数量的线性),所以我认为它应该是合理的,渐近地说。我没有尝试在Chapel或其他语言中优化这个习惯用法的任何直接经验,因此我不知道首选方法。