Q & A: Larry Rudolph talks about pervasive computing, virtualization, and science
We've all heard about how pervasive computing will change the way we connect and compute in our everyday lives. But what about the way we do science? How is that going to change?
Larry Rudolph joined VMware in 2008 to help start a project on mobile phone virtualization, after five years as part of Project Oxygen: Pervasive Human-Centric Computing at the MIT Computer Science and Artificial Intelligence Laboratory (CSAIL). Read on to find out what he had to say about pervasive computing, virtualization, and science.
iSGTW: How would you define virtualization or virtual machines?
Rudolph: A virtual machine is a computer made out of software. It is just like a regular computer. It can run programs, and it has a file system, mouse, keyboard, and display. Virtual machines run on physical computers, but it can be easily moved from one physical machine to another and there can be many virtual machines running on one physical machine.
iSGTW: And how would you define pervasive computing?
Rudolph: Computers and computational devices are everywhere in our environment - in the walls, in appliances, and even buried in the electrical outlets. Instead of us having to sit in front of a computer, pervasive computing puts those resources at our beck and call.
iSGTW: I've always thought of pervasive computing as the ability to harness and network the computing power of the embedded devices that surround us, such as a cellphone, or a photocopier, or a car's computer. Is that right?
Rudolph: A few years ago most people would have agreed with you. Today, the conception of pervasive computing has broadened. There are lots of networked computers all around us that keep track of what we are doing. For example, they can keep track of what steps of an experiment I have already performed.
iSGTW: Let's go back to virtualization. How can it help a computational scientist?
Rudolph: Scientists who use computers tend to fall into three different classes. First, those who do their work on a single machine; they use a spreadsheet or a similarly small program. Then there's a class of scientists who use slightly bigger machines, such as clusters or a data server, and some computational software. So each lab may have a cluster of machines working together. And then the third type of computational scientists, at the high end, use supercomputers to do simulations that usually take a long time.
Scientists tend not to move between those three realms, and I think that's unfortunate. The reason why scientists get stuck into these three different models is that each model makes use of a different computing environment. Scientists must master each environment in order to use it.
Virtualization offers the promise of moving seamlessly between those three realms, so that a supercomputer may look just like a cluster, and a cluster look just like a single machine. There may be some changes, but the look-and-feel, the user commands, and the file system are nearly the same. A program requiring Microsoft Vista can run side-by-side with a program requiring Linux, and when they are on the same physical machine, they can communicate much faster.
iSGTW: Where does the pervasive computing fit in?
Rudolph: Imagine I have some equipment which works in my lab. I learn how to use it, but it's not strong enough computationally for some question I might have. The equipment works on a small data set, but I want to apply it now to a thousand data sets. Pervasiveness with virtualization offers the promise that you don't have to do a whole lot more after that. You have your devices and you just have to say, "Well, I want to use the ensemble of all of the devices together. Oh, and by the way, move all those virtual machines to a set of closely connected physical machines so the communication latencies are small."
So pervasiveness and virtualization remove the physical computer aspect from the equation and let scientists focus on what they're used to doing.
iSGTW: In a recent paper you wrote for IEEE Pervasive Computing, you use the terms "isolation," "encapsulation," and "interpositioning." Can you explain what those mean?
Rudolph: I mentioned that it is possible to run multiple virtual machines on the same physical machine at the same time. The virtual machines need to be isolated from each other, in the same way as if they were running on different physical machines. Programs running on the same computer are only somewhat isolated from each other. If one program on a machine gets infected by a virus, other programs on the same machine may also get infected. When the programs are running on different physical or virtual machines, they cannot easily infect each other.
For computers that are embedded in some apparatus, it is often a good idea to isolate a virtual machine from the control mechanism that might cause physical harm. For example, in the near future, cars will come equipped with internet connected computers. I would feel safer if these computers were isolated from the braking system, but I may be happy to allow it access to the GPS or radio control system. I can write programs to run in the virtual machine that interact with the benign parts of scientific apparatus without fear of a bug causing real harm.
Since a virtual machine is just software, the whole virtual machine can be encapsulated into a file. The file can then be moved to a different physical machine and the virtual machine can continue to execute as if nothing happened. In particular, it can be restarted on a physical machine with a faster processor or with more memory. This permits seamless migration along the spectrum of computational power.
When a virtual computer is running, it makes use of the hardware facilities attached to the physical computers on which it is running. As an example, consider a network containing one computer with a thermometer attached. The virtualization infrastructure software can interpose itself on the data stream connecting the actual thermometer and the virtual machine's version of the device. The virtual machine may believe it has an attached thermometer. In fact, all of the virtual machines running on that same physical machine, or on others in the network, may believe they have an attached thermometer. Using interpositioning, the virtualization software can map a real thermometer to each virtual one. A virtual machine can also be migrated to a less loaded physical machine, while keeping its connection to the real thermometer which remains attached to the original physical machine.
iSGTW: So what are the challenges we face before pervasive computing and virtualization can come to fruition?
Rudolph: The first immediate challenge is that embedded devices tend to use ARM processors or some other low-power computer devices. But to date, most of the virtualization work in both hardware and software has been focused on the x86 architecture.
The second challenge is getting the embedded device manufacturers to think like computer people. To realize they have computers inside their devices. The history is that these special purpose devices over time start adding more and more digital and computer components, because they're cheaper. So now the appliances can do a lot more, but they have this new issue of upgradeability and customization. So the embedded designers have to start to think in terms of appliances with computers inside.
iSGTW: What are the benefits for scientists?
Rudolph: Getting them away from being computer scientists. We want scientists to go back to being scientists. They don't worry about how the electricity they use in their lab is generated, and they should not have to worry about backups, cores, or megabytes.
Scientists may still have to decide the value of their computation completing sooner, given that running on a more powerful computer will cost more money. But scientists should not have to recode, recompile or change anything. That should be left to the virtualization system.
-Miriam Boon, iSGTW