Enter openMosix

Enter openMosix, The openMosix software packages turn networked computers running GNU/Linux into a cluster. It automatically balances the load between different nodes of the cluster, and nodes can join or leave the running cluster without disruption. The load is spread out among nodes according to their connection and CPU speeds.

openMosix is a Linux-kernel patch which provides full compatibility with standard Linux for IA32-compatible platforms. The internal load-balancing algorithm transparently migrates processes to other cluster members. The advantage is a better load-sharing between the nodes.

The cluster itself tries to optimize utilization at any time . Next to the auto-magic resource use optimization, a sysadmin can affect the spreading load by manual configurations at runtime, one can specify where applications have to run and one can also instruct openMosix into sending load to certain nodes.

One of the differences between openMosix and other clustering environments such as Beowulf style clusters is that for an application to run on an openMosix cluster there is no need for recompilation or integration of other libraries.

Programs such as Flac, Bladeenc, Povray and mjpeg tools work without any modifications, as does MPI, indeed, MPI applications benefit from running in an openMosix environment. What happens is that although a process gets started on node 1, the cluster determines , based on different criteria, whether it wouldn't be better to run a certain process on another , less loaded, node.

openMosix uses an advanced algorithm based on market economics to determine which node suites the application best. This way even applications that have already been parallelized will gain from openMosix. However, there are limitations, for example regarding pthreads. Aapplications using pthreads won't migrate , but basically that's not an openMosix limitation but a Linux limitation.