目前我考虑以下问题。我有一个巨大的密集带状矩阵我想分解并用来解决线性系统.大约有 100 多列。目前我使用DGBTRF
从 LAPACK 分解. 该程序是 3 级 BLAS 加速程序,可以快速有效地工作。最后一步,解决完成使用DGBTRS
不是 3 级 BLAS 加速的。在当前的 LAPACK 版本 3.5 中,这个求解器仍然几乎按顺序在. 即代码如下所示:
IF( lnoti ) THEN
DO 10 j = 1, n - 1
lm = min( kl, n-j )
l = ipiv( j )
IF( l.NE.j ) CALL dswap( nrhs, b( l, 1 ), ldb, b( j, 1 ), ldb )
CALL dger( lm, nrhs, -one, ab( kd+1, j ), 1, b( j, 1 ), ldb, b( j+1, 1 ), ldb )
10 CONTINUE
END IF
DO 20 i = 1, nrhs
CALL dtbsv( 'Upper', 'No transpose', 'Non-unit', n, kl+ku,$ ab, ldab, b( 1, i ), 1 )
20 CONTINUE
我的问题是是否存在启用了 3 级 BLAS、性能更好的前向/后向替换例程变体?