At ALT.NET Canada this weekend I had a bunch of interesting conversations about all sorts of things. Thanks to Michael Stiefel for proposing the session on what Green means for developers. That and some other conversations at the weekend caused things to fall into place.
In the past I’ve blogged about power consumption and efficiency. But is lower power consumption really the goal?
“In contrast with many home appliances, life cycle energy use of a computer is dominated by production (80%) as opposed to operation (20%).”
– Project: Life Cycle Assessment of IT hardware, IT and Environment Initiative
If only 20% of the environmental impact of a PC occurs while you own it then there’s not much you can do to reduce it’s impact. The damage is done before you even take it out of the box! Even if you make the computer ten times more efficient or lower your usage by 90% the overall impact only drops by 18%.
Maybe the environmentally responsible thing to do is to try and maximize it’s usage?
My guess is that the average PC runs most efficiently at somewhere between 50-70% of maximum power (this is definitely true for a typical power supply). Suppose we made sure a computer was used all the time and ran at it’s most efficient?
A big PC running at 50% maximum is going to use a a couple of hundred watts. Let’s keep the math simple and say 200W. If I were to run it 24×7 all year it would cost me roughly $175 (that’s 0.2kWh * 24 * 365 * $0.10/kWh). I’m only actually sitting in front of it (say) 10% of the time so about $150 would be the cost to me of having it do work for someone else. What if I could rent out those CPU cycles?
This isn’t a new idea. There are lots of other examples of business models where individuals resell unused resources to recoup their upfront costs and maximize usage. Some states will let you sell surplus power generated by solar panels on your house back to the grid. People often rent out their houses while on extended vacations, their holiday homes when they are at work or buy shares in expensive items like yachts and private planes.
Turns out you can already do this with your PC. SETI @ home (3 million nodes), Folding @ home (400,000 nodes) and BOINC (570,000 nodes). This is a tiny percentage of the more than 1 billion PCs in use Worldwide. All these projects are volunteer efforts. People donate their computers and pay for the electricity themselves. In order to get up and running individual users need to install SETI or BOINC on their PC and configure it.
There are some further limitations to these (p2p) systems mainly around centralized administration, availability of compute nodes and privacy. The level of node-node connectivity is also much less than that available in the datacenter, 1Mb/s for a residential connection vs. 1Gb/s in the datacenter. For these reasons the p2p rental model and the datacenter aren’t mutually exclusive.
“Datacenter clouds and p2p systems are not a substitute for each other. Widely distributed peers may have more aggregate resources, but they lack the reliability and high interconnection bandwidth offered by datacenters. As a result, cloud-hosting and p2p systems complement each other. We expect that in the future more and more applications will span both the cloud and the edge.”
– Above the Clouds – Berkeley CS
Making it happen…
Some ideas as to how to increase the adoption of this type of computing. This is really just an extension of the idea of Green IT through sharing in the datacenter (Pat Helland) but extended to the huge number of desktops on the planet.
Adoption – Deploy a framework like BOINC as part of the OS. Allow users to opt in as part of the OS install. Users will be incentivized to do this because they will get paid (see next point).
Payment – Provide a model to track processor and storage (disk space) rental over time and pay users for the resources used. Similar micro-payment systems exist today around web advertising. Payment could be in the form of cash or tax rebates for rentals to scientific or non-profit compute efforts like SETI @ home.
Privacy – Code runs inside a sandbox with limited access to the host PC’s resources. Data sent to the host PC in encrypted. The host PC’s security model is further enhanced to make unintended access more difficult. This is a harder problem to solve. I don’t expect these applications to be used for sensitive data processing any time soon.
Availability and connectivity are still serious issues but there are large classes of problems which have already shown they can use this model effectively.
Well that’s my not too crazy idea from ALT.NET. Hope you enjoyed it. I’m off to see what happens if I install SETI at home on my on 24×7 Windows Home Server just for starters.
Note: For more on some of the other impacts of Green on the way developers approach building eventually consistent applications which will run on lower availability datacenters see some notes I took from a talk Pat Helland gave at the p&p Summit on Green Computing.