原文:并行排序

排序是一项非常常用的操作,你的应用程序在运行时,可能无时无刻不在进行排序操作。排序的算法有很多,但是对于大部分的算法都是串行执行的。当排序的元素很多时,若使用并行算法代替串行,显然可以更加有效的利用CPU,提高排序效率。但将串行算法修改为并行算法并非易事,甚至会极大的增加原有算法的复杂度。下面介绍几种相对简单的算法。 奇偶交换排序:分离数据相关性 在介绍奇偶交换排序前,首先来看一下冒泡排序。在这里 ...

2018-10-23 16:35 0 747 推荐指数:

查看详情

并行归并排序——MPI

并行归并排序在程序开始时,会将n/comm_comm个键值分配给每个进程,程序结束时,所有的键值会按顺序存储在进程0中。为了做到这点,它使用了树形结构通信模式。当进程接收到另一个进程的键值时,它将该键值合并进自己排序的键值列表中。编写一个程序实现归并排序。进程0应该读入n的值,将其广播 ...

Thu Dec 25 04:22:00 CST 2014 0 2434
MPI实现并行奇偶排序

奇偶排序 odd-even-sort, using MPI 代码在 https://github.com/thkkk/odd-even-sort 使用 MPI 实现奇偶排序算法, 并且 MPI 进程 只能向其相邻进程发送消息 nprocs 是进程数。 每个进程拥有独立的一块数据 data ...

Fri Aug 20 05:48:00 CST 2021 0 108
mpi冒泡排序并行

一、实验目的与实验要求 1、实验目的 (1)学会将串行程序改为并行程序。 (2)学会mpich2的使用。 (3)学会openmp的配置。 (4)mpi与openmp之间的比较。 2、实验要求 (1)将串行冒泡程序局部并行化,以降低时间消耗。 (2) 理论上求出 ...

Mon Jan 16 22:55:00 CST 2017 0 1772
多线程外排序解决大数据排序问题1(并行快排和并行归并)【转】

转自:AIfred 问题: 对一个 10GB 的数据文件排序,而计算机内存仅有 4GB 思路: 将整个文件读入内存排序显然不行。可以将这个 10GB 的大文件分区为 100 个 100MB 的小文件,把这些小文件的数据依次读入内存、排序、再输出,于是我们便得到了 100 个各自有 ...

Thu Sep 06 00:51:00 CST 2018 0 2492
基于多线程的并行快速排序算法实现

基于多线程的并行快速排序算法实现 1. 快速算法(Quick Sort)介绍 快速排序(Quick Sort)是一种经典的排序算法,基于递归实现,由于其实现方式简单可靠、平均时间复杂度为O(nlogn) (最坏情况O(n^2)), 被广泛采用。一个QuickSort算法实现如下(基于c++ ...

Wed Jun 05 17:58:00 CST 2019 0 1726
多线程外排序解决大数据排序问题2(最小堆并行k路归并)

转自:AIfred 事实证明外排序的效率主要依赖于磁盘,归并阶段采用K路归并可以显著减少IO量,最小堆并行k路归并,效率倍增。 二路归并的思路会导致非常多冗余的磁盘访问,两组两组合并确定的是当前的相对位置并不能一次确定最终的位置。 K路归并,每一轮归并直接确定的是最终的位置,不用重复访问 ...

Thu Sep 06 01:02:00 CST 2018 0 1431
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM