Chapel LinearAlgebra 在调用 eig( csrA, left = true, right = tru



使用在线IDE中的教堂code进行原型设计,文档中有关如何使用LinearAlgebra模块的示例2.chplproceig(…)无法对复杂值的CSR稀疏矩阵进行操作,csrMatrixA-instance

法典:

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()处理在非常稀疏的非符号上以并行分布式方式实际运行。用于N ~ 2E7的CSR域N x N(具有实际数据的~ 5 [GB](,分布不是因为RAM大小,而是为了在多个区域设置上进行更快的处理,以便有效地利用所有可用的

CPU资源,以及c(如果以共置的单个区域处理为基准,这种方法的净教堂处理速度是多少?

追踪:


$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]票证提交后,以类似的方式确认(complex)(int)eltType-s崩溃,但(real)CSRMatrix()实例抛出 LAPACK 代码错误:如更新代码中所述


$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(

相关内容

  • 没有找到相关文章

最新更新