> AFAIK it is not possible do do with virtual machines and it would kinda > defeat the object of virtualisation which is more for splitting up a > physical machine into many smaller machines.
virtualization serves two purposes: isolation and overcommit. isolation just means that the host OS uses HW-accelerated emulation to pretend that the guest is running alone on a system. overcommit means that the host can provide more pretend hardware to guest(s) than it actually has. this is easy to do with CPU, since if the guest is idle, it won't know if you sell cycles to other guests. so if you get a bunch of virtual servers that are not overcommitted, you can certainly cluster them. one has to ask why you're using virtualization, though. and it probably wouldn't be good for anyting that wasn't serial farming (or so embarassingly parallel as to be equivalent to serial farming...) > The only system I really know anything about is ScaleMP. For this you ScaleMP uses virt and MMU hardware to make pages from one machine appear on another machine. there's a _long_ history of doing this in various forms in the academic literature. if you have a thread that accesses a page which is not present on the host where it's running, you fetch it from whatever node currently has that page. so it's a software-managed, page-granularity cache. as with any cache, it'll suck if your code is not cache-friendly, since fetching a remote page is going to run something like 5 us. I've never managed to find micro-level performance numbers for ScaleMP, unfortunately, so that number is a guess based on an IB round trip and one page transmission time. > require an infiniband network between all the hosts and a specialised bios > and/or infiniband firmware to make it work. software distributed virtual memory doesn't require anything special, though pre-IB versions didn't have that much commercial impact... in principle, if your code is quite cache-friendly, the scheme could be layered on plain old ethernet. or even, just to confuse people, MPI :) >> Combining each servers resources into one massive server.**** you can't speed up one process this way. if you have multiple processes, clustering VPS on separate hardware could certainly work to provide greater throughput. >> asked some users that use my the provider that I am with which is >> linode.com from looking at linode plans, they don't provide dedicated cpus, so you'll be clustering nodes that effectively have variable clock rates. that may work for you, or might behave very poorly. >> what would be the best way to start clustering these vps's together? it doesn't matter. you don't need any specific framework to cluster: you could just spawn processes using ssh and nothing more. one might normally add a scheduler, shared filesystem and monitoring, but there's no cluster-qualification police afaik... _______________________________________________ Beowulf mailing list, [email protected] sponsored by Penguin Computing To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
