下一节:可用的软件
上一级:自适应块Lanczos方法
上一节:自适应块Lanczos方法
下表总结了ABLE在不同级别的存储需求。
为清晰起见,我们假设块大小为常数p。
为了在可变块情况下获得存储需求的上限,请将p替换为允许的最大块大小p_{\max}。
级别 |
功能 |
存储需求 |
1 |
基本三项递归 |
matrix+6pn+3p^2 j^2 + 4pj |
2 |
完全双正交性 |
额外2jpn |
3 |
半双正交性 |
额外2jpn+4p^2 j |
4 |
处理崩溃或聚类 |
无额外需求 |
注意,matrix表示计算乘积AZ和A^{\ast}Z所需的存储空间。
为了维持完全或半双正交性,必须存储所有计算出的Lanczos向量\{ Q_i \}和\{ P_i \}。
用户必须为此目的分配两个维度为n乘m的矩形数组的内存。如果内存有限,最佳补救措施是按照[207,110]中所述重新启动,但在ABLE的当前版本中无法实现。
现在,让我们总结一下每个Lanczos步骤执行的浮点运算成本。忽略低阶浮点运算成本。下表总结了ABLE实现中所需的不同类型的操作。
|
矩阵- |
m-内积 |
m-saxpy |
m-缩放 |
|
功能 |
m-向量 |
乘积 |
|
|
QR分解 |
|
乘积 |
(X^{\ast} Y) |
(Y+Xa) |
(X a) |
|
基本三项 |
2 |
6 |
8 |
2 |
2 |
完全双正交 |
|
2j |
2j |
|
|
半双正交 |
|
2 |
|
|
|
这里的m-内积、m-saxpy和m-缩放表示将相应的Level 1 BLAS内积、saxpy和缩放操作推广到多向量操作。
与存储需求一样,为简单起见,我们假设块大小是恒定的。
多向量的维度为n\times p。
m-内积、m-saxpy和m-缩放分别涉及2p^2 n、2p(p+1)n和2p^2 n次浮点运算。
n\times p(p\ll n)矩阵的QR分解(QRD)需要2p^2 n次浮点运算。
请注意,对于特定的问题和数据结构,某些操作可以更高效地执行。
以下偶发事件需要额外的浮点运算:
- 如果在第j次迭代时进行校正以维持半双正交性,则这需要额外(4j+2)次m-内积和(4j+2)次m-saxpy。
- 如果执行调整块大小以适应收敛Ritz值的较大聚类(group)和/或治疗崩溃(treatbd)的过程,则成本增加(2j+5)次m-内积和(2j+4)次m-saxpy,涉及n \times \delta多向量。
- 如果块中的Lanczos向量秩不足,则TSMGS过程的成本增加2j次m-内积和2j次m-saxpy。
- 计算块三对角矩阵T_{[j]}的所有特征三元组大约需要30(jp)^3次运算。
下一节:可用的软件
上一级:自适应块Lanczos方法
上一节:自适应块Lanczos方法
Susan Blackford
2000-11-20