Tuesday, September 26, 2006
Intel CTO Justin Rattner was kind enough to invite me on stage today during his R&D keynote at the Intel Developers' Forum to talk about some of the computing platform challenges we face in building large-scale Internet services. Talking to industrial colleagues and the academic community about some of our most important platform-level requirements is something I always make time for. If you're trying to build interesting systems, life is easier when hardware vendors are aware of what works for you and what doesn't.
Chip multiprocessing -- the idea that multiple simpler processing units in one chip can be a better choice than a single hulking one -- is an example of a technology we've been vocal supporters of for quite a while. See for example "Web Search for a Planet" and "Price of Performance." We're happy to see this thinking being embraced by several vendors.
The focus of our message at IDF today was efficiency: power efficiency and programming efficiency. There are several hard technical problems surrounding power efficiency of computers, but we've found one that is actually not particularly challenging and could have a huge impact on the energy used by home computers and low-end servers: increasing power supply efficiency. All computers, including personal computers and servers, have power supplies to convert the alternating current (AC) from the outlet to the direct current (DC) needed by the machine. Typical power supplies waste 30-45% of their input power, and relatively simple modifications can bring this waste down to 10%. Others, like 80 PLUS, have also identified and targeted these inefficiencies. We believe that the development of a new open standard is necessary to achieve very high efficiencies at low costs, so we have begun discussions with Intel and other vendors that we hope might lead to significantly more efficient power supplies. Here's a short white paper describing this in more detail (PDF). If you'd like us to keep you posted on our progress, please send us a note at firstname.lastname@example.org.
Programming for systems with many computers can be a daunting task, but one that our engineers have to face every day. Simplifying this task has a direct impact on programmer productivity, and consequently the rate of innovation. Software tools such as MapReduce have been very successful at Google by making it easier to process huge amounts of data quickly by spreading it over many computers. However, the efficiency of the computation can still suffer because of the limitations of the underlying computer platform. For example, programmers only have two major storage options that are widely available: memory (DRAM, specifically) and disk drives. Latency of disk accesses is about 100,000 times slower than memory, while memory is approximately 200 times more expensive (per gigabyte) than disks. These two alternatives are so far apart that programmers are forced to choose from two extremes, making some computations very difficult. I suggested to the IDF audience that there might be an opportunity for intermediate solutions in this space, faster than disks but cheaper than memory. Some forms of FLASH memory might soon be possible solutions, for example.
It's always rewarding to exchange notes with our friends in industry and academia, whether through participation in events or by publishing papers. I expect we'll continue to do that.