性能调优(一)----Amdahl定律及木桶原理

简介: 什么是Amdahl定律?          首先的一个问题就是,这个怎么读啊???对于我这蹩脚的英语来说真是一脸懵逼。
什么是Amdahl定律?

    
    首先的一个问题就是,这个怎么读啊???对于我这蹩脚的英语来说真是一脸懵逼。赶紧百度下:阿姆达尔定律,是由Gene Amdal 在1967年提出。阿姆达尔定律定义了穿行系统并行化后加速比的计算公式和理论上限。

加速比 = 优化前的系统耗时/优化后的系统耗时

    加速比越高说明你的优化越明显。在这个地方还有另外一个公式:

SpeedUp1F+1FN

SpeedUp:加速比
F:系统内必须串行化的程序比重
N:CPU处理器数量

    F的意思我解释下:比如说一个功能总共有6个步骤:
这里写图片描述
    其中,白色的为必须串行的,绿色的为可以优化并行化的,那么其串行化比重:F=4/6=0.67

Amdahl定律的应用

    
    举个例子吧,跟上边一样,每个步骤耗时100ms,其中只有步骤二和步骤四可以进行优化。
这里写图片描述
    假设现在有两个处理器可以同时工作。那么优化后步骤二和步骤四的时间则变为50ms,整体的时间则由原来的600ms,降低到500ms
这里写图片描述

    这种况下的加速比:600/500=1.2
    但是其实这种优化也是有极限的,因为只有步骤二和步骤四可以优化,那么这两个步骤优化的极限就是无限接近0,整体的优化后的耗时无限接近400ms,也就是说在这种情况下的加速比的极限是 600/400 = 1.5

    也可以根据上边的公式得出:

SpeedUp1F+1FN

    当N趋于无穷大的时候,加速比=1/F,这就是优化的极限。由此可见,为了提高系统的性能,只提高CPU的数量不一定能起到有效的作用。需要从根本上修改系统的串行行为。提高系统内可优化模块的比重,在此基础上,合理增加处理器的数量,才能以最小的投入,得到最大的加速比。

木桶原理

    
    我觉得这一点也可以用“短板理论”来解释:

这里写图片描述

    一只木桶盛水的多少,并不取决于桶壁上最高的那块木块,而是取决于桶壁上最短的那块。
    决定系统性能的关键因素有那么几点:内存资源、CPU资源、磁盘I/O,那么系统的总体性能是取决于当前最慢的磁盘I/O速度,而不是内存和CPU。这种情况下,只有提高磁盘I/O速度才能对系统的整体性能进行优化。我觉得这一点跟阿姆达尔定律有相同之处。

相关文章
|
存储 缓存 5G
时域结构 | 带你读《5G 空口设计与实践进阶 》之十七
在时域,NR 支持基于符号灵活定义的帧结构,以满足各种时延需求。
时域结构 | 带你读《5G 空口设计与实践进阶 》之十七
|
负载均衡 5G
频谱利用 | 带你读《5G 空口设计与实践进阶 》之二十
NR 单载波最大支持 275 个 RB,即 3300 个子载波。这相应也约束了不同Numerology 下 NR 的最大工作带宽。NR 须通过合理设置保护带宽来降低误差矢量幅度、抑制相邻频道泄漏。
频谱利用 | 带你读《5G 空口设计与实践进阶 》之二十
|
8月前
|
存储
【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】
990 2
|
8月前
|
Python
物理电学:原理、应用与编程实践
物理电学:原理、应用与编程实践
86 0
|
8月前
|
存储 缓存 并行计算
【软件设计师备考 专题 】CPU和存储器的组成、性能和基本工作原理
【软件设计师备考 专题 】CPU和存储器的组成、性能和基本工作原理
137 0
|
监控 算法 Java
进程调度的原理和算法探析
本文探讨了进程调度的原理和算法,并提供了全面的概述。进程调度是操作系统中的重要组成部分,用于决定进程的执行顺序和分配CPU时间。我们讨论了优先级调度和时间片轮转调度算法。优先级调度根据进程的优先级确定执行顺序,可以分为抢占式和非抢占式。时间片轮转调度将CPU时间划分为固定大小的时间片,每个进程在一个时间片内执行。合理设置时间片长度能够避免资源浪费和频繁的上下文切换。最短作业优先和最短剩余时间优先是常见的调度算法,通过预估和动态计算进程的执行时间提高系统效率和响应速度。多级反馈队列调度综合了优先级调度和时间片轮转调度的优点,适应不同类型的进程和任务。通过本文的阐述,读者将对进程调度的原理和算法有
487 0
进程调度的原理和算法探析
|
5G 索引
频域结构 | 带你读《5G 空口设计与实践进阶 》之十九
在频域,为满足多样带宽需求,NR 支持灵活可扩展的 Numerology。这相应也决定了 NR 在频域资源上的物理量度是可变的。
频域结构 | 带你读《5G 空口设计与实践进阶 》之十九
|
存储 缓存 移动开发
软考中级(软件设计)----存储系统、总线及系统可靠性
软考中级(软件设计)----存储系统、总线及系统可靠性
210 0
软考中级(软件设计)----存储系统、总线及系统可靠性
|
编译器
【计算机组成原理】从CPU执行时间聊如何做性能优化
衡量性能的指标有什么?针对CPU执行时间,我们可以从哪些部分优化?
570 0