48、线性方程组系统算法:并行超节点算法与相关练习

线性方程组系统算法:并行超节点算法与相关练习

1. 并行超节点算法

并行超节点算法的实现基于将矩阵划分为基本超节点。对于超节点 (I(p) = {p, p + 1, \ldots, p + q - 1}),若对于 (0 \leq i \leq q - 2),都有 (children(p + i + 1) = {p + i}),即节点 (p + i) 是 (p + i + 1) 在消元树中的唯一子节点,那么该超节点就是基本超节点。例如,在某些矩阵结构中,超节点 (I(2) = {2, 3, 4}) 是基本超节点,而 (I(6) = {6, 7}) 和 (I(8) = {8, 9}) 不是基本超节点。

在划分成基本超节点后,只要能计算出超节点的第一列,就可以计算该超节点的所有列,无需等待超节点外列的计算。若超节点不是基本超节点,可以将其拆分为更小的超节点,单个列组成的超节点一定是基本超节点。

并行超节点算法(VI)基于超节点任务 (T_{sup}(J)),其中 (0 \leq J < N)((N) 为超节点的数量)。任务 (T_{sup}(J)) 包括从左到右对每个 (j \in J) 执行 (smod(j, J)) 和 (cdiv(j)) 操作,以及对所有 (k \in Struct(L^*(last(J)))) 执行 (smod(k, J)) 操作。

准备执行的超节点任务 (T_{sup}(J)) 存放在中央任务池中,空闲处理器可以访问该任务池。任务池初始时包含那些准备完成的超节点,即其第一列是消元树中的叶子节点的超节点。如果任务 (T_{sup}(J)) 执行的 (cmod(k, J)) 操作完成了另一个超节点 (K > J) 的修改,则将相应的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值