- Mastering Concurrency in Python
- Quan Nguyen
- 298字
- 2021-06-10 19:23:59
Amdahl's Law's relationship to the law of diminishing returns
Amdahl's Law is often conflated with the law of diminishing returns, which is a rather popular concept in economics. However, the law of diminishing returns is only a special case of applying Amdahl's Law, depending on the order of improvement. If the order of separate tasks in the program is chosen to be improved in an optimal way, a monotonically decreasing improvement in execution time will be observed, demonstrating diminishing returns. An optimal method indicates first applying those improvements that will result in the greatest speedups, and leaving those improvements yielding smaller speedups for later.
Now, if we were to reverse this sequence for choosing resources, in which we improve less optimal components of our program before more optimal components, the speedup achieved through the improvement would increase throughout the process. Furthermore, it is actually more beneficial for us to implement system improvements in this reverse-optimal order in reality, as the more optimal components are usually more complex, and take more time to improve.
Another similarity between Amdahl's Law and the law of diminishing returns concerns the improvement in speedup obtained through adding more processors to a system. Specifically, as a new processor is added to the system to process a fixed-size task, it will offer less usable computation power than the previous processor. As we discussed in the last section, the improvement in this situation strictly decreases as the number of processors increases, and the total throughout approaches the upper boundary of 1/B.
It is important to note that this analysis does not take into account other potential bottlenecks, such as memory bandwidth and I/O bandwidth. In fact, if these resources do not scale with the number of processors, then simply adding processors results in even lower returns.
- 深入核心的敏捷開發:ThoughtWorks五大關鍵實踐
- Python快樂編程:人工智能深度學習基礎
- Visual FoxPro程序設計教程
- Visual Basic程序開發(學習筆記)
- Learning Docker
- PHP 從入門到項目實踐(超值版)
- Java Web開發之道
- Raspberry Pi for Secret Agents(Third Edition)
- 精通軟件性能測試與LoadRunner實戰(第2版)
- 程序設計基礎教程:C語言
- Hands-On Neural Network Programming with C#
- 編程可以很簡單
- Getting Started with Polymer
- RESTful Web Clients:基于超媒體的可復用客戶端
- C語言程序設計教程