Computer clusters are used to make a collection of 2 or more computers appear as a single computer to the user community. Clusters are used to provide increased reliability, and/or to increase the performance available from a single computer. There are fundamentally 4 types of clusters:
- Director based Cluster
- 2-node clusters
- Multi-node clusters
- Massively Parallel clusters
All cluster implementations attempt to eliminate Single Points Of Failure. Director-based-Cluster's and Beowulf clusters are typically implemented primary for performance reasons. 2-node clusters are typically implemented primarily for fault-tolerance.
Massively Parallel clusters below
A computer cluster is a group of connected computers that work together as a parallel computer. One of the more popular implementations is a cluster with nodes running Linux as the OS and Beowulf software (both free software) to implement the parallelism. Sun Microsystems have also released a clustering product called Grid engine.
Clustering can provide significant performance versus price. The System X supercomputer at Virginia Tech, the third most powerful supercomputer on Earth as of November 2003, is a computer cluster of 1100 Apple Macintosh G5's running Mac OS X [1]. The total cost of the system is $5.2 million, a tenth of the cost of slower mainframe supercomputers.
Clusters were originally developed by DEC in the 1980s. They not only support parallel computing, but also shared file systems and peripheral devices. They are supposed to give you the ability to use any program without problems or slowing down.
A cluster of computers is sometimes referred to as a server farm.
In the Linux world, there are also variants called Mosix and DistCC. Mosix provides automatic process migration in a homogeneous cluster of Linux machines, while DistCC provides parallel compilation when using GCC