A recent discussion with a good friend threw up some memories of a few problems I have with virtualisation, or at least what I would expect a good virtualised platform to provide me with. Maybe I’m expecting too much, or maybe what I’m looking for already exists. If it does already exist then perhaps someone would be kind enough to point me towards it.
But perhaps first I should explain the problem and what I see as the ideal solution and what I’m expecting to find.
Problem: A particular coding problem needs to run for a long time. The code could be re-written to use threads, or be run several times on smaller data-sets. However, imagine for now those options are too expensive, financially. So, the user has a single core box to run this on. Oh, hold on, he’s got 10 single core boxes sitting idle that he could use, but how to split the load. The user wants to use some kind of virtualisation but doesn’t know how to link the boxes to form 1 VM, or how to split the load across the multiple available cores even once he’s linked the boxes.
Solution: So, that’s the basic problem I’m dealing with; how to make multiple cores, on seperate boxes not only appear to be a single VM, but also for the user not to care how many cores are available, just that the code that’s run on them (including the OS if possible) can take advantage of the extra cores without any extra code being written.
Maybe I’m being naive to expect a reasonable answer to this dilemma, or maybe there isn’t an answer that’s as easy to implement as I’d like (I suspect that part to be particularly true).
Anyway, if anyone can suggest a solution to this then I’d be eternally grateful.