Facebook: The Wimps Will Inherit the Data Center

Unlike Google, Facebook believes the wimps could inherit the data center. As various academics and free-thinking startups seek to reinvent the server using ultra-low-power processors -- aka "wimpy cores" -- Google continues to downplay the idea, and because it's Google -- the company that led a data-center revolution over the last several years -- people are listening. But Facebook is now leading a data-center revolution of its own, and the social networking giant cum hardware designer is rather high on the wimpy-core idea.
Image may contain Human Person Car Trunk Machine Clothing and Apparel

Unlike Google, Facebook believes the wimps have a future in the data center.

As various academics and free-thinking startups seek to reinvent the server using ultra-low-power processors -- aka "wimpy cores" -- Google continues to downplay the idea, and because it's Google -- the company that led a data-center revolution over the last several years -- people are listening.

But Facebook is now leading a data-center revolution of its own, and the social networking giant cum hardware designer is rather high on the wimpy-core idea.

"I think it's going to shake things up sooner than you think," says Frank Frankovsky, the man who oversees Facebook's effort to design its own servers and other data-center hardware.

The idea is to save power and space by building servers equipped with hundreds of processors not unlike the one in your iPhone. Rather than running your applications on traditional "brawny core" server chips, you break your software up into tiny pieces and spread them across a much larger number of "wimpy cores" -- a "core" being a single microprocessor. Startups such as SeaMicro and Calxeda are actually stuffing hundreds of individual chips into each server, while another outfit, Tilera, is stuffing hundreds of cores into a single chip.

The wimpy-core movement is part of a larger effort to re-imagine hardware in the data center so that it's suited to big-name web services and other operations that juggle unusually large amounts of data. Google was at the forefront of this movement, designing its own data centers and its own servers, and a big part of its philosophy was to break its software into pieces that could be run across a large array of servers. While other big businesses were using enormous monolithic servers to run their software, Google was using thousands of commodity machines equipped with commodity server chips.

In a way, Google pioneered the wimpy-core movement. But the company is believes there's a limit to how wimpy your cores can be. As you spread your application thinner and thinner, says Google distinguished engineer Luiz André Barroso, the spreading gets harder and harder. And at a certain point, he argues, it's just not worth it to go any further. "There’s easy parallelism, but then there’s harder parallelism," Barroso recently told Wired. "There are some parts of a program that are trivial to chunk into pieces, that don’t necessarily have to interact with each other … but eventually you’ve exhausted this, and you have to go down to other pieces of the code that are hard to parallelize."

The wimpy-core evangelists see Google's point, but they don't necessarily agree with it. SeaMicro CEO Andrew Feldman believes that Google takes this stance because its particular infrastructure isn't suited to wimpy cores, and Dave Andersen -- the Carnegie Melon professor who coined the "wimpy node" name -- says much the same thing. Both acknowledge, however, that some applications must be heavily rewritten for wimpy codes, and that many others -- not just Google's -- are completely unsuited to the setup. Because some potential customers were cold on the wimpy core idea, SeaMicro is now offering a version of its servers based on traditional Intel Xeon "brawny cores."

At Facebook, engineers have been tracking the progress of wimpy-core hardware for years, including gear from SeaMicro and Tilera. According to Frankovsky, the social networking giant is "actively testing hardware from both these outfits, and the company has employees dedicated to working with such hardware makers, "making sure Facebook code can run on alternative technology" to Intel's x86 instruction set, the technology used by today's brawny cores.

Facebook has yet to adopt this hardware for its live service, in part because the hardware from companies such as SeaMicro and Tilera can't handle as much memory as the massive social network requires. But the hardware makers are working to eliminate this restriction. "We're getting very promising results on our tests," Frankovsky says. "What we're focused on when it comes to CPU selection -- or really any selection [of hardware in the data center] -- is what can deliver the most useful work per watt per dollar. If that comes from Intel or AMD or Tilera or an ARM vendor, it's all good with me."

Part of the problem with using wimpy cores is that you have to move far more information between cores, and that can bog things down. But Tilera's hardware alleviates this problem by putting all the cores on a single chip, and Frankovsky points out that the problem goes away once you build new protocols for moving data between cores -- something that Facebook and others are now working on as part of the Open Compute Project. Frankovsky acknowledges that there may be limits to the wimpy-core setup, but he says it's too early to actually identify them. "At this point," he says, "those limits are all theoretical."

As Dave Andersen points out, some software "workloads" are suited to wimpy cores, and others are not. But when we asked which Facebook workloads might benefit from wimpy cores, Frank Frankovsky was unequivocal. "Within the Facebook environment, I haven't seen a workload that would be exempted from wimpy cores," he says. "But it's all a matter of time."