论文关键部分记录与解析 | Parallel Tiled QR Factorization for Multicore Architectures

DGEQT2   DLARFB   DTSQT2   DSSRFB

 

1, 对角子矩阵分解


DGEQT2
这个例程被开发出来,用于针对对角Tile子矩阵: \mathbf{A_{kk}(b \times b)},执行不分块的QR分解。
这个运算产生:
一个上三角矩阵 R_{kk}
一个酉下三角矩阵V_{kk},这个矩阵包含 b 个 Householder 反光面、
一个上三角矩阵 T_{kk},在WY技术中,这个矩阵被定义用来累计Householder变换。
R_{kk}V_{kk} 能够写进 A_{kk} 所占据的内存空间,所以并不需要为他们分配额外的空间。
为了存储 T_{kk},则需要一个临时的工作空间。
因此,\mathbf{DGEQT2(A_{kk}, T_{kk})} 执行的如下动作:

            \mathbf{A_{kk} \leftarrow V_{kk}, R_{kk}}       \mathbf{T_{kk} \leftarrow T_{kk}}

本节算法细节可参考附录说明。

2, 将对角变换实施到同行子矩阵

DLARFB
通过上一个例程 DGEQT2 得到了一个变换 \mathbf{(V_{kk},T_{kk})} .
那么,这是LAPACK中的例程 DLARFB,将被用来将变换 \mathbf{(V_{kk},T_{kk})} 实施到 Tile 子矩阵  \mathbf{A_{kj}} 上面。
因此,\mathbf{DLARFB(A_{kj},V_{kk},T_{kk})} 执行如下动作:

           \mathbf{A_{kj} \leftarrow (I - V_{kk}T_{kk}{​{V^T}_{kk}})A_{kj}}

 

3,组合 Tile QR 分解


 3.1 DTSQT2 解释

DTSQT2
首先,上三角矩阵 \mathbf{R_{kk}} 和方阵 \mathbf{A_{ik}}上下罗列构成一个矩阵,这个例程用来计算这个矩阵做非分块的QR分解。
这个例程将会返回一个上三角矩阵 \mathbf{\widetilde{R}_{kk}},更新到  \mathbf{R_{kk}} 占据的空间中去,这个例程还返回b 个Householder 反射向量,这里 b 是矩阵分块的阶数。
需要注意的是 \mathbf{R_{kk}} 是上三角矩阵,针对上面的矩阵组合计算得到的 Householder 反射向量,可以表示成为一个单位矩阵I垂直拼接到一个方块矩阵
\mathbf{V_{ik}}上边。这样一来,并不需要额外的空间来存放Householder 反射向量,因为这个单位矩阵并不需要被存放,
而 \mathbf{V_{ik}} 只需要存储在 \mathbf{A_{ik}} 占据的存储空间中即可。这个分解过程中也会产生一个 \mathbf{T_{ik}} 矩阵,它的存储空间就必须额外分配。
那么,\mathbf{DTSQT2(R_{kk}, A_{ik},T_{ik})} 表示如下:

\left[ \begin{array}{c} \mathbf{R_{kk}}\\ \mathbf{A_{ik}}\\ \end{array} \right] \leftarrow \left[ \begin{array}{c} \mathbf{I}\\ \mathbf{V_{ik}}\\ \end{array} \right] ,\mathbf{\widetilde{R}_{kk}}

\mathbf{T_{ik}} \leftarrow \mathbf{T_{ik}}

3.2 实验说明带上三角矩阵的QR分解后的相似0元结构

4,应用 Householder 变换


DSSRFB

在上一个例程 DTSQT2 中,计算得到了一个由 I 和  \mathbf{V_{ik}} 组合得到的变换矩阵,
而 DSSRFB 这个例程将这个变换应用到 \mathbf{A_{kj}}  和  \mathbf{A_{ij}} 这两个块矩阵组合而成的矩阵上。

\left[ \begin{array}{c} \mathbf{A_{kj}}\\ \mathbf{A_{ij}}\\ \end{array} \right] \leftarrow \left[ \begin{array}{c} \mathbf{I} - \left[ \begin{array}{c} \mathbf{I}\\ \mathbf{V_{ik}}\\ \end{array} \right] \left[ \begin{array}{c} \mathbf{T_{ik}}\\ \end{array} \right] \left[ \begin{array}{cc} \mathbf{I}&\mathbf{V_{ik}^T} \end{array} \right] \end{array} \right] \left[ \begin{array}{c} \mathbf{A_{kj}}\\ \mathbf{A_{ij}}\\ \end{array} \right]

5,附录

关于 DGEQT2 的实现,在另一片论文中有说明,限制篇幅和分而治之,将在下篇log中记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值