论教堂稀疏的微妙之处

时间:2018-03-14 16:47:48

标签: multidimensional-array slice sparse-matrix hpc chapel

给定密集dom: domain(n);,其中n < 3,声明sps1: sparse subdomain(dom);产生sps1的稀疏子域dom。使用sps1,可以进行常规的阵列/矩阵切片。也就是说,给定矩阵A: [sps1],可以采用n {1维切片A。但是,通常的矩阵运算transpose()不适用。

在另一个稀疏子域B:[sps2]上定义第二个矩阵sps2 = CSRDomain(dom),可以使transpose() B B,但切入{{1}}的能力是丧失。

这两种能力似乎都是应该始终可以访问的能力。是否有更好的方法来声明保留两者的稀疏子域?

1 个答案:

答案 0 :(得分:2)

  

是否有更好的方法来声明保留两个稀疏子域的稀疏子域?

我认为你只是在Chapel 1.16.0中遇到了当前实施的缺点。

COO稀疏数组&amp;域{sps1: sparse subdomain(dom)模块尚不支持使用LinearAlgebra.Sparse创建的语言默认稀疏分布,因此没有库支持的转置。

CSR稀疏数组&amp;使用LinearAlgebra创建的域sps2 = CSRDomain(dom)的默认(且仅支持)稀疏分发尚不支持切片。

随着稀疏阵列和线性代数特征的进一步发展,这些都应该有可能。