Throughput >> Latency

在04年发表的论文《Latency Lags Bandwidth》作者David Patterson谈到他观察到的有趣现象,在很多计算机相关技术里面,包括处理器,内存,硬盘和网络,其Bandwidth或者Throughput要比Latency进步快很多。在衡量计算效能的正确姿势(1)我们已经聊过Throughput和Latency的概念,Throughput指的是单位时间完成的任务数,而Latency是完成任务所需要的时间。比如针对处理器,Throughput指的是单位时间完成的指令数量,可以用MIPS(Million Instructions Per Second)来代表,而Latency一般指执行一条指令所花费的时间。

作者统计了大概20年时间(~1980 - ~2000)相关技术重要节点时两个指标的变迁,平均到年度变化如下图。

近20年区间累积改善的倍数Latency相比Throughput:处理器为21x vs 2250x,内存为4x vs 120x,网络为16x vs 1000x,硬盘为8x vs 143x,可谓差距巨大。下图(log化后的结果)反应了这个相对变化快慢。

在作者新近的著作里,继续跟踪了最近十几年两个指标的变化,反映Throughput > Latency的趋势还在延续,底下表格是有关处理器,内存,硬盘和网络技术在最近30~40年重要节点的详细参数汇总。

两个指标为什么会呈现这种差别,从技术上可以做如下理解:

  1. 摩尔定律更有助于Throughput。晶体管数目增多,芯片面积增大会限制Latency指标。

  2. 改善Latency指标可以帮助Througput,但反过来不成立,改善Throughput甚至有可能不利Latency。

  3. 绝对的距离以及相应的传输时间限制Latency的改善空间。正如网络谚语有云:Bandwidth problems can be cured with money. Latency problems are harder because the speed of light is fixed—you can’t bribe God.

  4. 测量Latency时候系统软件的开销没法像Throughput一样摊销,典型的如网络软件栈之于网络延迟。

而且从市场营销的角度,Throughput可能是个更好的卖点。另外,我觉得这跟用户的体验心理相关,对很多程序而言,用户关心的任务往往是粗粒度的(coarse grained),这正反映了Throughput的特点,而Latency是细粒度(fine grained)指标,针对的是用户任务的子任务,甚至子子任务。比如对一个计算程序,用户关心计算整体需要花多少时间,他不关心具体分发的每个GPU硬件线程执行快慢,更无从计较每条指令的延时。所以Throughput实际上代表了计算系统与用户的接口,而Latency代表系统的内部实现细节。只要计算系统的软件硬件架构实现可以掩藏Latency,相比之下Latency就显得不那么重要了。

最后需要强调的是,对交互式程序,Latency还是非常有价值的指标,无论是桌面还是网络程序,响应时间太慢会极大影响用户体验。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果觉着内容有帮助,请帮忙关注,点赞,分享给更多的朋友。谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值