I have a theory that the harder it is to make notes at a talk, the better the talk is. Phil Harman’s talk “Virtualisation Fever – Where do you draw the line?” (a whimsical look at virtualisation) was indeed hard to make notes on and all the more interesting for that.
Phil’s inimitable style keeps you guessing what is coming next and we started with some Hammond organ music (were we in the right talk)? Virtualisation is not new, and it’s not just evident in IT. The B3 Hammond organ is a virtual instrument. It replicated the function of the telharmonium of 1893 which weighed 200 tons and played virtual organ music to people on hold on the phone. Organs themselves, which were introduced in churches hundreds of years ago, were themselves virtual choirs. Stops on organs give hints: Solo vox humana.
Moving forward you have the Roland VR-760 (part of the v series) which is a virtual Hammond organ and you can even get V-drums. There is even a virtual grand piano whose material parameters you can program from a PC. It’s an increasing virtual world and sometimes we can’t tell the difference. Have we gone mad?
We move to a demo of a virtual BBC Micro; great stuff. A program is loaded to calculate if a given number is prime, but it is a bit slow. Partly this is due to the emulator matching the speed of the beeb and partly due to the revelation that the beeb emulator is running in a JVM, in a Solaris zone, in Solaris, in VMware, on a Mac!
Even in a JVM the BBC emulator runs 20x faster than the original, but on a 2.4GHz processor, there is still a factor of 100 in speed missing. A factor caused by virtualisation layers.
We can speed up our program by running it in an obfuscated C interpreter and we can speed it up even more with compiled C code. A speedup from 50 minutes to 15 seconds.
This demonstrates two of Phil’s points: just because something is possible, doesn’t mean it is a good idea and the further away your program gets from the hardware, the more difficult it is to schedule, illustrated with an example of the introduction of threads and lightweight process scheduling in Solaris. Resources have to be scheduled at each level of the stack and the bottom layer can’t see what the layers above are trying to achieve via scheduling. Another way of saying if you want something to go fast, get it as close to the hardware as possible, I suppose.
All the power of modern hardware encourages laziness, inefficiency and waste. The speed of processors hides a multitude of bad programming. I find this very ironic given the argument that virtualisation is driven by goals of greater efficiency i.e. not having a large number of lightly used servers.
Some aspects of virtualisation came in for praise: zones, Ultrasparc T, VMware fusion, Cloud computing, immutable service containers and Exadata.
We have to question why, if a virtual solution is not more efficient, why are we doing it.
By the end of the talk we had headed into the land of Exadata and efficient methods for running databases. Not as whimsical as the start but a fascinating talk!
Thanks Phil, I wish I could have captured more than a fleeting impression of the talk.