This post is about another one those thoughts that occur at the clashing point of several different ideas. I travel a bit, and use the laptop a lot, and it always gets HOT. Laptops today are so smart: the fan is dynamically controlled by the heat, and the heat is caused by the amount of calculations you are making at the moment. So you really notice: when you do a function that causes the computer to think, the fan suddenly picks up. It really make you mindful of when the laptop is working, and when it is “resting”. But batteries never last as long as I would like, I am always trying to think of ways to reduce the amount of processing required to do my tasks.
It seems like I am in a losing battle with Microsoft over this. Newer operating system and versions of office see me to provide ever “whizzier” ways to do the same thing. Menus used to just appear, now they have to slide down, or fade in. Often we have discussed whether this is a conspiracy between Microsoft and Intel to get us to buy faster chips and more memory, so that the new machine I have which is 100 times more powerful than the 8 year old one seems to run just about the same with today’s software as the old one did on 8 year old software. All in the name of “progress”.
Honestly speaking, we know that the advances in software are aimed at providing better usability and convenience to the user. Since you have a more powerful machine, why not use it? The problem is that in designing such systems, we assume that CPU cycles are “free”. If you don’t use a CPU clock cycle, it is gone. But that is not really true: when you stop using the CPU cycles, the chip uses a lot less energy.
That is where “green software” comes in. We measure software on many different benchmarks. Maybe it is time that we started measuring how many CPU cycles it takes to perform certain standard operations. For example, different word processors may take different amounts of CPU time to input the exact same document. Or they might take different amounts of CPU time to render the same web page. Shouldn’t we, at some level, be aware of the “cost” of running such software. To date, CPU cycles are considered so close to free that unless there is a noticeable performance hit, nobody is concerned about saving CPU cycles. Once we become sensitive to reducing the amount of CPU time, such values could be reduced by 10x or 100x without any noticeable degradation in the use of the software.
I suppose this is all slightly ridiculous to worry about saving a few watts. In reality the power savings might only add up to a few cents per day per laptop. Surely there is lower hanging fruit to battle global warming. That is true, but there is another side of it: the cost of a laptop is not the electricity, but the battery. If software ran with 1/10 the CPU cycles, then you probably could make do with a significantly less powerful laptop, and this would generally take a lot less power. Smaller batteries would cost less, and be less harmful to the environment. Plus, if you are running lots of software at the same time, you could run more, in less memory, on a less powerful machine, if the software was green.
By the way, Fujitsu has a significant effort on green computer hardware. Our servers are designed to run on less electricity than the same capability server from the competitor. If you are running a large data center, the cost savings can be significant. Not a sales pitch here, but simply a reflection that attention to this kind of detail is really important.
Admittedly, the time is not ripe to worry about “Green Software”. But we should be sensitive to how much “CPU cost” a particular software product takes. This might be something that only the most sophisticated software is willing to take on as a goal (Linux, you guys listening?) But don’t pop my bubble: I wish to dream of a time that all the software I need runs reasonably on a laptop that does not keep getting terribly hot when all I am doing is reading and writing email!