Chapel LinearAlgebra 报告调用 eig(csrA, left = true, right = true) 时出错;
Chapel LinearAlgebra reports an error on a call to eig( csrA, left = true, right = true );
使用chapel code
inside online IDE for prototyping, an example2.chpl from Documentation关于如何使用LinearAlgebra
模块proc
eig(…)
无法对复杂值的 CSR 稀疏矩阵进行操作,csrMatrixA
-实例。
use LinearAlgebra.Sparse, IO.FormattedIO;
config var N = 3; // May use on the CLI-cmdline or here, below in the launcher's Arguments.add: --N=<aNumber>
var csrDOMAIN = CSRDomain( N, N ); // Create an empty 3x3 CSR domain ---------> https://chapel-lang.org/docs/primers/sparse.html#primers-sparse
var csrMatrixA = CSRMatrix( csrDOMAIN, complex ); // Create a CSR matrix over this domain
// The above is equivalent to: var matA: [csrDOMAIN] <dtype>;
csrDOMAIN += (1,1); // Add as an exemaple these indices to the sparse domain for all the nonzero data-cells
csrDOMAIN += (1,2);
csrDOMAIN += (2,2);
csrDOMAIN += (2,1);
csrDOMAIN += (3,3);
csrMatrixA.re = 1.23; // Set as an example all nonzero elements, all sparsely distributed over a domain indirectly described by csrDOMAIN, to a value of 1.23
csrMatrixA.im = -4.56; // Set as an example all nonzero elements, all sparsely distributed over a domain indirectly described by csrDOMAIN, to a value of-4.56i
writef( "CSR-Sparse Matrix A::[%i x %i] has values of:\n",
N,
N
);
writeln( csrMatrixA ); // A is now a 3x3 sparse matrix
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CRASH-REPORT:
var ( eigenVALUEs,
rightEigenVECTORs ) = eig( csrMatrixA, right = true ); // ------------------------------> https://chapel-lang.org/docs/modules/packages/LinearAlgebra.html#LinearAlgebra.eig
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TiO.RUN::
// .code.tio.chpl:22: error: unresolved call 'eig([CSDom(2,int(64),domain(2,int(64),false),true,false,false)] complex(128), left=1, right=1)'
// $CHPL_HOME/modules/packages/LinearAlgebra.chpl:1404: note: this candidate did not match: eig(A: [] ?t, param left = false, param right = false)
// $CHPL_HOME/modules/packages/LinearAlgebra.chpl:1404: note: because where clause evaluated to false
// $CHPL_HOME/modules/packages/LinearAlgebra.chpl:1618: note: candidates are: eig(A: [] ?t, param left = false, param right = false)
//
writeln( eigenVALUEs );
*/
编译器设置: --fast
运行时参数: --N=3
(不相关的 atm)
能否请您指教:
a) 什么是满足预期语法(调用签名)
和
b) 的正确方法修复后的 MCVE 代码示例更进一步,以演示如何使 eig()
处理在非常稀疏的非符号上以并行分布的方式实际运行。 CSR 域 N x N
用于 N ~ 2E7
(具有 ~ 5 [GB]
的实际数据),分布不是因为 RAM 大小,而是为了更快的处理,在多个区域设置,以便有效地利用所有CPU-可用资源
和
c)什么是网络chapel 这种方法的处理加速,如果以并置的单一语言环境处理为基准?
回溯:
$CHPL_HOME/modules/packages/LinearAlgebra.chpl:1404: note:
this candidate did not match: eig(A: [] ?t, param left = false, param right = false)
$CHPL_HOME/modules/packages/LinearAlgebra.chpl:1404: note:
because where clause evaluated to false
$CHPL_HOME/modules/packages/LinearAlgebra.chpl:1618: note:
candidates are: eig(A: [] ?t, param left = false, param right = false)
在 Ben Albrecht 的 [issue-14725] ticket was filed, confirm both (complex)
and (int)
eltType-s crash in a similar manner, yet a (real)
CSRMatrix()
-instance throws a LAPACK-code error: as documented in updated-code
之后最近的重新测试
$CHPL_HOME/modules/packages/LAPACK.chpl:19775: error:
c_ptrTo unsupported array type
a) 看起来这是线性代数库的一个未实现的特性。我在这里提交了一个问题:https://github.com/chapel-lang/chapel/issues/14725
b) Chapel 1.20 在 LinearAlgebra
模块中还没有分布式特征求解器。如果您觉得它有价值,我鼓励您在 github 存储库上提出一个问题来请求此功能。
c) 参见 (b)
使用chapel code
inside online IDE for prototyping, an example2.chpl from Documentation关于如何使用LinearAlgebra
模块proc
eig(…)
无法对复杂值的 CSR 稀疏矩阵进行操作,csrMatrixA
-实例。
use LinearAlgebra.Sparse, IO.FormattedIO;
config var N = 3; // May use on the CLI-cmdline or here, below in the launcher's Arguments.add: --N=<aNumber>
var csrDOMAIN = CSRDomain( N, N ); // Create an empty 3x3 CSR domain ---------> https://chapel-lang.org/docs/primers/sparse.html#primers-sparse
var csrMatrixA = CSRMatrix( csrDOMAIN, complex ); // Create a CSR matrix over this domain
// The above is equivalent to: var matA: [csrDOMAIN] <dtype>;
csrDOMAIN += (1,1); // Add as an exemaple these indices to the sparse domain for all the nonzero data-cells
csrDOMAIN += (1,2);
csrDOMAIN += (2,2);
csrDOMAIN += (2,1);
csrDOMAIN += (3,3);
csrMatrixA.re = 1.23; // Set as an example all nonzero elements, all sparsely distributed over a domain indirectly described by csrDOMAIN, to a value of 1.23
csrMatrixA.im = -4.56; // Set as an example all nonzero elements, all sparsely distributed over a domain indirectly described by csrDOMAIN, to a value of-4.56i
writef( "CSR-Sparse Matrix A::[%i x %i] has values of:\n",
N,
N
);
writeln( csrMatrixA ); // A is now a 3x3 sparse matrix
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CRASH-REPORT:
var ( eigenVALUEs,
rightEigenVECTORs ) = eig( csrMatrixA, right = true ); // ------------------------------> https://chapel-lang.org/docs/modules/packages/LinearAlgebra.html#LinearAlgebra.eig
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TiO.RUN::
// .code.tio.chpl:22: error: unresolved call 'eig([CSDom(2,int(64),domain(2,int(64),false),true,false,false)] complex(128), left=1, right=1)'
// $CHPL_HOME/modules/packages/LinearAlgebra.chpl:1404: note: this candidate did not match: eig(A: [] ?t, param left = false, param right = false)
// $CHPL_HOME/modules/packages/LinearAlgebra.chpl:1404: note: because where clause evaluated to false
// $CHPL_HOME/modules/packages/LinearAlgebra.chpl:1618: note: candidates are: eig(A: [] ?t, param left = false, param right = false)
//
writeln( eigenVALUEs );
*/
编译器设置: --fast
运行时参数: --N=3
(不相关的 atm)
能否请您指教:
a) 什么是满足预期语法(调用签名)
和
b) 的正确方法修复后的 MCVE 代码示例更进一步,以演示如何使 eig()
处理在非常稀疏的非符号上以并行分布的方式实际运行。 CSR 域 N x N
用于 N ~ 2E7
(具有 ~ 5 [GB]
的实际数据),分布不是因为 RAM 大小,而是为了更快的处理,在多个区域设置,以便有效地利用所有CPU-可用资源
和
c)什么是网络chapel 这种方法的处理加速,如果以并置的单一语言环境处理为基准?
回溯:
$CHPL_HOME/modules/packages/LinearAlgebra.chpl:1404: note:
this candidate did not match: eig(A: [] ?t, param left = false, param right = false)
$CHPL_HOME/modules/packages/LinearAlgebra.chpl:1404: note:
because where clause evaluated to false
$CHPL_HOME/modules/packages/LinearAlgebra.chpl:1618: note:
candidates are: eig(A: [] ?t, param left = false, param right = false)
在 Ben Albrecht 的 [issue-14725] ticket was filed, confirm both (complex)
and (int)
eltType-s crash in a similar manner, yet a (real)
CSRMatrix()
-instance throws a LAPACK-code error: as documented in updated-code
$CHPL_HOME/modules/packages/LAPACK.chpl:19775: error:
c_ptrTo unsupported array type
a) 看起来这是线性代数库的一个未实现的特性。我在这里提交了一个问题:https://github.com/chapel-lang/chapel/issues/14725
b) Chapel 1.20 在 LinearAlgebra
模块中还没有分布式特征求解器。如果您觉得它有价值,我鼓励您在 github 存储库上提出一个问题来请求此功能。
c) 参见 (b)