基于分层分块数组的并行数值求解器
在科学计算和工程领域,线性方程组的求解是一个常见且关键的问题。为了提高求解效率,人们提出了许多算法和技术。本文将介绍SPIKE算法及其两种变体TU和TA,以及如何使用分层分块数组(Hierarchically Tiled Arrays,HTA)来实现这些算法。
1. SPIKE算法概述
SPIKE算法是一种用于求解线性方程组的并行算法,其核心步骤如下:
1. 分解矩阵A的对角块 :对矩阵A的对角块进行LU或UL分解。
2. 计算尖峰和右侧向量 :利用上一步得到的分解结果计算尖峰(spikes),并求解相关方程得到右侧向量。
3. 形成并求解简化系统 :根据尖峰和右侧向量形成简化的线性方程组,并求解该方程组。
4. 计算其余解 :根据简化系统的解计算原方程组的其余解。
SPIKE算法的核心公式如下:
定义向量:
[
V_j =
\begin{bmatrix}
V^{(t)} j \
V’_j \
V^{(b)}_j
\end{bmatrix}
,
W_j =
\begin{bmatrix}
W^{(t)}_j \
W’_j \
W^{(b)}_j
\end{bmatrix}
,
x_j =
\begin{bmatrix}
x^{(t)}_j \
x’_j