Computer cluster
A computer cluster is a group of connected computers that work together as a unit. One of the more popular implementations is a cluster with nodes running Linux as the OS and Beowulf software (both free) to implement the parallelism. Sun Microsystems has also released a clustering product called Grid engine. OpenSSI is another clustering project that provides single-system image capabilities. It leverages HP's NonStop Clusters for Unixware technology and other open source technology to provide a full, highly reliabble SSI environment for Linux.
There are fundamentally four types of clusters:
- Director-based clusters
- Two-node clusters
- Multi-node clusters
- Massively parallel clusters
All mature (or highly available) cluster implementations attempt to eliminate single points of failure. Director-based clusters and Beowulf clusters are typically implemented for performance reasons, while two-node clusters are typically implemented for fault-tolerance.
An organization publishes the 500 fastest clusters twice a year. Top 500 is a collaboration between the University of Mannheim, the University of Tennessee, and the National Energy Research Scientific Computing Center at Lawrence Berkeley National Laboratory. The current longstanding top supercomputer is the Earth Simulator with a performance of 35.86 TFlops beating out number 2 by over 15 TFlops.
Clustering can provide significant performance benefits 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 Power Macintosh G5s running Mac OS X. 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 advantage of parallel processing while maintaining data reliability and uniqueness.
A cluster of computers is referred to as a server farm when the computers are used to mimic the operations of a single server machine.
In the GNU/Linux world, there is also cluster software, such as the Linux Virtual Server, distcc, Kerrighed, Mosix and its free counterpart openMosix. LVS clusters are a form of director-based clusters that allow incomming requests for services to be distributed across multiple cluster nodes. Mosix and openMosix provide automatic process migration in a homogeneous cluster of GNU/Linux machines, while distcc provides parallel compilation when using GCC. Kerrighed is a GNU/Linux based operating system providing an SMP machine on top of a cluster of PCs.
DragonFly BSD, a recent fork of FreeBSD 4.8 is being redesigned at its core to enable native clustering capabilities.
External links
- Top 500 Supercomputer List
- Cplant, a non-Beowulf Linux cluster
- IEEE task force on cluster computing, the leading academic community on cluster computing
References
- Greg Pfister: In Search of Clusters, Prentice Hall, ISBN 0138997098