Project Snowflock is now available to the general public. We’re making a binary and source release, under the GNU General Public License (GPL). The release is available at http://compbio.cs.toronto.edu/snowflock.
Briefly, Snowflock lets you clone Xen VMs into dozens of identical replicas running in different hosts. Snowflock can do this in less than a second and with very low runtime overhead. With Snowflock you can, for example, perform parallel computations on the fly by scaling “instantaneously” your computing footprint in a shared cluster.
Snowflock is a research prototype, hence the 0.1 major-minor. A minimum degree of experience with Xen and Linux is necessary to use the system. The contact address for snowflock is email@example.com
Snowflock is our prototype implementation of the / Impromptu Cluster (IC)/ abstraction. In an IC, an application encapsulated inside a virtual machine (VM) is swiftly forked into multiple copies that execute on different physical hosts, and then disappear when the computation ends. ICs simplify the development of parallel applications and reduces management burden by enabling the instantiation of new stateful computing elements: workers that need no setup time because they have a memory of the application state achieved up to the point of forking. This approach combines the benefits of cluster-based parallelism with those of running inside a VM.
Snowflock provides swift parallel VM cloning that makes it possible for Internet applications to deliver near-interactive performance for resource-intensive highly-parallelizable tasks. Snowflock makes use of four key techniques: /VM descriptors/ (condensed VM images that allow for sub-second suspension of a running VM and resumption of a of replicas); a /memory-on-demand/ subsystem that lazily populates the VM’s memory image during runtime; a set of / avoidance heuristics/ that minimize the amount of VM memory state to be fetched on demand; and a /multicast distribution/ system for commodity Ethernet networking hardware that makes the overhead of instantiating multiple VMs similar to that of instantiating a single one.
Use, enjoy, give us some feedback, and contribute to mankind 🙂 The Snowflock team