Can Thousands Of Tiny Processors Compete With Traditional Enterprise-Class Systems?

Well, I guess we're going to find out. Earlier this week I met with Andrew Feldman, one of the founders and CEO of SeaMicro -- and he's betting that his Atom-based server can beat traditional Xeon-based systems. According to Andrew, the Atom processor is way more efficient on a per-watt basis than CPUs like the Xeon. Sure, it's not as fast, but it makes up for it by being cheap and power efficient, which lets you put a lot of them to work on tasks like web applications. Basically, SeaMicro puts 512 Atom-based servers into a 10U chassis, which provides virtualized network and storage resources as well as management over all these systems. This is not a big SMP box -- it's literally 512 servers that share common infrastructure.

According to SeaMicro, you would need 1,000 dual-socket quad-core Xeon systems to achieve the same SPECint_rate benchmark as 40 of their systems. If my math is right, that would be 40 * 512 Atom servers=20,480 Atom CPUs, compared with 1,000 Xeons * 2 sockets * 4 cores = 8,000 Xeon cores. 

One of the most interesting technical hurdles SeaMicro had to address in building this server is the interconnect for all these processors. Rather than going with PCI-e or another off-the-shelf interconnect, SeaMicro's architecture has more in common with IBM's Blue Gene.

I admit, when I first heard the concept, I thought that SeaMicro might be full of crackpots (sorry, Andrew). At least it would have been an entertaining conversation. But since the Atoms cost less to buy and use 3-4 times less power and space, this is actually sounding pretty attractive. At least for workloads that can be massively scaled out. The main drawback seems to be that if you paid for your software on a per-CPU basis, your licensing costs would be extreme to say the least. Therefore, it seems better suited to open source software or applications that are licensed by capacity. 

The other interesting implication of this architecture is that it shuns server virtualization -- because the CPUs are small and inexpensive, there's no point in subdividing them across multiple virtual machines. I'm still a little mixed on this aspect, as server virtualization also provides simplified configuration management, portability, and high availability. It could be argued that these things don't matter as much for web-based workloads that rely on an army of servers all doing the same thing. Certainly this will appeal to firms with large and power-hungry web environments; you've probably already heard about the custom servers and data centers Google and Microsoft use to lower their costs.

I'm certainly interested to see where this development leads. What about your firm -- would you consider something like this or not?

Comments

It depends on the processing required

It depends on the processing required and the way the applications are written. There were always be solutions that are linear in nature and will require higher straight line cycles. There are whole domains of untapped technology that are more parallel in nature and I believe will consume a significant percentage of future more parallel computing capabilities. It is a supply and demand issue. Applications like simulation, modeling and pattern recognition can demand so much more, if it is available. In the the past, it wasn't available, in the future it will be.
We're not talking about the kinds of applications (like ERP systems) that consume a significant portion of the computing today. Those will still be around, they just don't have the appetite (the way they're written today).

Agree: great for HPC. How about web?

Hi Charlie - I completely agree that some workloads lend themselves to this type of processing model. Some, like parallelized HPC apps, have to be especially written to scale out like this. SeaMicro seems to believe they can contend in the HPC space as well, but it's just not as attractive as web applications.

Currently, there are a whole lot of apps running on .NET and Java-type app servers that are a good fit for a massively scale-out architecture. As their CEO put it to me: how much CPU power does it take to present a user's webmail? Of course, multiply that by a million Gmail accounts and you're talking about a lot of power.

I think the fit is even better as the scale goes up, since SeaMicro depends on so many CPUs. It only works if you can keep the management overhead of all those Atom-based servers near zero, since otherwise you'd be managing several times more nodes than you had before.

There will undoubtedly be more parallelized apps in the future, but is it realistic for us to run our JBoss app servers etc.? I'm beginning to think that it might be, though I'm wondering at what point the efficiencies really start to stack up. Clearly it would make sense for Google or MS Azure, but what about someone with slightly more mundane requrements?