From 204fda5b3a49627bea5e98cfa5eca33dec337a7c Mon Sep 17 00:00:00 2001 From: behoppe Date: Wed, 7 Feb 2024 18:55:28 +0000 Subject: [PATCH 1/2] =?UTF-8?q?Create=20Blog=20=E2=80=9C2024-02-07-the-com?= =?UTF-8?q?puting-performance-paradox=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...02-07-the-computing-performance-paradox.md | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 src/posts/2024-02-07-the-computing-performance-paradox.md diff --git a/src/posts/2024-02-07-the-computing-performance-paradox.md b/src/posts/2024-02-07-the-computing-performance-paradox.md new file mode 100644 index 00000000..d8791992 --- /dev/null +++ b/src/posts/2024-02-07-the-computing-performance-paradox.md @@ -0,0 +1,145 @@ +--- +layout: layouts/post.njk +title: The Computing-Performance Paradox +tagline: Why should we care about how fast our software runs? +author: Charles E. Leiserson +date: 2024-02-07T18:46:37.291Z +attribution: false +--- +Why should we care about how fast our software runs? Many other system properties — security, functionality, maintainability, usability, etc. — are arguably more important than performance. Then why do we value performance (or for performance skeptics, should we value performance)? Perhaps the answer lies at the origin of economics in the 18th century, long before computers were invented. + +Welcome to the Fastcode blog. Fastcode is a website focused on ***software performance engineering***: making +code run fast or otherwise use few resources, such as energy, storage, +network bandwidth, etc. My name is Charles Leiserson, and I’ve been a +professor of computer science and engineering at MIT for 42 years. You +can find more about me at my website . +For this kickoff blog post, I’d like to share with you a paradox about +computing performance that confused me until about 15 years ago. + +It all started when my colleague Saman Amarasinghe and I introduced a +new class at MIT aiming to teach students how to make code run fast. At +the time, many of my colleagues at MIT and elsewhere expressed +skepticism that fast code was an important academic topic. One said +(paraphrasing), “I never waste time worrying about the performance of +the code I write. Computers are fast. Software functionality and +programmer time are much more important. We need to teach programmer +productivity, not software performance.” Yet I felt in my gut that +educating students in software performance engineering would be +important for their careers, at least in the long run. If performance is +so cheap, I asked myself, why do I feel it’s so valuable? It’s a +paradox. + +Indeed, Saman and I now use this paradox to introduce students to our +junior/senior-level class on software performance engineering. For over +fifteen years, I have started my first lecture of class the same way. I +tell the approximately 180 students in the lecture hall that we will be +studying how to develop fast code. Then I ask them, “What software +properties are more important than performance?” After a little +prompting, they volunteer a variety of answers: correctness, +functionality, usability, security, debuggability, maintainability, +modularity, reliability, compatibility, etc. + +When our list is well populated, I ask the students, “If programmers are +willing to sacrifice performance for these properties, why study +performance? It sounds as if lots of other topics are more +consequential. In other words, why bother taking this class?” I invite +them to leave and take one of the many other computer-science classes at +MIT that will teach obviously far more important topics. (I have never +seen any students leave.) + +A bit later in the lecture, I invite a student volunteer to the lecture +podium to play a game called *Which Do You Choose?* I tell them[1] that +I will exhibit two objects, and they can pick either one to take back to +their seat. That’s it. They see the two objects, and they choose one. + +After confirming that the student understands the rules, I show them the +first object: a 16.9-ounce bottle of water.[2] Then I reveal the second +object: a $10 bill. I ask them which they want to take back to their +seat. Every year, the student says the same thing: “I’ll take the ten +dollars.” + +I then point out that water is essential to life, but they can live +without $10. Why pick the money, which clearly is less valuable? +Invariably, they say, “I can buy a bottle of water for less than $1 and +have at least $9 left over to do whatever I want with.” Indeed, the +local supermarket this week is offering 24 16.9-ounce bottles of water +for just $4.99, less than 21 cents per bottle. + +The famed economist Adam Smith in his opus *An Inquiry into the Nature +and Causes of the Wealth of Nations* (1776) posed a similar question +(water versus diamonds), noting that there are two notions of value, +what he calls “use-value” (utility) and “exchange-value” (price): + +> “Nothing is more useful than water: but it will purchase scarcely +> anything; scarcely anything can be had in exchange for it. A diamond, +> on the contrary, has scarcely any use-value; but a very great quantity +> of other goods may frequently be had in exchange for it.” + +Consequently, a diamond costs more than water, and people prefer $10 to +a bottle of water because they can buy a bottle of water for less than +$1 and have at least $9 left over for other things. Smith’s observations +have evolved into the modern economic theory of supply and demand. For +example, there are contexts where one might value a 16.9-ounce bottle of +water more than $10. In the middle of a desert, a thirst-stricken person +might eagerly give up more than $10, or even a diamond, in exchange for +a bottle of water, because water is more scarce. + +I contend that computing performance is like currency: We want +performance because we can use it to buy software properties we value +more. It’s the same kind of paradox. Just as we trade money for things +we value more—housing, food, clothing, transportation, education, +entertainment, etc.—we trade performance for things we value +more—correctness, usability, security, reliability, portability, +responsiveness, etc. Just as currency is a universal platform for +trading goods and services, performance is a universal platform for +trading properties of software. And just as most of us would like a bit +more money than we currently have, all things being equal, most of us +would like more performance out of our computer systems so as to better +afford the software properties we truly want. + +As an example of this trade-off, Apple Computer famously changed the +history of technology in 1984 by trading an unprecedentedly large +fraction of the Macintosh computer’s performance in exchange for a more +intuitive user interface. As another example, Python has risen to the +top of IEEE *Spectrum*’s list of top programming languages even though +it tends to produce slower code than C or C++ because many people value +developer time over execution time. They trade application performance +for ease of development. + +In the next few blog posts, I’ll overview the history of computing +performance, including the important role of Moore’s Law, which has +essentially doubled the computing capability of a silicon chip every two +years for over 55 years. (Imagine if your inflation-adjusted salary +consistently doubled every two years for your entire professional life. +How would that affect your approach to household costs and budgeting?) +I’ll argue that the recent demise of Moore’s Law has elevated the +importance of software performance engineering as a primary means for +obtaining application performance. I’ll demonstrate the dramatic gains +possible from performance engineering, which will touch on techniques +such as vectorization, caching, and parallel programming. I will aim to +convince you that performance engineering is a basic skill that every +undergraduate in computer science should know. + +Unfortunately, there’s a catch. Just because performance engineering is +a basic skill doesn’t make it easy. Today’s systems and productivity +tools make it hardboth to do and to teachand that’s where this website +comes in. We created Fastcode.org to be a free resource for software +performance engineering. Whether you are a practicing engineer, a +professor, or a student, you will find resources here to learn about +software performance. In particular, the Fastcode website features +OpenCilk, an integrated open-source ecosystem for performance +engineering that is based on a state-of-the-art task-parallel platform +that is easy to use, extend, and incorporate into your own research. +There are other systems you can use for doing and teaching performance +engineering, and we will write about them here as well, but we invite +you to try OpenCilk. Its simple language, small codebase, and +mathematically provable guarantees of performance set it apart from +other platforms. + + +[1] Whenever possible, I will try to use gender-neutral terminology out +of respect for the diversity of humans, which I cherish. + +[2] Personally, I tend to minimize my use of single-use plastic +containers, but for this demonstration for almost 200 students, I +compromised my morals. \ No newline at end of file From 349ae921040bab023369057e6d318f1848618a65 Mon Sep 17 00:00:00 2001 From: Bruce Hoppe Date: Wed, 7 Feb 2024 15:54:22 -0500 Subject: [PATCH 2/2] minor post edits, add headshot --- src/img/Charles Leiserson.jpg | Bin 0 -> 7935 bytes ...02-07-the-computing-performance-paradox.md | 33 ++++++------------ 2 files changed, 11 insertions(+), 22 deletions(-) create mode 100644 src/img/Charles Leiserson.jpg diff --git a/src/img/Charles Leiserson.jpg b/src/img/Charles Leiserson.jpg new file mode 100644 index 0000000000000000000000000000000000000000..29a9c375d37cd24eafed3454ab8cfb9db257e2c9 GIT binary patch literal 7935 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. -For this kickoff blog post, I’d like to share with you a paradox about -computing performance that confused me until about 15 years ago. +Welcome to the Fastcode blog. Fastcode is a website focused on ***software performance engineering***: making code run fast or otherwise use few resources, such as energy, storage, network bandwidth, etc. My name is Charles Leiserson, and I’ve been a professor of computer science and engineering at MIT for 42 years. You +can find more about me at my website . For this kickoff blog post, I’d like to share with you a paradox about computing performance that confused me until about 15 years ago. It all started when my colleague Saman Amarasinghe and I introduced a new class at MIT aiming to teach students how to make code run fast. At @@ -44,16 +41,16 @@ willing to sacrifice performance for these properties, why study performance? It sounds as if lots of other topics are more consequential. In other words, why bother taking this class?” I invite them to leave and take one of the many other computer-science classes at -MIT that will teach obviously far more important topics. (I have never -seen any students leave.) +MIT that will teach obviously far more important topics. I have never +seen any students leave. A bit later in the lecture, I invite a student volunteer to the lecture -podium to play a game called *Which Do You Choose?* I tell them[1] that +podium to play a game called *Which Do You Choose?* I tell them that I will exhibit two objects, and they can pick either one to take back to their seat. That’s it. They see the two objects, and they choose one. After confirming that the student understands the rules, I show them the -first object: a 16.9-ounce bottle of water.[2] Then I reveal the second +first object: a 16.9-ounce bottle of water. Then I reveal the second object: a $10 bill. I ask them which they want to take back to their seat. Every year, the student says the same thing: “I’ll take the ten dollars.” @@ -134,12 +131,4 @@ There are other systems you can use for doing and teaching performance engineering, and we will write about them here as well, but we invite you to try OpenCilk. Its simple language, small codebase, and mathematically provable guarantees of performance set it apart from -other platforms. - - -[1] Whenever possible, I will try to use gender-neutral terminology out -of respect for the diversity of humans, which I cherish. - -[2] Personally, I tend to minimize my use of single-use plastic -containers, but for this demonstration for almost 200 students, I -compromised my morals. \ No newline at end of file +other platforms. \ No newline at end of file