What is Google's total computational capacity?
I estimate: 40 petaflops
This is 4x as powerful as the world's most powerful supercomputer.
For competitive reasons Google doesn't reveal this information themselves. We can, however, estimate their total number of servers together with the capacity per server. These figures can then be compared to other high-performance computer systems and used to extrapolate total capacity.
Number of servers
In a previous post from January 2012 (goo.gl/Dg1va) I calculated that Google's total number of servers is around 1,800,000. This includes all eight of their self-built data centers currently in operation worldwide. Other respected industry watchers are saying Google has 900,000 servers (goo.gl/X769K). But that figure is based on only a single data point (energy usage) that is both unreliable and over a year old. Google have opened whole new data centers since then. So I still think 1,800,000 is a reasonable up-to-date estimate.
Average power per server
In 2009 it was revealed that the average Google server is a commodity-class, dual-processor, dual-core, x86 PC system. That is, each server has four processor cores. See the paper where this is described: goo.gl/ipFLt (PDF, page 7). Note that this paper was published three years ago. It's quite possible that the servers are replaced over a three-year cycle. So the average now, in 2012, might be a dual-processor, quad-core system (eight cores per server, or even more). But let's be conservative and assume the 2009 info is still valid.
This means Google is running ~7,200,000 processor cores.
Google has said they go for power in numbers. That is, they use lots of cheap processors rather than a smaller number of costlier, more powerful ones. Let's assume then that the average processor is one that first came to market five years ago, i.e. in 2007. This might be the Intel Core2 Duo E4400 (goo.gl/SjcJZ) running at 2 GHz. This processor is capable of around 6 gigaflops per core. Multiply that by our estimated number of cores and Google's total comes out at 43 petaflops.
The capacity of a system is not, however, a simple multiplication of core count and flops-per-core. Rarely can a system reach its theoretical maximum. So for that reason it's helpful to look at other large-scale systems where the total capacity is known.
TOP500 supercomputers
According to the top500.org list, the world's most powerful supercomputer is currently the K computer in Japan. It has 705,024 processor cores and a maximum speed of 10 petaflops. This gives it an average speed-per-core of 14.9 gigaflops.
The K computer uses Sparc VIIIfx processors which are rated at 16 gigaflops per core. This tells us that the supercomputer is achieving 93% of the theoretical capacity of all its processors combined. If Google's servers achieve a similar percentage that would mean their total capacity is 40 petaflops, or four times that of the K computer.
Note that even if Google were able and inclined to run the Linpack benchmark across their whole platform they still wouldn't qualify for inclusion in the TOP500 list. Supercomputers only qualify if they're housed entirely under a single roof.
Amazon EC2 Cluster
An Amazon EC2 Cluster instance is currently number 42 on the TOP500 list. Like Google, it is also built using commodity hardware. The exact details are not known, but their web pages mention Xeon and Opteron x86 processors. In a benchmark test the cluster was able to achieve 240 teraflops using 17,024 cores. This averages to 14 gigaflops per core. If Google's servers are around the same performance, that would give them a total of just over 50 petaflops.
Grid computing
BOINC is a grid computing system originally developed for the SETI@home project. Volunteers around the world download client software which utilizes their PC's spare CPU cycles for scientific research. As of February 2012 the system has ~450,000 active computers (hosts) and processes on average 5.7 petaflops.
If we assume that the average BOINC host has the same power as the average Google server, and if we also assume that the average BOINC host is utilized the same amount of time as a Google server, then we can simply multiply the figures. Google has four times the number of servers as BOINC has hosts, so that would mean Google's total processing power is 22.8 petaflops.
Folding@home is another distributed computing project similar to BOINC. It is designed to perform simulations of protein folding and other molecular dynamics. As of February 2012 the project had around 414,000 active processors for a total of 8.4 petaflops. If we assume that Google's average processor performs similar to the average Folding@home processor, this would bring Google's total processing power to 36 petaflops.
Future growth
If Google's computational capacity grows according to Moore's Law then it will double every 18 months. This means Google will become an exascale machine (capable of 1 exaflops) by 2019.
Google said themselves in 2009 that their system is designed for 1 to 10 million servers (goo.gl/kR2ph). If they have ~2 million currently, that means there's room for five-fold growth, which would mean up to ~200 petaflops.
To reach 1 exaflops Google might need to evolve their architecture. Maybe that they'll start using GPUs, or processors with hundreds of cores. I've no idea, but I would guess someone inside Google is already thinking about it.
[Links nur für registrierte Nutzer]