【每日学习】amdahl定律及其意义

码林磷火
• 阅读 2023

什么是amdahl定律

  Amdahl定律是计算机科学中非常重要的定律。它定义了串行系统并行化后的加速比的计算公式和理论上限。

  加速比定义:
    加速比 = 优化前系统耗时 / 优化后系统耗时

当我们对系统的某个部分进行优化加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。

若系统执行某应用程序需要时间为T,假设系统某部分所需执行时间与该时间的比例为a,而该部分性能提升比例为k。即该部分初始所需时间为aT,现在所需时间为(aT)/k。因此,总的执行时间应为

        (1-a)T+(aT)/k=T[(1-a)+a/k]

由此,可以计算加速比

        S=1/[(1-a)+a/k]

该部分的系统整体占比和优化提升程度共同决定了优化效果

其中,如果想要显著加速整个系统,必须提升全系统中更多部分的速度

意义

如果不考虑到在系统中的占比a,只优化其中部分性能提升效果较好的部分

那么对于整体的优化效果,往往是不尽人意的

举个例子,考虑这样一-种情况, 系统的某个部分初始耗时比例为60%(a = 0.6),其加速比例因子为3(k=3)。则我们可以获得的加速比为1/[0.4+0.6/3]=1.67倍。虽然我们对系统的一个主要部分做出了重大改进,但是获得的系统加速比却明显小于这部分的加速比。

.

另外,

当k趋于无穷的时候

我们将系统的某一部分加速到一个点,在这个点上花费的时间可以忽略不计
可以得到

S=1/(1-a)

举个例子,如果60%的系统能够加速到不花时间的程度,我们获得的净加速比仍将只有2.5

我们可以在图中很直观的感受到变化
【每日学习】amdahl定律及其意义
因此,在思考一个系统的整体运行效果的时候,局部个体的优先级往往低于整体系统

应用

Amdahl定律描述了改善任何过程的般原则。 除了可以用在加速计算机系统方面之外,它还可以用在公司试图降低制造成本,或学生想要提高自己的绩点平均值等方面。但是也许它在计算机世界里是最有意义的,在这里我们常把性能提升2倍或更高的比例因子。这么高的比例因子只有通过优化系统的大部分组件才能获得。

从负载的角度分析,主要分析如何优化代码,加快单台机器的响应时间;
从资源的角度分析,则是在定义服务的扩展性,增加多少资源,能够是系统容量有多大的提升。

【每日学习】amdahl定律及其意义

点赞
收藏
评论区
推荐文章
御弟哥哥 御弟哥哥
4年前
MySQL索引原理老夫一把梭,从头到尾全讲透了
索引,可能让好很多人望而生畏,毕竟每次面试时候MySQL的索引一定是必问内容,哪怕先撇开面试,就在平常的开发中,对于SQL的优化也而是重中之重。可以毫不夸张的说,系统中SQL的好坏,是能直接决定你系统的快慢的。但是在优化之前大家是否想过一个问题?那就是:我们优化的原则是什么?优化SQL的理论基础是什么?虽然说实践出真知,但是我更相信理论是
九路 九路
4年前
Android 内存管理机制
前言:Android系统是基于Linux内核开发的操作系统,而Linux系统有其独到的内存管理机制,会在进程活动停止后结束该进程。Android在此基础上优化了内存管理,会把进程都保存在内存中,直到系统需要更多内存为止,释放部分进程。这些被保存在内存中的进程,并不会影响系统的运行速度,相反,在重新打开这些进程时,会提升进程启动速度Android内存管
面试字节跳动Java工程师该怎么准备?值得收藏!
性能调优影响MySQLServer性能的相关因素1.商业需求对性能的影响2.系统架构及实现对性能的影响3.Query语句对系统性能的影响4.Schema设计对系统的性能影响5.硬件环境对系统性能的影响MySQL数据库锁定机制1.MySQL锁定机制简介2.各种锁定机制分析3.合理利用锁机制优化MySQLMySQL数据库Que
亚瑟 亚瑟
4年前
Flutter - 深入理解Flutter动画原理
基于Flutter1.5,从源码视角来深入剖析flutter动画原理,相关源码目录见文末附录一、概述动画效果对于系统的用户体验非常重要,好的动画能让用户感觉界面更加顺畅,提升用户体验。1.1动画类型Flutter动画大的分类来说主要分为两大类:补间动画:给定初值与终值,系统自动补齐中间帧的动画物理动画:遵循物理学定律
Wesley13 Wesley13
3年前
QQ群免IDKEY加群PHP源码
加群链接需要idkey的,该源码自动解析idkey,实现免idkey加群。该源码来自彩虹秒赞系统。例如:api.yum6.cn/qqun.php?qun463631294<?php/免IDKEY加群Author:消失的彩虹海/error_reporting(0);function
Stella981 Stella981
3年前
GitHub上最火爆!码代码不得不知的所有定律法则
\TOC\<br\\来源:\\\nusr/hackerlawszh\(https://github.com/nusr/hackerlawszh)<br这是\hackerlaws\(https://github.com/dwmkerr/hackerlaws)的中文翻译,对开发人员有用的定律,理论,原则和模式
Stella981 Stella981
3年前
Joomla搜索引擎优化
无需其他扩展程序的Joomla核心系统已经为优化搜索引擎系统提供了广泛的可能性。在本文中,我们解释了如何优化Joomla网站(页面优化)。什么是页面优化?页面优化是用于描述搜索引擎优化领域的术语,该领域负责改善网站本身。页面上的优化分为以下几个方面:技术,内容,结构和可用性。随着这些领域的改善,应该实现搜索引擎中位置的持久改善。
JAVA应用CPU跳点自动DUMP工具 | 京东物流技术团队
背景在做系统监控时,CPU的使用率是一个关键的指标,它反映了系统的性能稳定性以及是否存在异常情况,能帮助我们了解系统的负载情况。通过监控CPU使用率,可以判断系统是否正常运行或者是否存在性能问题。如果CPU使用率过高,可能表示系统存在资源瓶颈,需要进行优化
JAVA应用CPU跳点自动DUMP工具
背景在做系统监控时,CPU的使用率是一个关键的指标,它反映了系统的性能稳定性以及是否存在异常情况,能帮助我们了解系统的负载情况。通过监控CPU使用率,可以判断系统是否正常运行或者是否存在性能问题。如果CPU使用率过高,可能表示系统存在资源瓶颈,需要进行优化
京东云开发者 京东云开发者
8个月前
小小的日志,大大的坑
作者:京东零售王军1.背景压测过程中优化线程池以后单机qps存在性能瓶颈,优化过程中发现默认线程池及日志对性能存在严重的影响所以引发了一系列对日志优化的整理2.哪些场景可能导致性能问题在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据
数字先锋 | 竞技科研蓝海,中南大学先“算”一步!
自计算机诞生之日起,科学研究对计算性能的无限追求,一直在不断冲击和超越摩尔定律的想象。而高校作为科研成果创新和人才培养的重要基地,其计算能力已经成为衡量自身科学技术研究、产品研发实力、人才培养水平的重要标志。在中南大学的高性能计算公共平台机房内,一排排机柜