linux-阿姆达尔定律有多精确?
作者:互联网
In computer architecture, Amdahl’s law gives the theoretical speedup in latency of the execution of a task at fixed workload that can be expected of a system whose resources are improved.
延迟是理论上整个任务执行延迟的加速;
s是受益于系统资源改善的部分任务执行延迟的增加;
p是整个任务的执行时间与受益于改进之前系统资源的改进的部分有关的百分比.
时延= 1 / [(1-p)(p / s)]
这都是理论上的,我想什么时候不适用.估计CPU性能有多精确?
解决方法:
通常,当您要调整程序的某些部分时,您会制作一个微基准来单独测试.
这并不总是反映作为完整程序的一部分运行时的行为. (即,在您要调整的部分执行之间进行其他工作,而不是紧缩循环.)
例如如果您发现sin(x)计算非常昂贵,并用查找表替换了它们,则可能会在微基准测试中获胜,因为当连续调用时,一个足够小的表在高速缓存中仍然很热,而中间没有其他工作.类似地,微基准测试是在分支预测启动的情况下并且在没有代码缓存压力的情况下测量性能的(这会使循环展开看起来比实际情况更好).
但这只是意味着您对s的估计对于整个程序的功能来说是错误的,并不是说阿姆达尔定律是不准确的.这只是使用错误的一种情况.
但是,这确实可以为您的问题提供真正的答案:
以导致更多缓存或TLB丢失,分支错误预测等的方式加速程序的一部分确实违反了Amdahl的定律.
标签:cpu,cpu-architecture,operating-system,parallelism-amdahl,linux 来源: https://codeday.me/bug/20191112/2023985.html