October 06, 2009
A Million VMs or 100 Million CPUs: Take Your Pick

Computer scientists at Sandia National Labs have shown that it is possible to run more than 1 million Linux kernels as virtual machines. Okay, I'm impressed by a million anything. But I do have one question: Why?
The answers are obvious; that is, if you're smart enough to be a computer scientist at Sandia in the first place. For one thing, says Ron Minnich (who is smart enough to be a computer scientist at Sandia), running all those VMs lets security researchers more effectively observe the behavior of malicious botnets, or networks of infected machines that can operate on the scale of a million nodes. Botnets, says Minnich, are often difficult to analyze since they are geographically spread all over the world.
But a million VMs? You can't run that on an Atom-powered Acius netbook, no matter how cool you think they are. Instead, what a million VMs call for is something along the lines of a 4,480-node Dell high-performance computer cluster known as Thunderbird. To hit the 1 million Linux kernel figure, Minnich and his team ran one kernel in each of 250 VMs and coupled those with the 4,480 physical machines on Thunderbird.
Okay, security. Anything else? Sure, says Minnich. How about tens of millions of operating systems for building high-fidelity models of parts of the Internet.
"The sheer size of the Internet makes it very difficult to understand in even a limited way," says Minnich. "Many phenomena occurring on the Internet are poorly understood because we lack the ability to model it adequately. By running actual operating system instances to represent nodes on the Internet, we will be able not just to simulate the functioning of the Internet at the network level, but to emulate Internet functionality."
"Development of this kind of software will take years, and the scientific community cannot afford to wait to begin the process until the hardware is ready," says Minnich. "Urgent problems such as modeling climate change, developing new medicines, and research into more efficient production of energy demand ever-increasing computational resources. Furthermore, virtualization will play an increasingly important role in the deployment of large-scale systems, enabling multiple operating systems on a single platform and application-specific operating systems."
Minnich goes on to say that "it has been estimated that we will need 100 million CPUs by 2018 in order to build a computer that will run at the speeds we want. This approach we've demonstrated is a good way to get us started on finding ways to program a machine with that many CPUs, so that when we have a computer with 100 million CPUs we can actually use it."
-- Jonathan Erickson
jerickson@ddj.com
Posted by Jon Erickson at 05:46 PM Permalink
|