Performance Scaling Laws

   

并行优化有两个 scaling laws指导优化的界。

Amdahl's Law

Amdahl's Law又叫strong scaling law。

Amdahl's Law
For a given workload in single node, the theoretical speedup of the latency of the workload, is constricted both by the number of processors executing and the serial proportion of the workload.
Performance Scaling Laws
阿姆达尔定律解决的问题是:给定workload,优化其性能,关注于把给定的任务做好。
假设给定workload的初始latency为Performance Scaling Laws,其中可并行优化部分latency为Performance Scaling Laws, 非可并行优化部分latency为Performance Scaling Laws
那么,使用n路并行只能优化其并行部分,优化后可并行部分最好latency为Performance Scaling Laws,非可并行优化部分latency仍为Performance Scaling Laws,总latency为Performance Scaling Laws
因此,性能提升上限为Performance Scaling Laws, 即为Performance Scaling Laws

Amdahl's Law是面向工程师的,提醒工程师谨防无用功,在性能优化时,除了看模块性能增益外,更要关注模块对整个workload的增益。在优化前一定要做好收益分析,而收益分析的前提是性能分布。
举个例子:一个可并行优化部分latency占总workload latency比为50%的workload。不管可并行部分怎么优化,它对这个workload的贡献上限为2x;且在模块性能已到8x优化后,对改部分的优化的投入的收益会很marginal,可以考虑多分析分析其他部分。

Performance Scaling Laws
Amdahl's Law告诉我们对给定workload的优化是有明显饱和区的,因此要格外关注性价比指标。如何关注性价比指标,就是要做好测量,无测量不优化。对程序员来说就是执行好profiling based optimization。

Performance Scaling Laws

Gustafson's Law

Gustafson's Law又叫weak scaling law。

Gustafson's Law
For a scaled-up/scaled-out workload in

上一篇:前端页面渲染优化——performance工具分析优化


下一篇:使用docker来启动mysql5.7服务