MOSIX is a cluster management system that provides a single-system image.
MOSIX supports both interactive concurrent processes and batch jobs.
It incorporates automatic resource discovery and dynamic workload
distribution by preemptive process migration.
MOSIX is implemented as a software layer that allows applications
to run in remote nodes as if they run locally.
Users can start (sequential and parallel) applications on one node,
while MOSIX automatically seek resources and transparently migrate and
run them on other nodes.
There is no need to modify applications, copy files, login or assign
processes to remote nodes - it is all done automatically.
Allocation of processes to nodes are supervised by a comprehensive
set of on-line algorithms that monitor the state of the resources and
attempt to improve the overall performance by dynamic resource allocation,
e.g. load-balancing.
A unique feature of MOSIX is that it operates on the process-level,
unlike systems that operate on the job-level. This means that
MOSIX adapts and redistributes the workload when the number
of processes of a job and/or their demands changes.
This is especially useful for parallel jobs.
For many years, MOSIX was implements as a patch to the Unix/Linux kernel.
The latest distribution
no longer requires a kernel-patch. It can manage clusters and
multi-cluster private clouds.
Flexible management allows owners of different
clusters to share their computational resources, while still
preserving the autonomy to disconnect their clusters
at any time, without disrupting already running programs.
MOSIX can run in non-virtualized or Virtual Machine (VM) environments.
A non-virtualized environment provides better performance,
whereas a VM can run on top of Linux or Windows.
MOSIX is suitable for running distributed and concurrent applications
with low to moderate amount of I/O.
It is particularly suitable for:
efficient utilization of cluster-wide resources;
running applications with unpredictable resource
requirements or run times;
running (and preserving) long processes
and combining nodes of different speeds.
Further information is available in the: