There’s plenty of room at the Top: What will drive computer performance after Moore’s law?
Status:: 🟨
Links:: Sustainable Computing
Metadata
Authors:: Leiserson, Charles E.; Thompson, Neil C.; Emer, Joel S.; Kuszmaul, Bradley C.; Lampson, Butler W.; Sanchez, Daniel; Schardl, Tao B.
Title:: There’s plenty of room at the Top: What will drive computer performance after Moore’s law?
Publication Title:: "Science"
Date:: 2020
URL:: https://www.science.org/doi/10.1126/science.aam9744
DOI:: 10.1126/science.aam9744
Bibliography
Leiserson, C. E., Thompson, N. C., Emer, J. S., Kuszmaul, B. C., Lampson, B. W., Sanchez, D., & Schardl, T. B. (2020). There’s plenty of room at the Top: What will drive computer performance after Moore’s law? Science, 368(6495), 9. https://doi.org/10.1126/science.aam9744
Zotero
Type:: #zotero/journalArticle
Keywords:: [⏳, Energy Efficiency]
Relations
Abstract
The miniaturization of semiconductor transistors has driven the growth in computer performance for more than 50 years. As miniaturization approaches its limits, bringing an end to Moore’s law, performance gains will need to come from software, algorithms, and hardware. We refer to these technologies as the “Top” of the computing stack to distinguish them from the traditional technologies at the “Bottom”: semiconductor physics and silicon-fabrication technology. In the post-Moore era, the Top will provide substantial performance gains, but these gains will be opportunistic, uneven, and sporadic, and they will suffer from the law of diminishing returns. Big system components offer a promising context for tackling the challenges of working at the Top.
Notes & Annotations
🟨 Note (last modified: 2023-08-23#09:29:24) (
Paper notes by David Mytton
https://davidmytton.blog/paper-notes-what-will-drive-computer-performance-after-moores-law/
One of the major points of the paper is that programmers have traded ease of use of the language for performance because the goal has been to reduce the time needed to write code rather than dealing with performance in production. They argue there is lots of room at “the top” for programmers to work closer with the hardware to produce more efficient code.
📑 Annotations (imported on 2023-08-23#09:30:23)
Software development in the Moore era has generally focused on minimizing the time it takes to develop an application, rather than thetimeittakestorunthatapplicationonceit is deployed. This strategy has led to enormous inefficiencies in programs, often called software bloat. In addition, much existing software fails to take advantage of architectural featuresofchips,suchasparallelprocessorsand vector units. In the post-Moore era, software performance engineering—restructuring software to make it run faster—can help applicationsrunmorequicklybyremovingbloatand by tailoring software to specific features of the hardware architecture.
How can this naïve matrix-multiplication code be performance engineered? Simply choosing a more efficient programming language speeds up this calculation dramatically. For example, coding it in Java (version 2) produces a speedup of 10.8×, and coding it in C (version 3) produces an additional speedup of 4.4×, yielding an execution time that is 47 times faster than the original Python.
Although switching languages gains a speedup of almost 50×, tailoring the matrix code to exploit specific features of the hardware makes it run an additional 1300 times faster. This gain comes from parallelizing the code to run on all 18 of the processing cores (version 4), exploiting the processor’s memory hierarchy (version 5), vectorizing the code (version 6), and using Intel’s special Advanced Vector Extensions (AVX) instructions (version 7).
The final optimized code performs the task in only 0.41 smore than 60,000 times faster than the 7 hours of the original Python code!