线性方程组求解算法:高斯消元与带状结构系统
1. 高斯消元法
1.1 消除因子计算与分布
在高斯消元法中,消除因子的计算与分布是重要步骤。首先,使用 compute_elim_fact_loc()
函数计算处理器所拥有元素的消除因子$l_{ik}$,并将其存储在 elim_buf
缓冲区中。接着,通过单播操作将消除因子发送到同一行组$R_{op}(q)$的所有处理器,使用相应的通信器$comm(R_{op}(q))$,根处理器$q$的编号由 rank(q, G)
函数确定。
1.2 矩阵元素计算
矩阵元素的计算由 compute_local_entries()
函数完成,回代过程由 backward_substitution()
函数执行,这与特定伪代码类似,但需要更多通信,且几乎所有集体通信操作都在处理器子集上进行。
1.3 并行执行时间分析
并行执行时间分析使用反映计算和通信时间的函数,这些函数取决于并行机器的特性。为简化分析,忽略主元选择和回代过程,将高斯消元的第4、5、5a和6阶段分开考虑,因为每个阶段后都有屏障同步。
1.3.1 通信时间
对于通信阶段,使用描述集体通信操作时间的公式,将通信时间表示为处理器数量和消息大小的函数。在高斯消元(无主元选择)中,第4和5a阶段使用单播操作进行通信,单播通信时间记为$T_{sb}(p, m)$。
|阶段|通信操作|通信时间|
|----|----|