并行算法:如何利用并行处理提高算法的执行效率

并行算法:如何利用并行处理提高算法的执行效率

算法的目的就是为了提高代码执行的效率,当算法无法继续优化的情况下,该如何进一步提高执行效率?如何借助并行计算的处理思想对算法进行改造?

并行排序

给大小为8GB的数据进行排序,且我们的内存可以一次性容纳这么多数据,对于排序来讲,最常用的就是时间复杂度为O(nlogn)的三种排序算法:归并排序、快速排序、堆排序,从算法层面无法继续优化了,而利用并行的处理思想,可以很轻松的将这个8GB数据排序问题的执行效率提高很多倍。

1 对归并排序并行化处理

可以将这8GB数据划分成16个小的数据集合,每个集合包含500MB的数据,用16个线程,并行的对这16个500MB的数据进行排序,这16个小集合分别排序完成之后,再将这16个有序集合合并

2 对快速排序并行化处理

通过扫描一遍数据找到数据所处范围区间,把这个区间从小到大划分成16个小区间,将8GB的数据划分到对应区间中,针对这16个小区间的数据,启动16个线程,并行的排序,等到16个线程都执行结束之后,得到的数据就是有序数据

两者用的都是分治的思想,对数据进行分片,然后并行处理,区别在于第一种思路是先随意对数据分片,排序之后再合并,第二种是先对数据按照大小划分区间,然后再排序,排完序不用再处理了

如果要排序的数据规模是1TB,问题是数据的读取效率,排序过程中,频繁的磁盘数据读取和写入,如何减少磁盘的IO操作&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息的熵:熵是信息论中一个重要的概念,用来表示信息的混乱程度,或者说信息的不确定性。熵越大,信息越不确定,越难以压缩。 固件:一种类型的软件,通常被储存在硬件设备中,具有固定的功能和指令。 透明性:指计算机系统在运行过程中对用户隐藏内部的复杂性和细节,使用户感觉操作简单、直观。 颗粒度:指计算任务的粒度大小,即任务被分解成多小块的程度。 空间局部性:指计算机程序在执行期间访问的内存地址呈现出一定的局部性,即访问的内存地址往往集中在一定的范围内。 存储体系:指计算机系统中用于存储数据的硬件设备和组成。 超标量流水线:一种处理器设计技术,可以在同一个时钟周期内执行多个指令,提高处理器的效率。 RISC:一种计算机处理器架构,以简化指令集和高效的流水线设计为特点。 量子纠缠效应:指两个或多个量子粒子之间存在着一种特殊的关系,当其中一个粒子状态发生改变时,另一个粒子的状态也会相应地改变。 量子比特:量子计算机中的基本存储单元,可以存储0和1两种状态,也可以处于这两种状态的叠加状态。 量子计算机:一种基于量子力学原理设计的计算机,可以在特定情况下比传统计算机更快地执行某些计算任务。 向量处理机:一种处理向量数据的特殊计算机,能够大幅提高向量计算的效率。 数值并行算法:一种利用并行计算的优势加速数值计算的算法并行处理:将计算任务分解成多个子任务,由多个处理器同时执行,以提高计算速度和效率。 机群:由多台计算机组成的集群,能够并行工作以加速计算任务。 网格计算:一种利用网络连接多个计算机资源并协同工作进行计算的方法。 进程:计算机中正在运行的程序的实例,包括程序计数器、寄存器集合、内存空间、打开的文件、网络连接等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值