线性方程组的算法与并行执行时间分析
1. 高斯消元法的并行执行
1.1 数据交换与通信
在高斯消元法中,当主元行和第 $k$ 行由不同的行组存储时,需要进行通信以交换主元行。 compute_partner(Ro(r), me) 函数用于计算调用处理器 me 的通信伙伴,即属于与 me 相同列组的处理器 $q \in Ro(r)$。 compute_size(n, k, Ro(k)) 函数计算主元行中列索引大于 $k$ 的元素数量,该数量取决于行组 $Ro(k)$ 的大小、块大小和位置 $k$。
1.2 主元行的分布
为了分布主元行 $r$,处理器在其列组中参与单播操作。并行执行的单播操作的根是处理器 $q \in Ro(r)$。单播的参与者是处理器 $q’ \in Cop(q)$,当 $q’ \in Ro(r)$ 时作为根,否则作为接收者。
1.3 消元因子的计算与分布
compute_elim_fact_loc() 函数用于计算处理器拥有的所有元素 $a_{ik}$ 的消元因子 $l_{ik}$,消元因子存储在缓冲区 elim_buf 中。消元因子通过单播操作发送到同一行组 $Rop(q)$ 中的所有处理器,使用相应的通信器 comm(Rop(q)) 。单播操作的根处理器 $q$ 在组 $G$ 中的编号(秩)由 rank(q, G) 函数确定。
超级会员免费看
订阅专栏 解锁全文
1531

被折叠的 条评论
为什么被折叠?



