M  O  S  I  X
Cluster Management System

Home     About     Distributions     VCL     Wiki     FAQ     Pubs    


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.

The latest version of MOSIX 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.

About VirtualCL

The VirtualCL (VCL) cluster platform is a wrapper for OpenCL™ that allows most unmodified applications to transparently utilize multiple OpenCL devices in a cluster. VCL allows programs to run on a cluster by providing the impression of a single host with many devices. Users can start a parallel application on a hosting computer, then VCL manages and transparently runs the kernels of the application on different nodes.

The VCL run-time model is designed to run applications that combine a CPU process with massive parallel computation on OpenCL devices (CPUs, GPUs, Accelerators) from all vendors. The CPU process is responsible for the overall program flow and may as well also perform some of the computations. It can be multi-threaded in order to utilize all the available cores in the hosting node. While each instance of the application runs on a single hosting node, it can use multiple OpenCL devices of a cluster. Choosing the location of the devices is transparent to the program - applications need not be aware which cluster nodes and devices are available and where the devices are located. The number of hosting nodes and cluster nodes is configurable and they may overlap.

VCL is an independent package that runs on Linux clusters, with or without MOSIX.