The company developed software to be used with a computer cluster, involving a series of computers all controlled and operated by a single piece of software. The computers in the cluster do not function as independent devices, but rather as server nodes, and in some cases even the operating system for all server nodes can be located in a single piece of hardware from which all devices are run. The utilization of a cluster is intended to increase performance, load and availability over the equivalent power or initial spend of the equivalent number of separate computers.
Clusters can run a range of purpose-built software, through a software layer which treats the nodes as component parts in sequence, combining to form a supercomputer which runs as a seamless unit made up of the individual nodes. Clusters can be adjusted for different configurations based on the required operation and performance level.
Load balancing clusters are augmented clusters with an added functionality to distribute tasks evenly across nodes, rather than rely on one node which would normally be able to carry out a low-load operation independently. The workload is shared, with an even number of tasks being set for each node. This optimization of resources allows for a much faster processing speed and is therefore a more efficient, and potentially cheaper use of resources. There are different algorithms available for distributing tasks between nodes, with a popular method being the round-robin scheduling system, apportioning time slots to nodes without set priority levels. Load balancing increases reliability, availability and significantly reduces the chance of overloading a particular node in the cluster.