从 dmapped 数组实例中提取 DSI 数组 class?
Extract DSI array class from dmapped array instance?
我正在对自定义分发层次结构进行一些性能测试,我需要访问支持映射数组的数组 class。
我可以通过 array.domain
访问支持域,但是支持数组 class.
似乎没有任何内容
例如,我将如何从以下代码中的块分布式数组A中提取BlockArr/LocBlockArr:
const Space = {1..8, 1..8};
const D: domain(2) dmapped Block(boundingBox=Space) = Space;
var A: [D] int;
var A_BlockArr_obj : BockArr = A.???
假设您想从后备数组 class 访问某些方法或字段。在 Chapel 1.16 中你可以这样写:
var A_obj = A._value;
A_obj.foo();
writeln(A_obj.myField);
_value
方法 returns 后备数组 class(如果启用了私有化,则为私有化副本)。可以在域和分布上调用相同的方法。请注意,这是有意未记录的,可能会在未来的版本中更改。
在 Chapel 1.17(将于 2018 年 4 月发布)中,数组、域和分布的方法调用和字段访问现在转发到支持 class,因此您可以改写:
A.foo();
writeln(A.myField);
如果可能,将在 class 的私有化实例上调用这些方法调用和字段访问。
我正在对自定义分发层次结构进行一些性能测试,我需要访问支持映射数组的数组 class。
我可以通过 array.domain
访问支持域,但是支持数组 class.
例如,我将如何从以下代码中的块分布式数组A中提取BlockArr/LocBlockArr:
const Space = {1..8, 1..8};
const D: domain(2) dmapped Block(boundingBox=Space) = Space;
var A: [D] int;
var A_BlockArr_obj : BockArr = A.???
假设您想从后备数组 class 访问某些方法或字段。在 Chapel 1.16 中你可以这样写:
var A_obj = A._value;
A_obj.foo();
writeln(A_obj.myField);
_value
方法 returns 后备数组 class(如果启用了私有化,则为私有化副本)。可以在域和分布上调用相同的方法。请注意,这是有意未记录的,可能会在未来的版本中更改。
在 Chapel 1.17(将于 2018 年 4 月发布)中,数组、域和分布的方法调用和字段访问现在转发到支持 class,因此您可以改写:
A.foo();
writeln(A.myField);
如果可能,将在 class 的私有化实例上调用这些方法调用和字段访问。