2、可扩展MPI通信拆分算法与多线程MPI通信优化

可扩展MPI通信拆分算法与多线程MPI通信优化

1. 并行排序算法流程与时间复杂度分析

并行排序算法主要包含以下几个步骤:
1. 输入子表处理 :每个进程使用递归加倍和合并来生成输入,无需对其输入子表进行排序,此过程耗时为 (O(\frac{n}{p}))。
2. 精确分割器查找 :经过 (lg n) 轮找到精确分割器,每轮执行时间成本为 (O(p + lg \frac{n}{p})),总时间为 (O(p lg n + lg^2 n))。
3. 条目交换 :每个进程与其他进程最多交换 (\frac{n}{p}) 个条目,交换的时间复杂度为 (O(\frac{n}{p}))。
4. 子表合并 :每个进程在 (lg p) 个阶段递归合并其 (p) 个分区,成本为 (O(\frac{n}{p} lg p))。

并行排序的总时间为 (O(p lg n + lg^2 n + \frac{n}{p} lg p))。在并行排序结束时,(p) 个进程使用递归加倍来构建表的完整副本,此阶段耗时为 (O(n))。虽然该算法的通信量比传统递归加倍实现多,但在适度数量的排序进程下,能观察到性能提升。

2. 分布式表减少内存使用

为使应用程序能够扩展到数百万个进程,提出了分布式表的概念。在分布式表中,通信器中的进程按排名排列在分布式二叉树中。每个进程最初只知道其父进程和两个子进程的身份。当需要与其他进程通信时,若目标排名在其自己的子树中,则询问其子进程查找目标进程的地址;否则,询问其父进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值