并行思维(二)

可伸缩性与加速比

可伸缩性是衡量应用程序加速比多少的尺度之一(注:加速比指应用程序串行化与并行化之间所花费时间之比,它表示并行化之后的效率提升结果)。2 倍的加速比表明并行程序仅需要花费串行程序的一半时间。比如理想情况下,运行在单处理器上的程序花费 30 秒,而在双核机器上运行仅需花费 15 秒。

我们总是期望运行在双核机器上的应用程序要比在单核上快的多。同理,运行在四核机器上也要比在双核上快的多。这就好像以前当 CPU 换代升级时,随着主频提升,我们的程序总是可以运行的更快。很不幸,大多数应用程序在步入多核时代后,性能不但没有提升,甚至有所降低。

假如我们增加更多的处理器核心数,而应用程序并没有获得额外的加速。从这点来看,该应用程序不具有可伸缩性。如果强制使用另外的处理器核心,通常会造成性能下降。因为这时分布式和同步的开销开始凸显威力。

更多关于可伸缩性的指导方针,楼主强烈推荐这篇文章:可伸缩性原则。

应用程序到底有多少并行性可言?

如小标题所说,应用程序到底有多少并行性呢?答案是视情况而定(废话)。

显然,这个问题取决于解决问题的多寡和发现并恰当利用并行算法的能力。我们先前大部分讨论(更多讨论请参见:并行思维 [I])都围绕着如何在昂贵和稀有的并行计算机上编写高性能程序。随着多核处理器时代的到来,许多方面已经发生变化。我们需要退一步来重新审视一下。

Amdahl 定律

Gene Amdahl 发现在计算机体系架构设计过程中,某个部件的优化对整个架构的优化和改善是有上限的。这个发现后来成为知名的 Amdahl 定律。该定律告诉我们,假如我们以 2 倍加速程序的全部,那我们可以预期程序运行的比 2 倍更快。但是,假如我们只以 2 倍加速优化程序的一半,那么整个系统只改善了 1.33 倍。Amdahl 定律很容易可视化表达。设想有个程序由 5 个相同的部分组成,且每个部分运行时间均花费 100 秒,如图 1 所示:

图 1

时间: 2024-10-30 02:24:46

并行思维(二)的相关文章

并行思维(三)

线程是什么玩意 对于并行程序设计来说,线程的重要性不言而喻. 现代操作系统是典型的基于抢占式调度机制的多任务操作系统. 所谓多任务,指同一时刻,允许操作系统内有多个应用程序运行.比如,我们可以在同一时刻,一边收听音乐,一边浏览网页.当然,计算机能做到的远不止于此. 所谓抢占式调度机制,指在操作系统强制让另外的应用程序运行之前,正在运行的应用程序究竟可以占用 CPU 多少时间.这正是为什么我们感觉多个应用程序同时运行的真正原因,即使在单核处理器上.举例来说,Windows 操作系统任务调度的时间间

并行思维(一)

声明: 这篇文章主要想描述一下该怎样以一种安全和可伸缩性的方式使得程序并行化.在多核的今天,我们可能更加需要思考如何编写一个良好的并行程序.文中有相当的内容来自<Intel Threading Building Blocks>,虽说它针对 C++ 讲解,但原理通用,在跟语言,平台有关联的时候,楼主会使用 .NET 阐述. 每个软件开发人员都不得不面对并行编程.以前以及现在,我们在完成任务时,首先会考虑选择最佳算法,实现语言等.但现在我们必须首先考虑任务的内在并行性.而这反过来又会影响我们对算法

用搜索引擎的思维去思考如何打造优秀网站

也许有人会问:有没有搞错,搜索引擎也有思维?是的,所谓搜索引擎的思维,其实也就是搜索引擎在考查一个网站时所经常采用的各种指标和因素.作为想要让网站在搜索引擎那里更加得到信任和青睐的站长,我们只有按照搜索引擎所奉行的规则进行"出牌"以投其所好,这样才能使网站在搜索引擎的搜索结果中拥有更好的表现,从而借助搜索引擎为网站带来更多的流量,使网站的发展之路事半功倍,最终打造出一个优秀的站点. 如何利用搜索引擎的思维来建设网站,我们首先要搞清楚的便是搜索引擎所奉行的那套规则如何,其次便是按照其规则

从robin经典案例中学习SEO思维

大家好,我是石头.今天阅读了柳焕斌:SEO实战案例 广场舞教学网这篇文章,柳焕斌(robin)想必不用石头去多做介绍,在这篇文章中robin已经详细的阐述了这个案例的实际操作细节,主要是站内内容和栏目结构,广场舞教学网这个案例值得我们去学习和分析,至少对于我这个菜鸟是这样的,学的不是如何去操作外链,如何去获取内容.更重要的我想是SEO思维的问题,长期以来像笔者这样的SEO人员很多,我们没有自己的SEO思维,也就是我们遇到很多SEO问题不能凭借自己的思维去操作,而总是要抄袭或者模仿别人的.话不多说

.NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(一)

引言 随着CPU多核的普及,编程时充分利用这个特性越显重要.本文首先用传统的嵌套循环进行数组填充,然后用.NET 4.0中的System.Threading.Tasks提供的Parallel Class来并行地进行填充(当然这里也用到嵌套循环),通过对比发现其中差异.主要内容如下: 通常的数组填充 并行的组数填充 性能比较 System.Threading.Tasks分析,这个将在续篇.NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)中介绍 1.通

马云三大思维携菜鸟完美领先

今年的双十一格外热闹,电商的战火已经烧到了物流平台,在这轮的物流之争中,马云三大思维完美领先. 思维一:基因影响企业运势 性格决定命运,基因影响性格,企业也是如此,其基因注定影响发展局势.仔细观察今年以来快递行业发生的变化,你会发现凡是带有大数据.智慧物流方面基因的企业都得到良好发展,而这一切竟然都有菜鸟网络的身影. 为何如此倚重菜鸟网络,这里通过菜鸟的实际情况可以窥其精奥.据说菜鸟目前员工只有1000人,但他们靠数据来协调每天将近200万人配送3500万个包裹这样一个大工程,这如果采用自建物流

至尚国际专家:网络整合营销新思维倡领者

互联网时代日新月异,网络整合营销的理念已经 深入人心.企业如何融入互联网. 借力互联网实现升腾发展,在营销思维上需要自我革新.国内网络整合营销的领军公司至尚国际TOTHETOP(http://www.tothetop.ca)的整合营销专家rain接受了笔者的采访,并 提出了至尚国际TOTHETOP的营销新思维和新思想.   网络整合营销需要变革思维模式:   网络整合营销思维一:国际化 网络整合营销需要结合国际化视野,以全球化的眼光和角度分 析数字化营销的发展,掌握最 新的网络营销动态及资讯.

PHP在RS232串口通讯协议的应用演示[测试环境WinXP/PHP5.1.4]

php5|应用演示 一. 预先的知识: 什么是RS232/RS484及其应用?       QUOTE:RS232接口就是串口,电脑机箱后方的9芯(或25芯)插座,旁边一般有 "|O|O|" 样标识. 一般机箱有两个,新机箱有可能只有一个.笔记本电脑有可能没有. 有很多工业仪器将它作为标准通信端口.通信的内容与格式一般附在仪器的用户说明书中. 计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式.由于串行通讯方式具有使用线路少.成本低,特别是在远程传输时,避免了

大数据并行计算利器之MPI/OpenMP

1 背景        图像连通域标记算法是从一幅栅格图像(通常为二值图像)中,将互相邻接(4邻接或8邻接)的具有非背景值的像素集合提取出来,为不同的连通域填入数字标记,并且统计连通域的数目.通过对栅格图像中进行连通域标记,可用于静态地分析各连通域斑块的分布,或动态地分析这些斑块随时间的集聚或离散,是图像处理非常基础的算法.目前常用的连通域标记算法有1)扫描法(二次扫描法.单向反复扫描法等).2)线标记法.3)区域增长法.二次扫描法由于简单通用而被广泛使用! 图1 连通域标记示意图