How much power is used when you do a Google search?

The web is a great way of outsourcing tasks to specialized parallel supercomputers. Here’s a crude order-of-magnitude estimate of the amount of computing power used in a single Google search.

The size of the Google server cluster is no longer public, but online estimates typically describe it as containing about half a million commodity machines, each comparable in power to the personal computers widely used by consumers. As a rough estimate, let’s say about 200,000 of those are involved in serving search results.

I don’t know how many searches are done using Google. But online estimates put it in the range of hundreds of millions per day. At peak times this means perhaps 10,000 searches per second.

In usability studies, Google has found that users are less happy with their search experience when it takes longer than 0.4 seconds to serve pages. So they aim to serve most of their pages in 0.4 seconds or less. In practice, this means they’ve got to process queries even faster, since network communication can easily chew up much of that 0.4 seconds. For simplicity we’ll assume that all that time is available.

What this means is that at peak times, the Google cluster’s effort is being distributed across approximately 4,000 searches.

Put another way, each time you search, you’re making use of a cluster containing the equivalent of (very) roughly 50 machines.

I’d be very interested to know what fraction of computing power is contained in such supercomputers, versus the fraction in personal computers. Even more interesting would be to see a graph of how this fraction is changing over time. My guess is that at some point in the not-too-distant future most power will be in specialized services like Google, not personal computers.

Published

Biweekly links for 04/18/2008

Click here for all of my del.icio.us bookmarks.

Published

Biweekly links for 04/14/2008

Click here for all of my del.icio.us bookmarks.

Published

The unexpected cognitive benefits of linklogging

Since starting my twice-weekly linklog, I’ve noticed an unexpected benefit, namely, that quite a bit of what I post to my linklog gets retained in my long-term memory. Much more, I suspect, than I would have retained otherwise. Arguably, this isn’t always a good thing, but on the whole it’s pleasing.

Biweekly links for 04/11/2008

Click here for all of my del.icio.us bookmarks.

Published

Biweekly links for 04/07/2008

Click here for all of my del.icio.us bookmarks.

Published

Everything should be code

An idea that rocked my world at SciBarCamp was the understanding that everything should be expressed as code.

This realization was the outcome of two sessions. In one session, Andrew Hessel gave a fantastic talk about synthetic biology, i.e., the direct synthesis of biological organisms, by coding their DNA. One of many fascinating things about the talk was the point of view, which wasn’t so much that of a biologist, as that of a computer programmer. A nice example of this point of view is provided by the BioBricks Foundation:

Using BioBrickâ„¢ standard biological parts, a synthetic biologist or biological engineer can already, to some extent, program living organisms in the same way a computer scientist can program a computer. The DNA sequence information and other characteristics of BioBrickâ„¢ standard biological parts are made available to the public free of charge currently via MIT’s Registry of Standard Biological Parts.

In another session, Mark Tovey spoke about open source objects (I don’t remember Mark’s exact terminology), and pointed out that using suitable fabrication technology it becomes possible to express objects as code.

In both cases, expressing something we don’t ordinarily think of as code means that all the social and technical processes of software development can be applied. In the ordinary way of thinking it doesn’t make sense to take the “diff” of two objects, and version control (with merging!) would be cumbersome at best. By expressing objects as code, these and many other operations become trivial. Libraries, APIs, and high-level domain specific languages can be built. Widespread distributed collaboration becomes possible. The open source process can be applied. A creative commons can be constructed.

This circle of ideas gives rise to many wonderful questions. What are the right sorts of abstraction when you’re expressing objects as code? Biology? Movies? Music? What sorts of libraries might we build? What’s the lisp of biology? The LAMP stack for music?

Biweekly links for 04/04/2008

Click here for all of my del.icio.us bookmarks.

Published

Science in the 21st Century

Registration for the Perimeter Institute Conference on “Science in the 21st Century” is now open. A partial participant list is here – it looks like there’s going to be loads of stimulating talks, and I’m really looking forward to it!

Published