什么时候需要在 Chapel 稀疏矩阵中包含 LayoutCS?

When do I need to include LayoutCS in Chapel sparse matrices?

我一直无法隔离,但有时会因为不包括而出现错误

use LayoutCS;

当我

use LinearAlgebra.Sparse;

在礼拜堂。我什么时候需要包含它以及我还有哪些其他选择?

When do I need to include it?

LayoutCS 如果您使用 dmapped 子句显式构建压缩稀疏稀疏域,则需要

var spsD: sparse subdomain(D) dmapped CS();

LinearAlgebra.Sparse 如果您正在使用更高级别的线性代数接口来完成相同的事情,那么 LinearAlgebra.Sparse 是必需的:

var spsD = csrDomain(D);

What other options do I have?

从 Chapel 1.16 开始,LinearAlgebra.Sparse 仅支持 CSR 数组,因此使用 LayoutCS 可以让您在需要时也可以使用 CSC 数组:

var spsD: sparse subdomain(D) dmapped CS(compressRows=false);

你也可以在不使用任何模块的情况下使用COO的默认稀疏格式:

var spsD: sparse subdomain(D);

有关更多示例,请参阅 sparse primer