新起点
PSRS算法
2020-08-03 01:10:07

PSRS算法(Parallel Sorting by Regular Sampling):首先设待处理里序列长n,并行机上有p个处理器。为了使问题简单,我们假设n是p的整倍数。于是将这n个元素划分为p段,每段中有n/p个元素,将这p段分给p个处理器。注意,执行PSRS算法的并行机必须是多指令流多数据流(MIMD)的。

如果注意到一个好的串行排序算法的时间复杂度为 O ( n l o g n ) {\displaystyle O(nlogn)} 那么,容易证得上述PSRS算法的时间复杂度在 n > p 3 {\displaystyle n>p^{3}} 时为 O ( n p l o g n ) {\displaystyle O({\frac {n}{p}}log{n})}

缺点:我们注意到,在第五步进行主元划分时时可能会引起不均匀性,即位于某两个主元之间的元素可能要多一些(多于 n p {\displaystyle {\frac {n}{p}}} 个)。我们可以证明,在算法中进行到第六步全局交换时,可能会有某一个处理器中数据达到 2 n p n p 2 ( p 1 ) {\displaystyle {\frac {2n}{p}}-{\frac {n}{p^{2}}}-(p-1)} 个;这样引起的直接后果是处理器负载不均匀,那么在归并排序中可能会引起排序时间的不均匀。

并行计算并行排序

网站公告: