并行算法是并行计算的基础,与实现技术相结合,为高效率使用并行计算机提供解决方案。其基本原则简述如下:

1 与体系相结合

常见的并行计算的硬件载体有FPGA、GPU、多核CPU(ARM、x86)、DSP等。FPGA硬件加速的思想是设计流水线和设计多个加速核。GPU和多核CPU通过多核运算来达到并行的目的,核与核之间的通信开销是不可忽视的因素。DSP采用了并行指令和专用指令,能在一个时钟周期内执行复杂操作,但通用性不强。

2 具有可扩展性

并行算法是否是随处理机个数增加而能够线性或近似线性的加速,这是评价一个并行算法是否有效的重要标志之一。也就是说,如果一个并行算法的加速比是Sp(q) = O(q) 或者Sp(q) = O(q=(1+log(q))),则可以称为具有可扩展性的并行算法。

3 粗粒度

通常情况下,粒度越大越好。这是因为在每个处理机中有很多需要计算的工作任务,如此可以充分发挥多处理机的作用。并行加速比对细粒度问题一般情况下是不会很高的,这也是为什么并行计算需要求解大规模问题的原因所在。

4 减少通信

一个高效率的并行算法,通信是至关重要的。提高性能的关键是减少通信量和通信次数,其中通信次数通常情况下是决定因素。

5 优化性能

一个算法是否有效,不仅依赖于理论分析的结果,也和在实现的过程中采用的技术息息相关。性能主要看单处理机能够发挥计算能力的百分比,然后是并行效率。

小结:
影响并行算法效率的因素可能很多,但是这里所给出的几条是主要因素。因此,在算法设计的过程中,如果能够将上述5 条加以仔细考虑,就能够取得非常好的效果。

原文见 迟学斌《高性能运算》

并行算法设计基本原则相关推荐

  1. 并行算法设计与性能优化 刘文志 第7章 并行算法设计方法

    软件开发人员可以利用硬件的特性来设计算法,也可以利用应用的某些也行来优化算法等. 一个好的并行算法通常具有以下特点: 具有并行性的恰好是热点: 可扩展性好: 易于实现: 为性能考虑,应当让所有的控制流 ...

  2. 电子电路设计基本概念100问(三)【学习目标:原理图、PCB、阻抗设计、电子设计基本原则、基本原器件等】

    笔者电子信息专业硕士毕业,获得过多次电子设计大赛.大学生智能车.数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究.对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同 ...

  3. 史上最完整交互设计基本原则

    via: http://36kr.com/p/5042087.html 摘要:如何设计出具有优秀用户体验的产品是交互设计师始终面临的一道难题,"好的产品设计一定是建立在对用户需求的深刻理解上 ...

  4. 史上最完整交互设计基本原则|推荐收藏

    史上最完整交互设计基本原则|推荐收藏 人人都是产品经理 •  2 小时前 摘要:如何设计出具有优秀用户体验的产品是交互设计师始终面临的一道难题,"好的产品设计一定是建立在对用户需求的深刻理解 ...

  5. 电子电路设计基本概念100问(一)【学习目标:原理图、PCB、阻抗设计、电子设计基本原则、基本原器件等】

    笔者电子信息专业硕士毕业,获得过多次电子设计大赛.大学生智能车.数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究.对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同 ...

  6. 实验室设计基本原则SICOLAB

    实验室设计基本原则SICOLAB 实验室设计.实验室建设施工SICOLAB 实验室布局必须符合实验流程的规律,从样品接收.样品暂存.试剂和耗材储存.前处理和准备.样品分析测试.清洗到废物回收和处理,都 ...

  7. 分分钟掌握设计基本原则

    在这个创意无处不在的时代,越来越多的人成为设计师.简历.论文.PPT.个人主页.博客.活动海报.给客人的邮件.名片--,处处都在考验你的设计能力. 美术功课不好?没有艺术细胞?毫无设计经验? 没关系, ...

  8. 并行算法设计与性能优化_CME 323: 分布式算法与优化(1)

    这门课程是由斯坦福大学在今年 4 月份推出的线上课程,主讲人是 Reza Zadeh ,总体来说主讲人讲解比较幽默,内容也是容易让人听得下去,不是那么晦涩难懂.课程内容分为两个部分:并行计算(para ...

  9. UI实用可临摹素材|剖析UI界面设计基本原则!

    用户界面(UserInterface) 也称人机界面,是指软件用于和用户交流的外观.部件和程序等,简称UI,它是用户和智能手机之间进行交流和通讯的平台和纽带,是用户感知.认知.使用和体验软件的最主要的 ...

最新文章

  1. 受损骨骼可能在类似地球的重力条件下更快愈合
  2. NOI2018 Day1 归程(return)
  3. 洛谷4366——最短路(dijkstra,思维,异或)
  4. C++语言标准库functional中的函数对象,绝对是装B神器~
  5. 微服务容器化最短路径,微服务 on Serverless 最佳实践
  6. Go 之父:聊聊我眼中的 Go 语言和环境
  7. python没有菜单栏怎么搞mac_Mac 下 sublime 怎么调出顶端菜单栏
  8. CentOS7 通过wget下载文件到指定目录
  9. 看到这个数据库设计,我终于明白了我和其他软测人的差距
  10. 笔记本电脑下载python视频-如何用Python在笔记本电脑上分析100GB数据(下)
  11. 基于 Intel 的 Mac,如何使用机构恢复密钥的技巧
  12. delphi 读写文本文件
  13. 消费者反映鸡蛋难吃后的37种回答方法
  14. gns3中怎么把服务器虚拟化,GNS3使用详解(gns3如何模拟ids)
  15. 前端中常用的PS操作
  16. GDB 调试器使用手册
  17. 谷歌生物医学翻译软件_翻译器可翻译方言和文言文 超出谷歌微软的翻译软件能力...
  18. 了解传销系列之三 : 开心门
  19. [图] Google 迎来全新 Logo 启用无衬线字体
  20. rewind java_Java ShortBuffer rewind()用法及代码示例

热门文章

  1. 打游戏服务器起什么作用,服务器为什么贵,打游戏会很快吗
  2. Opencv立体相机标定
  3. ERROR Error while creating ephemeral at /brokers/ids/1, node already exists
  4. cocoapods安装配置
  5. dSploit—Android网络渗透套件测试小记(含视频)
  6. 不一样的kafka系列#server服务端详解
  7. overflow属性html5,什么是css中overflow属性
  8. 平面设计新手需要掌握的基础知识
  9. i9 13900K参数 i9 13900K核显相当于什么显卡
  10. 神经网络的认识(七)R-CNN