Why computational resources are not infinite?
A while ago, I've stumbled upon an interesting toot on Mastodon:
It linked to the research paper titled Frugal Computing - On the need for low-carbon and sustainable computing and the path towards zero-carbon computing. My thought process was the following - Hm, this seems interesting, but what the hell is frugal?
After a short research (one search query), I found out that frugal actually means economical, not wasteful, wise in expenditure of resources. Since I'm not a native English speaker, I felt a small sense of accomplishment after learning a new word.
Got a Wondering Mind?
Join me in my journey of learning about ways how software engineers can help build a more sustainable world.
No spam. Ever. I promise!
The Frugal Computing
All jokes aside, the title of the paper was now making way more sense to me than in the beginning. So I decided to have a look, and find out more. I've opened the paper, and read the abstract.
The current emissions from computing are almost 4% of the world total. This is already more than emissions from the airline industry and are projected to rise steeply over the next two decades. By 2040 emissions from computing alone will account for more than half of the emissions budget to keep global warming below 1.5°C. Consequently, this growth in computing emissions is unsustainable. The emissions from production of computing devices exceed the emissions from operating them, so even if devices are more energy efficient producing more of them will make the emissions problem worse. Therefore we must extend the useful life of our computing devices.
As a society we need to start treating computational resources as finite and precious, to be utilised only when necessary, and as effectively as possible. We need frugal computing: achieving our aims with less energy and material.
Great! - I thought. There is a paper that I can turn to when I need to convince myself and others about the importance of economical use of computational resources. And yes, I'm aware that this is coming from a person who has continued to think in the well-known sysadmin's way - Sure, we can add more CPU or Memory to your server, machine, VM, pod, container...
But, the important question here is - do we actually need that much of CPU or Memory? Probably not.
About the author
The author of the paper is Wim Vanderbauwhede, a professor from the University of Glasgow. He's the lead of the Low Carbon and Sustainable Computing activity at the School of Computing Science at the University. You can find more about him on the link below.
If you are on Mastodon, you can also check his profile there.
Aaaand, he also has a great blog!
Into the paper
This person knows what he's writing about, I thought. Unlike some of us (I mean me, yes). So, I continued reading the paper. In the following text, I'll go through each section and write down what I learned and how I understand it. I hope it helps!
What are computational resources?
In the first section, the author gives an explanation of what computational resources are. He uses a simple example.
... when you perform a web search on your phone or participate in a video conference on your laptop, the computational resources involved are those for production and running of your phone or laptop, the mobile network or WiFi you are connected to, the fixed network it connects to, the data centres that perform the search or video delivery operations.
There is no more to be added here. It's all summed in a nice and a comprehensive way. So let's go to the next part.
Are they infinite?
The second section is about the fact that computational resources are finite.
We tend to see the computational resources as infinite. We can always have more servers, storage, VMs... New, and more powerful laptop, smartphone, this new smartwatch... The last one was personal. When will it end?
Well, it turns out that, first - the energy usage of these devices will grow. And second - the resources used to create these devices and infrastructure are finite. So, it should end sooner rather than later.
The author sums the section with the following.
.. as a society we need to start treating computational resources as finite and precious, to be utilised only when necessary, and as frugally as possible. And as computing scientists, we need to ensure that computing has the lowest possible energy consumption. And we should achieve this with the currently available technologies because the lifetimes of compute devices needs to be extended dramatically.
I would like to call this “frugal computing”: achieving the same results for less energy by being more frugal with our computing resources.
So, the term frugal computing was born.
Why so serious?
The third section is going into details about why this is a problem and why we need frugal computing.
Meeting the climate targets. As stated in the paper - we cannot count on renewables to eliminate CO2 emissions from electricity in time to meet the climate targets. We also need to reduce our energy consumption.
Emissions from consumption of computational resources. Research shows that the emissions only from using devices will grow. From 3%-3.5% in 2020 to 10%-14% by 2040. In other words - the emissions of using will increase 3x or 4x times. This is a problem because by 2040 these emissions will equate to 5 GtCO2e. The target for the world total emissions from all sources by 2040 is 13 GtCO2e.
Emissions from production of computational resources. Yet another thing we don't think about.
Okay, new model of the phone is out, I need to have it! (Even though I used this model for only a couple of months...)
Well, emissions from producing them are actually way bigger than those of using them. For laptops and similar, production, distribution, and disposal is 52% of the total. The total being emission from both usage and production. For smartphones, that number is 72%, which is even bigger! And for servers is 20%.
We can fix all this by increasing the life span of the devices we use. Simple as that, isn't it?
Total emissions cost from computing. When we add things together, they don't look good. Based on the above, emissions from both consumption and production by 2040 will be 10 GtCO2e. And remember that the target is still 13 GtCO2e.
The main carbon cost of the resources is their production and the use of the mobile network. We must extend their useful life very considerably and reduce network utilisation.
How we can achieve computational frugality?
The fourth section is about a vision on how we can achieve that. To put it simple:
- use devices for longer time,
- support those devices for longer time (maintenance, spare parts...)
- incentivise the long-term support and usage (with taxes and policies).
Challenges ahead
The fifth section is about research challenges to the vision presented earlier.
There are numerous challenges in various aspects: cloud computing, ultra-HD video & VR/AR, IoT, mobile devices, AI... How we approach each aspect will determine the ending result.
Where to next?
This section is about research directions. Where we can go so we contribute to the vision stated above.
- Systems must be as energy-efficient and long-lived as possible.
- Sustainable systems need to be data-driven.
- Human-computer interfaces should bring awareness to users. Also nudge them towards more sustainable practices.
- Programming languages need to be aware of the full-system energy usage.
- Algorithms should focus on minimising energy consumption.
- Compilers need to compile for minimal energy consumption.
Conclusion
Whenever I hear something like less is more, I remind myself of a joke - Minimalism is just something made up by Big Small™ to sell more less. It always brings a smile to my face.
Joke aside, the way forward to reducing emissions from computing is by using less energy and less materials. And this is a fact!
Here is the link to the research paper. I hope you will find it as useful as I did.
Let me know in the comments below what do you think about the article. How do you find my comments to the research article presented? Is my analysis/explanation of the sections understandable?
Thank you and see you in the next article!