Computer cluster: Difference between revisions

Content deleted Content added
add link to beowulf clusters
 
Line 1:
{{Short description|Set of computers configured in a distributed computing system}}
[[Image:PurdueLinuxComputerCluster.jpg|thumb|250px|[[Linux]] Cluster at [[Purdue University]].]]
A '''computer cluster''' is a group of loosely coupled [[computer]]s that work together closely so that in many respects they can be viewed as though they are a single computer. The components of a cluster are commonly, but not always, connected to each other through fast [[local area network]]s. Clusters are usually deployed to improve speed and/or reliability over that provided by a single computer, while typically being much more cost-effective than single computers of comparable speed or reliability.
 
{{Distinguish|data cluster|grid computing}}
==Cluster categorizations==
{{Redirect|Cluster computing|the journal|Cluster Computing (journal)}}
===High-availability (HA) clusters===
[[File:MEGWARE.CLIC.jpg|thumb|Technicians working on a large [[Linux]] cluster at the [[Chemnitz University of Technology]], Germany]]
[[High-availability cluster]]s are implemented primarily for the purpose of improving the availability of services which the cluster provides. They operate by having redundant [[Node (networking)|nodes]], which are then used to provide service when system components fail. The most common size for an HA cluster is two nodes, which is the minimum requirement to provide redundancy. HA cluster implementations attempt to manage the redundancy inherent in a cluster to eliminate single points of failure. There are many commercial implementations of High-Availability clusters for many operating systems. The [[Linux-HA]] project is one commonly used [[free software]] HA package for the [[Linux]] OS.
[[File:Sun Microsystems Solaris computer cluster.jpg|thumb|Sun Microsystems [[Solaris Cluster]], with [[Close Coupled Cooling#In-Row Air Conditioners|In-Row cooling]]]]
[[File:Taiwania series.jpg|thumb|[[Taiwania_(supercomputer)|Taiwania]] series uses cluster architecture.]]
 
A '''computer cluster''' is a set of [[computer]]s that work together so that they can be viewed as a single system. Unlike [[Grid computing|grid computer]]s, computer clusters have each [[Node (networking)|node]] set to perform the same task, controlled and scheduled by software. The newest manifestation of cluster computing is [[cloud computing]].
===Load-balancing clusters===
[[Load balancing (computing)|Load-balancing]] clusters operate by having all workload come through one or more load-balancing front ends, which then distribute it to a collection of back end servers. Although they are implemented primarily for improved performance, they commonly include high-availability features as well. Such a cluster of computers is sometimes referred to as a [[server farm]]. There are many commercial load balancers available including Platform LSF HPC, [[Sun Grid Engine]], [[Moab Cluster Suite]] and [[Maui Cluster Scheduler]]. The [[Linux Virtual Server]] project provides one commonly used free software package for the Linux OS.
 
The components of a cluster are usually connected to each other through fast [[local area network]]s, with each [[Node (networking)|node]] (computer used as a server) running its own instance of an [[operating system]]. In most circumstances, all of the nodes use the same hardware<ref>{{cite web |url=https://stackoverflow.com/questions/9723040/what-is-the-difference-between-cloud-grid-and-cluster |title=Cluster vs grid computing |website=[[Stack Overflow]]}}</ref>{{better source needed|date=June 2017}} and the same operating system, although in some setups (e.g. using [[Open Source Cluster Application Resources]] (OSCAR)), different operating systems can be used on each computer, or different hardware.<ref name=pcauthority>{{cite web|url=http://www.pcauthority.com.au/Feature/306972,weekend-project-build-your-own-supercomputer.aspx|title=Weekend Project: Build your own supercomputer|date=29 June 2012|first=Darien|last=Graham-Smith|website=PC & Tech Authority|access-date=2 June 2017}}</ref>
===High-performance (HPC) clusters===
High-performance clusters are implemented primarily to provide increased performance by splitting a computational task across many different [[Node (networking)|nodes]] in the cluster, and are most commonly used in scientific computing. One of the most popular HPC implementations is a cluster with nodes running [[Linux]] as the [[Operating system|OS]] and free software to implement the parallelism. This configuration is often referred to as a [[Beowulf (computing)|Beowulf]] cluster. Such clusters commonly run custom programs which have been designed to exploit the parallelism available on HPC clusters. Many such programs use libraries such as [[Message Passing Interface|MPI]] which are specially designed for writing scientific applications for HPC computers.
 
Clusters are usually deployed to improve performance and availability over that of a single computer, while typically being much more cost-effective than single computers of comparable speed or availability.<ref>{{cite web|url=http://www.cc.gatech.edu/~bader/papers/ijhpca.html|title=Cluster Computing: Applications|last1=Bader|first1=David|author-link=David Bader (computer scientist)|date=May 2001|publisher=[[Georgia Institute of Technology College of Computing|Georgia Tech College of Computing]]|first2=Robert|last2=Pennington|access-date=2017-02-28|archive-url=https://web.archive.org/web/20071221011621/http://www.cc.gatech.edu/~bader/papers/ijhpca.html|archive-date=2007-12-21|url-status=dead}}</ref>
HPC clusters are optimized for workloads which require jobs or processes happening on the separate cluster computer nodes to communicate actively during the computation. These include computations where intermediate results from one node's calculations will affect future calculations on other nodes.
 
Computer clusters emerged as a result of the convergence of a number of computing trends including the availability of low-cost microprocessors, high-speed networks, and software for high-performance [[distributed computing]].{{citation needed|date=October 2014}} They have a wide range of applicability and deployment, ranging from small business clusters with a handful of nodes to some of the fastest [[supercomputer]]s in the world such as [[IBM Sequoia|IBM's Sequoia]].<ref>{{cite web|url=https://www.telegraph.co.uk/technology/9338651/Nuclear-weapons-supercomputer-reclaims-world-speed-record-for-US.html |archive-url=https://ghostarchive.org/archive/20220112/https://www.telegraph.co.uk/technology/9338651/Nuclear-weapons-supercomputer-reclaims-world-speed-record-for-US.html |archive-date=2022-01-12 |url-access=subscription |url-status=live|title=Nuclear weapons supercomputer reclaims world speed record for US|publisher=The Telegraph|date=18 Jun 2012|access-date=18 Jun 2012}}{{cbignore}}</ref> Prior to the advent of clusters, single-unit [[fault tolerant]] [[mainframes]] with [[Triple modular redundancy|modular redundancy]] were employed; but the lower upfront cost of clusters, and increased speed of network fabric has favoured the adoption of clusters. In contrast to high-reliability mainframes, clusters are cheaper to scale out, but also have increased complexity in error handling, as in clusters error modes are not opaque to running programs.<ref>{{cite book |last1=Gray |first1=Jim |last2=Rueter |first2=Andreas |title=Transaction processing : concepts and techniques |url=https://archive.org/details/transactionproce0000gray |url-access=registration |date=1993 |publisher=Morgan Kaufmann Publishers |isbn=978-1558601901}}</ref>
===Grid computing===
[[Grid computing]] or grid clusters are a technology closely related to cluster computing. The key differences between grids and traditional clusters are that grids connect collections of computers which do not fully trust each other, and hence operate more like a computing utility than like a single computer. In addition, grids typically support more heterogeneous collections than are commonly supported in clusters.
 
==Basic concepts==
Grid computing is optimized for workloads which consist of many independent jobs or packets of work, which do not have to share data between the jobs during the computation process. Grids serve to manage the allocation of jobs to computers which will perform the work independently of the rest of the grid cluster. Resources such as storage may be shared by all the nodes, but intermediate results of one job do not affect other jobs in progress on other nodes of the grid.
[[File:Beowulf.jpg|thumb|150px|A simple, home-built [[Beowulf cluster]]]]
The desire to get more computing power and better reliability by orchestrating a number of low-cost [[commercial off-the-shelf]] computers has given rise to a variety of architectures and configurations.
 
The computer clustering approach usually (but not always) connects a number of readily available computing nodes (e.g. personal computers used as servers) via a fast [[local area network]].<ref name=nbis>{{cite conference|title=Network-Based Information Systems: First International Conference, NBIS 2007|isbn=978-3-540-74572-3|page=375|last1=Enokido|first1=Tomoya|last2=Barolli|first2=Leonhard|last3=Takizawa|first3=Makoto|date=23 August 2007}}</ref> The activities of the computing nodes are orchestrated by "clustering middleware", a software layer that sits atop the nodes and allows the users to treat the cluster as by and large one cohesive computing unit, e.g. via a [[single system image]] concept.<ref name=nbis />
==High-performance cluster implementations==
The [[TOP500]] organization's semiannual list of the 500 fastest computers usually includes many clusters. TOP500 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]]. As of August 2006, the top [[supercomputer]] is the [[Department of Energy]]'s [[BlueGene/L]] system with performance of 280.6 TFlops. The second place is owned by another BlueGene/L system with performance of 91.29 TFlops.
 
Computer clustering relies on a centralized management approach which makes the nodes available as orchestrated shared servers. It is distinct from other approaches such as [[peer-to-peer]] or [[grid computing]] which also use many nodes, but with a far more [[distributed computing|distributed nature]].<ref name=nbis />
Clustering can provide significant performance benefits versus price. The [[System X]] supercomputer at [[Virginia Tech]], the 28th most powerful supercomputer on Earth as of June 2006[http://www.top500.org/list/2006/06/100], is a 12.25 TFlops computer cluster of 1100 [[Apple Computer|Apple]] [[XServe]] [[PowerPC 970|G5]] 2.3 GHz dual-processor machines (4 GB RAM, 80 GB SATA HD) running [[Mac OS X]]. The cluster initially consisted of [[Power Macintosh G5|Power Mac G5s]]; the rack-mountable XServes are denser than desktop Macs, reducing the aggregate size of the cluster. The total cost of the previous Power Mac system was $5.2 million, a tenth of the cost of slower [[mainframe]] supercomputers. (The Power Mac G5s were sold off.)
 
A computer cluster may be a simple two-node system which just connects two personal computers, or may be a very fast [[supercomputer]]. A basic approach to building a cluster is that of a [[Beowulf (computing)|Beowulf]] cluster which may be built with a few personal computers to produce a cost-effective alternative to traditional [[high-performance computing]]. An early project that showed the viability of the concept was the 133-node [[Stone Soupercomputer]].<ref name="sciam">{{Cite news |title= The Do-It-Yourself Supercomputer |work= [[Scientific American]] |author= William W. Hargrove, Forrest M. Hoffman and [[Thomas Sterling (computing)|Thomas Sterling]] |volume= 265 |number= 2 |pages= 72–79 |date= August 16, 2001 |url= http://www.sciam.com/article.cfm?id=the-do-it-yourself-superc |access-date= October 18, 2011 }}</ref> The developers used [[Linux]], the [[Parallel Virtual Machine]] toolkit and the [[Message Passing Interface]] library to achieve high performance at a relatively low cost.<ref name="extreme">{{Cite news |title= Cluster Computing: Linux Taken to the Extreme |first1= William W. |last1= Hargrove |first2= Forrest M. |last2= Hoffman |work= Linux Magazine |year= 1999 |url= http://climate.ornl.gov/~forrest/linux-magazine-1999/ |access-date= October 18, 2011 |archive-url= https://web.archive.org/web/20111018122713/http://climate.ornl.gov/~forrest/linux-magazine-1999/ |archive-date= October 18, 2011 |url-status= dead }}</ref>
The central concept of a [[Beowulf (computing)|Beowulf]] cluster is the use of [[commercial off-the-shelf]] computers to produce a cost-effective alternative to a traditional supercomputer. One project that took this to an extreme was the [[Stone Soupercomputer]].
 
Although a cluster may consist of just a few personal computers connected by a simple network, the cluster architecture may also be used to achieve very high levels of performance. The [[TOP500]] organization's semiannual list of the 500 fastest supercomputers often includes many clusters, e.g. the world's fastest machine in 2011 was the [[K computer]] which has a [[distributed memory]], cluster architecture.<ref>{{cite conference|first=Mitsuo|last=Yokokawa |display-authors=etal |title=The K computer: Japanese next-generation supercomputer development project|conference=International Symposium on Low Power Electronics and Design (ISLPED)|date=1–3 August 2011|pages=371–372|doi=10.1109/ISLPED.2011.5993668}}</ref>
[[John Koza]] has the largest computer cluster owned by an individual.
 
==History==
The [[SETI@home]] project may be the largest distributed cluster in existence. It uses approximately three million home computers all over the world to analyze data from the [[Arecibo Observatory]] [[radiotelescope]], searching for evidence of extraterrestrial intelligence.
{{Main|History of computer clusters}}
{{See also|History of supercomputing}}
[[File:SPEC-1 VAX 05.jpg|thumb|150px|A [[VAX]] 11/780, c. 1977, as used in early [[VAXcluster]] development]]
 
Greg Pfister has stated that clusters were not invented by any specific vendor but by customers who could not fit all their work on one computer, or needed a backup.<ref>{{cite book | last = Pfister | first = Gregory | title = In Search of Clusters | edition = 2nd | publisher = Prentice Hall PTR | ___location = Upper Saddle River, NJ | year = 1998 | page = [https://archive.org/details/insearchofcluste00pfis/page/36 36] | isbn = 978-0-13-899709-0 | url = https://archive.org/details/insearchofcluste00pfis/page/36 }}</ref> Pfister estimates the date as some time in the 1960s. The formal engineering basis of cluster computing as a means of doing parallel work of any sort was arguably invented by [[Gene Amdahl]] of [[IBM]], who in 1967 published what has come to be regarded as the seminal paper on parallel processing: [[Amdahl's Law]].
==Cluster history==
The history of cluster computing is best captured by a footnote in Greg Pfister's ''In Search of Clusters'': "Virtually every press release from DEC mentioning clusters says 'DEC, who invented clusters...'. IBM didn't invent them either. ''Customers'' invented clusters, as soon as they couldn't fit all their work on one computer, or needed a backup. The date of the first is unknown, but I'd be surprised if it wasn't in the 1960's, or even late 1950's."
 
The history of early computer clusters is more or less directly tied to the history of early networks, as one of the primary motivations for the development of a network was to link computing resources, creating a de facto computer cluster.
The formal ''engineering'' basis of cluster computing as a means of doing parallel work of any sort was arguably invented by Gene Amdahl of [[IBM]], who in 1967 published what has come to be regarded as the seminal paper on parallel processing: [[Amdahl's Law]]. Amdahl's Law describes mathematically the speedup one can expect from parallelizing any given otherwise serially performed task on a parallel architecture. This article defined the engineering basis for both multiprocessor computing and cluster computing, where the primary differentiator is whether or not the interprocessor communications are supported "inside" the computer (on for example a customized internal communications bus or network) or "outside" the computer on a ''commodity'' network.
 
The first production system designed as a cluster was the Burroughs [[B5700]] in the mid-1960s. This allowed up to four computers, each with either one or two processors, to be tightly coupled to a common disk storage subsystem in order to distribute the workload. Unlike standard multiprocessor systems, each computer could be restarted without disrupting overall operation.
Consequently the history of early computer clusters is more or less directly tied into the history of early networks, as one of the primary motivation for the development of a network was to link computing resources, creating a de facto computer cluster. [[Packet switching]] networks were conceptually invented by the [[RAND]] corporation in [[1962]]. Using the concept of a packet switched network, the [[ARPANET]] project succeeded in creating in [[1969]] what was arguably the world's first commodity-network based computer cluster by linking four different computer centers (each of which was something of a "cluster" in its own right, but probably not a ''commodity'' cluster). The ARPANET project grew into the [[Internet]] -- which can be thought of as "the mother of all computer clusters" (as the union of nearly all of the compute resources, including clusters, that happen to be connected). It also established the paradigm in use by ''all'' computer clusters in the world today -- the use of packet-switched networks to perform interprocessor communications between processor (sets) located in otherwise disconnected frames.
[[File:TNSII.jpg|thumb|Tandem NonStop II circa 1980]]
The first commercial loosely coupled clustering product was [[Datapoint|Datapoint Corporation's]] "Attached Resource Computer" (ARC) system, developed in 1977, and using [[ARCnet]] as the cluster interface. Clustering per se did not really take off until [[Digital Equipment Corporation]] released their [[VAXcluster]] product in 1984 for the [[OpenVMS|VMS]] operating system. The ARC and VAXcluster products not only supported [[parallel computing]], but also shared [[file system]]s and [[peripheral]] devices. The idea was to provide the advantages of parallel processing, while maintaining data reliability and uniqueness. Two other noteworthy early commercial clusters were the [[Tandem Computers|''Tandem NonStop'']] (a 1976 high-availability commercial product)<ref>{{Cite book |last=Katzman |first=James A. |title=Computer Structure: Principles and Examples |publisher=McGraw-Hill Book Company |year=1982 |isbn= |editor-last=Siewiorek |editor-first=Donald P. |___location=U.S.A. |pages=470–485 |chapter=Chapter 29, The Tandem 16: A Fault-Tolerant Computing System}}</ref><ref>{{Cite web |title=History of TANDEM COMPUTERS, INC. – FundingUniverse |url=http://www.fundinguniverse.com/company-histories/tandem-computers-inc-history/ |access-date=2023-03-01 |website=www.fundinguniverse.com}}</ref> and the ''IBM S/390 Parallel Sysplex'' (circa 1994, primarily for business use).
 
Within the same time frame, while computer clusters used parallelism outside the computer on a commodity network, [[supercomputer]]s began to use them within the same computer. Following the success of the [[CDC 6600]] in 1964, the [[Cray 1]] was delivered in 1976, and introduced internal parallelism via [[vector processor|vector processing]].<ref name=Hill41 >{{cite book|title=Readings in computer architecture|first1=Mark Donald|last1=Hill|author-link2=Norman Jouppi|first2=Norman Paul|last2=Jouppi|first3=Gurindar|last3=Sohi|year=1999|isbn=978-1-55860-539-8|pages=41–48|publisher=Gulf Professional }}</ref> While early supercomputers excluded clusters and relied on [[shared memory architecture|shared memory]], in time some of the fastest supercomputers (e.g. the [[K computer]]) relied on cluster architectures.
The development of customer-built and research clusters proceded hand in hand with that of both networks and the [[Unix]] operating system from the early [[1970s]], as both [[TCP/IP]] and the [[Xerox PARC]] project created and formalized protocols for network-based communications. The Hydra operating system was built for a cluster of DEC [[PDP-11]] minicomputers called [[C.mmp]] at C-MU in 1971. However, it wasn't until circa [[1983]] that the protocols and tools for ''easily'' doing remote job distribution and file sharing were defined (largely within the context of [[Berkeley Software Distribution|BSD]] Unix, as implemented by [[Sun Microsystems]]) and hence became generally available in commercially, along with a shared filesystem.
 
==Attributes of clusters==
The ''first'' commercial clustering product was [[ARCnet]], developed by [[Datapoint]] in 1977. ARCnet wasn't a commercial success and clustering per se didn't really take off until [[Digital Equipment Corporation|DEC]] released their [[VMScluster|VAXcluster]] product in the [[1984]] for the [[OpenVMS|VAX/VMS]] operating system. The ARCnet and VAXcluster products not only supported parallel computing, but also shared [[file system]]s and [[peripheral]] devices. They were supposed to give you the advantage of parallel processing, while maintaining data reliability and uniqueness. VAXcluster, now VMScluster, is still available on [[OpenVMS]] systems from [[HP]] running on Alpha and Itanium systems.
[[File:Load Balancing Cluster (NAT).svg|thumb|A load balancing cluster with two servers and N user stations]]
Computer clusters may be configured for different purposes ranging from general purpose business needs such as web-service support, to computation-intensive scientific calculations. In either case, the cluster may use a [[high-availability cluster|high-availability]] approach. Note that the attributes described below are not exclusive and a "computer cluster" may also use a high-availability approach, etc.
 
"[[Load balancing (computing)|Load-balancing]]" clusters are configurations in which cluster-nodes share computational workload to provide better overall performance. For example, a web server cluster may assign different queries to different nodes, so the overall response time will be optimized.<ref name=Sloan>{{cite book|title=High Performance Linux Clusters|url=https://archive.org/details/highperformancel0000sloa|url-access=registration|first=Joseph D.|last=Sloan|year=2004|publisher="O'Reilly Media, Inc." |isbn=978-0-596-00570-2}}</ref> However, approaches to load-balancing may significantly differ among applications, e.g. a high-performance cluster used for scientific computations would balance load with different algorithms from a web-server cluster which may just use a simple [[round-robin scheduling|round-robin method]] by assigning each new request to a different node.<ref name=Sloan />
Two other noteworthy early commercial clusters were the ''Tandem Himalaya'' (a circa [[1994]] high-availability product) and the ''IBM S/390 Parallel Sysplex'' (also circa [[1994]], primarily for business use).
 
Computer clusters are used for computation-intensive purposes, rather than handling [[Input/output|IO-oriented]] operations such as web service or databases.<ref name=VECPAR >{{cite book|title=High Performance Computing for Computational Science – VECPAR 2004|first1=Michel|last1=Daydé|first2=Jack|last2=Dongarra|year=2005|isbn=978-3-540-25424-9|pages=120–121|publisher=Springer }}</ref> For instance, a computer cluster might support [[Computer simulation|computational simulations]] of vehicle crashes or weather. Very tightly coupled computer clusters are designed for work that may approach "[[supercomputing]]".
No history of commodity compute clusters would be complete without noting the pivotal role played by the development of [[Parallel Virtual Machine]] (PVM) software in [[1989]]. This [[open source software]] based on [[TCP/IP]] communications enabled the ''instant'' creation of a virtual supercomputer -- a high performance compute cluster -- made out of any TCP/IP connected systems. Free form heterogeneous clusters built on top of this model rapidly achieved total throughput in [[FLOPS]] that greatly exceeded that available even with the most expensive "big iron" supercomputers. PVM and the advent of inexpensive networked PC's led, in[[1993]], to a [[NASA]] project to build supercomputers out of commodity clusters. In [[1995]] the [http://www.beowulf.org/overview/history.html invention of the "beowulf"-style cluster] -- a [[Beowulf (computing)|compute cluster]] built on top of a commodity network for the specific purpose of "being a supercomputer" capable of performing tightly coupled parallel HPC computations. This in turn spurred the independent development of [[Grid computing]] as a named entity, although Grid-style clustering had been around at least as long as the [[Unix]] operating system and the Arpanet, whether or not it, or the clusters that used it, were named.
 
"[[High-availability cluster]]s" (also known as [[failover]] clusters, or HA clusters) improve the availability of the cluster approach. They operate by having redundant [[Node (networking)|nodes]], which are then used to provide service when system components fail. HA cluster implementations attempt to use redundancy of cluster components to eliminate [[single point of failure|single points of failure]]. There are commercial implementations of High-Availability clusters for many operating systems. The [[Linux-HA]] project is one commonly used [[free software]] HA package for the [[Linux]] operating system.
==Cluster technologies==
[[Message Passing Interface|MPI]] is a widely-available communications library that enables parallel programs to be written in [[C programming language|C]] and [[Fortran]], for example, in the [[climate model]]ing program [[MM5]].
 
==Benefits==
The GNU/Linux world sports various cluster software, such as:
<!-- This used to be a list. Work has been done since, but it's still incomplete. -->
* [[Beowulf (computing)|Beowulf]], [[distcc]], [[MPICH]] and other - mostly specialized application clustering. distcc provides parallel compilation when using [[GNU Compiler Collection|GCC]].
Clusters are primarily designed with performance in mind, but installations are based on many other factors. Fault tolerance (''the ability of a system to continue operating despite a malfunctioning node'') enables [[scalability]], and in high-performance situations, allows for a low frequency of maintenance routines, resource consolidation (e.g., [[RAID]]), and centralized management. Advantages include enabling data recovery in the event of a disaster and providing parallel data processing and high processing capacity.<ref>{{cite web|url=http://www-03.ibm.com/systems/clusters/benefits.html|title=IBM Cluster System : Benefits|publisher=[[IBM]]|access-date=8 September 2014|archive-url=https://web.archive.org/web/20160429022854/http://www-03.ibm.com/systems/clusters/benefits.html|archive-date=29 April 2016|url-status=dead}}</ref><ref>{{cite web|url=https://technet.microsoft.com/en-us/library/cc778629(v=ws.10).aspx|title=Evaluating the Benefits of Clustering|date=28 March 2003|publisher=[[Microsoft]]|access-date=8 September 2014|archive-url=https://web.archive.org/web/20160422092651/https://technet.microsoft.com/en-us/library/cc778629%28v%3Dws.10%29.aspx|archive-date=22 April 2016|url-status=dead}}</ref>
* [[Linux Virtual Server]], [[Linux-HA]] - director-based clusters that allow incoming requests for services to be distributed across multiple cluster nodes.
* [[MOSIX]], [[openMosix]], [[Kerrighed]], [[OpenSSI]] - full-blown clusters integrated into the [[kernel (computer science)|kernel]] that provide for automatic process migration among homogeneous nodes. OpenSSI, openMosix and Kerrighed are [[single-system image]] implementations.
Most of the clusters listed in [[TOP500]] are linux clusters.
 
In terms of scalability, clusters provide this in their ability to add nodes horizontally. This means that more computers may be added to the cluster, to improve its performance, redundancy and fault tolerance. This can be an inexpensive solution for a higher performing cluster compared to scaling up a single node in the cluster. This property of computer clusters can allow for larger computational loads to be executed by a larger number of lower performing computers.
[[Microsoft Windows]] Compute Cluster Server 2003 based on [[Windows Server]] platform provides pieces for High Performance Computing like the Job Scheduler, MSMPI library and management tools.
 
When adding a new node to a cluster, reliability increases because the entire cluster does not need to be taken down. A single node can be taken down for maintenance, while the rest of the cluster takes on the load of that individual node.
[[NCSA]]'s recently installed Lincoln is a cluster of 450 Dell PowerEdge™ 1855 blade servers running Windows Compute Cluster Server 2003. This cluster debuted at #130 on the [[Top500]] list in June 2006.
 
If you have a large number of computers clustered together, this lends itself to the use of [[Clustered file system#distributed file systems|distributed file systems]] and [[RAID]], both of which can increase the reliability and speed of a cluster.
[[DragonFly BSD]], a recent [[fork (software)|fork]] of [[FreeBSD]] 4.8 is being redesigned at its core to enable native clustering capabilities. It also aims to achieve [[single-system image]] capabilities.
 
==Design and configuration==
== Clustering software (open source) ==
[[File:beowulf.png|thumb|240px|left|A typical Beowulf configuration]]
* [[BOINC]] - Berkeley Open Infrastructure for Network Computing
One of the issues in designing a cluster is how tightly coupled the individual nodes may be. For instance, a single computer job may require frequent communication among nodes: this implies that the cluster shares a dedicated network, is densely located, and probably has homogeneous nodes. The other extreme is where a computer job uses one or few nodes, and needs little or no inter-node communication, approaching [[grid computing]].
* [[Gluster]] - The GNU Clustering Platform [http://www.gluster.org]
* [[Kerrighed]]
* [[Linux-Cluster Project]] [http://sources.redhat.com/cluster/] [[Global File System]] & HA
* [[Linux Virtual Server]]
* [[Linux-HA]]
* [[Maui Cluster Scheduler]] [http://www.clusterresources.com/products/maui/]
* [[OpenSSI]] High-availability, load-balancing, and high-performance clustering with or without a [[SAN]].
* [[OpenMosix]]
* [[OpenSCE]] [http://www.opensce.org/]
* [[Open Source Cluster Application Resources]] (OSCAR) [http://oscar.openclustergroup.org/]
* [[Rocks Cluster Distribution]] [http://www.rocksclusters.org/]
* [[Sun GridEngine]]
* [[TORQUE Resource Manager]], [http://www.clusterresources.com/products/torque/]
* [[WareWulf]] [http://warewulf.lbl.gov/pmwiki/]
 
In a [[Beowulf cluster]], the application programs never see the computational nodes (also called slave computers) but only interact with the "Master" which is a specific computer handling the scheduling and management of the slaves.<ref name=VECPAR /> In a typical implementation the Master has two network interfaces, one that communicates with the private Beowulf network for the slaves, the other for the general purpose network of the organization.<ref name=VECPAR /> The slave computers typically have their own version of the same operating system, and local memory and disk space. However, the private slave network may also have a large and shared file server that stores global persistent data, accessed by the slaves as needed.<ref name=VECPAR />
== Clustering products ==
 
* [http://www.alchemi.net Alchemi]
A special purpose 144-node [[DEGIMA (computer cluster)|DEGIMA cluster]] is tuned to running astrophysical N-body simulations using the Multiple-Walk parallel tree code, rather than general purpose scientific computations.<ref name=Hamada>{{cite journal|first=Tsuyoshi|last=Hamada |display-authors=etal |year=2009|title=A novel multiple-walk parallel algorithm for the Barnes–Hut treecode on GPUs – towards cost effective, high performance N-body simulation|journal=Computer Science – Research and Development|volume=24|issue=1–2 |pages=21–31 |doi=10.1007/s00450-009-0089-1|s2cid=31071570 }}</ref>
* [[Condor_cycle_scavenger|Condor]] [http://www.cs.wisc.edu/condor/]
 
* [http://h18026.www1.hp.com/solutions/enterprise/highavailability/linux/serviceguard/ HP Serviceguard]
Due to the increasing computing power of each generation of [[game console]]s, a novel use has emerged where they are repurposed into [[High-performance computing]] (HPC) clusters. Some examples of game console clusters are [[PlayStation 3 cluster|Sony PlayStation clusters]] and [[Microsoft]] [[Xbox (console)|Xbox]] clusters. Another example of consumer game product is the [[Nvidia Tesla Personal Supercomputer]] workstation, which uses multiple graphics accelerator processor chips. Besides game consoles, high-end graphics cards too can be used instead. The use of graphics cards (or rather their GPU's) to do calculations for grid computing is vastly more economical than using CPU's, despite being less precise. However, when using double-precision values, they become as precise to work with as CPU's and are still much less costly (purchase cost).<ref name=pcauthority />
* HP's [[OpenVMS]]
 
* [[High Availability Cluster Multiprocessing|IBM's HACMP]]
Computer clusters have historically run on separate physical [[computer]]s with the same [[operating system]]. With the advent of [[virtualization]], the cluster nodes may run on separate physical computers with different operating systems which are painted above with a virtual layer to look similar.<ref name=linuxjournal>{{cite web|url=http://www.linuxjournal.com/article/8812|title=Xen Virtualization and Linux Clustering, Part 1|date=12 Jan 2006|website=Linux Journal|first=Ryan|last=Mauer|access-date=2 Jun 2017}}</ref>{{citation needed|date=November 2013}}{{clarify|date=November 2013}} The cluster may also be virtualized on various configurations as maintenance takes place; an example implementation is [[Xen]] as the virtualization manager with [[Linux-HA]].<ref name="linuxjournal" />
* IBM [[Parallel Sysplex]]
 
* [[KeyCluster]]
==Data sharing and communication==
* United Devices [[Grid MP]]
 
* [[MC Service Guard]] for [[HP-UX]] systems
===Data sharing===
* [[Microsoft Cluster Server]] (MSCS)
[[File:Nec-cluster.jpg|thumb|A [[NEC]] [[Nehalem (microarchitecture)|Nehalem cluster]]]]
* [[Platform LSF]] [http://www.platform.com/products/lsf]
As the computer clusters were appearing during the 1980s, so were [[supercomputer]]s. One of the elements that distinguished the three classes at that time was that the early supercomputers relied on [[Shared memory architecture|shared memory]]. Clusters do not typically use physically shared memory, while many supercomputer architectures have also abandoned it.
* [[NEC ExpressCluster]] [http://www.nec-online.com/page.asp?id=64]
 
* [[Oracle Real Application Cluster]] (RAC)
However, the use of a [[clustered file system]] is essential in modern computer clusters.{{Citation needed|date=August 2013}} Examples include the [[IBM General Parallel File System]], Microsoft's [[Cluster Shared Volumes]] or the [[Oracle Cluster File System]].
* [[OpenPBS]] [http://www.openpbs.org]
 
* [[PBSPro]] [http://www.altair.com/software/pbspro.htm]
===Message passing and communication===
* [[PolyServe]]
{{Main|Message passing in computer clusters}}
* [[Red Hat Cluster Suite]], [http://www.redhat.com/solutions/clustersuite/]
Two widely used approaches for communication between cluster nodes are MPI ([[Message Passing Interface]]) and PVM ([[Parallel Virtual Machine]]).<ref name=Gehrke>{{cite book|title=Distributed services with OpenAFS: for enterprise and education|first1=Franco|last1=Milicchio|first2=Wolfgang Alexander|last2=Gehrke|year=2007|isbn=9783540366348|pages=339–341|publisher=Springer |url=https://books.google.com/books?id=_HtHG2Ca5AEC}}</ref>
* [[SteelEye LifeKeeper]]
 
* [[Sun N1 GridEngine]] [http://www.sun.com/software/gridware/ Sun N1 GridEngine]
PVM was developed at the [[Oak Ridge National Laboratory]] around 1989 before MPI was available. PVM must be directly installed on every cluster node and provides a set of software libraries that paint the node as a "parallel virtual machine". PVM provides a run-time environment for message-passing, task and resource management, and fault notification. PVM can be used by user programs written in C, C++, or Fortran, etc.<ref name="Gehrke" /><ref name="Prabhu" />
* [[Veritas Cluster Server]] (VCS), from [[VERITAS Software]]
 
* [[Scyld Beowulf Cluster]] [http://www.scyld.com]
MPI emerged in the early 1990s out of discussions among 40 organizations. The initial effort was supported by [[DARPA|ARPA]] and [[National Science Foundation]]. Rather than starting anew, the design of MPI drew on various features available in commercial systems of the time. The MPI specifications then gave rise to specific implementations. MPI implementations typically use [[TCP/IP]] and socket connections.<ref name=Gehrke /> MPI is now a widely available communications model that enables parallel programs to be written in languages such as [[C (programming language)|C]], [[Fortran]], [[Python (programming language)|Python]], etc.<ref name=Prabhu >{{cite book|url=https://books.google.com/books?id=evcgB7Qlix4C|title=Grid and Cluster Computing|last=Prabhu|first=C.S.R.|year=2008|isbn=978-8120334281|pages=109–112|publisher=PHI Learning Pvt. }}</ref> Thus, unlike PVM which provides a concrete implementation, MPI is a specification which has been implemented in systems such as [[MPICH]] and [[Open MPI]].<ref name="Prabhu" /><ref name=Gropp>{{Cite journal
* [[Platform Rocks]] [http://www.platform.com/rocks]
|last1=Gropp |first1=William |last2=Lusk |first2=Ewing |last3=Skjellum |first3=Anthony
* [[Xgrid]] from Apple [http://www.apple.com/server/macosx/features/xgrid.html]
|year=1996|citeseerx = 10.1.1.102.9485
|title=A High-Performance, Portable Implementation of the MPI Message Passing Interface
|journal=Parallel Computing |volume=22 |issue=6 |pages=789–828 |doi=10.1016/0167-8191(96)00024-5 }}</ref>
 
==Cluster management==
[[File:Cubieboard HADOOP cluster.JPG|thumb|Low-cost and low energy tiny-cluster of [[Cubieboard]]s, using [[Apache Hadoop]] on [[Lubuntu]]]]
[[File:Circumference C25 (41227579055).png|thumb|A pre-release sample of the Ground Electronics/AB Open Circumference C25 cluster [[computer]] system, fitted with 8x [[Raspberry Pi]] 3 Model B+ and 1x UDOO x86 boards]]
One of the challenges in the use of a computer cluster is the cost of administrating it which can at times be as high as the cost of administrating N independent machines, if the cluster has N nodes.<ref name=patter641 >{{cite book|title=Computer Organization and Design|first1=David A.|last1=Patterson|first2=John L.|last2=Hennessy|year=2011|isbn=978-0-12-374750-1|pages=641–642|publisher=Elsevier }}</ref> In some cases this provides an advantage to [[shared memory architecture]]s with lower administration costs.<ref name=patter641 /> This has also made [[virtual machine]]s popular, due to the ease of administration.<ref name=patter641 />
 
===Task scheduling===
When a large multi-user cluster needs to access very large amounts of data, [[task scheduling]] becomes a challenge. In a heterogeneous CPU-GPU cluster with a complex application environment, the performance of each job depends on the characteristics of the underlying cluster. Therefore, mapping tasks onto CPU cores and GPU devices provides significant challenges.<ref name=Shira /> This is an area of ongoing research; algorithms that combine and extend [[MapReduce]] and [[Apache Hadoop|Hadoop]] have been proposed and studied.<ref name=Shira >{{cite conference|author=K. Shirahata |display-authors=etal |title=Hybrid Map Task Scheduling for GPU-Based Heterogeneous Clusters|conference=Cloud Computing Technology and Science (CloudCom) |date=30 Nov – 3 Dec 2010|pages=733–740|isbn=978-1-4244-9405-7|doi=10.1109/CloudCom.2010.55}}</ref>
 
===Node failure management===
When a node in a cluster fails, strategies such as "[[Fencing (computing)|fencing]]" may be employed to keep the rest of the system operational.<ref name=ARob>{{cite web |title=Alan Robertson Resource fencing using STONITH |url=https://mirrors.sinuspl.net/www.linux-ha.org/heartbeat/ResourceFencing_Stonith.pdf |website=IBM Linux Research Center, 2010 |archiveurl=https://web.archive.org/web/20210105195318/https://mirrors.sinuspl.net/www.linux-ha.org/heartbeat/ResourceFencing_Stonith.pdf |archive-date=2021-01-05}}</ref><ref name=suncl >{{cite book|title=Sun Cluster environment: Sun Cluster 2.2|first1=Enrique|last1=Vargas|first2=Joseph|last2=Bianco|first3=David|last3=Deeths|year=2001|isbn=9780130418708|page=58|url=https://books.google.com/books?id=oRjWAZS5iZMC|publisher=Prentice Hall Professional}}</ref> Fencing is the process of isolating a node or protecting shared resources when a node appears to be malfunctioning. There are two classes of fencing methods; one disables a node itself, and the other disallows access to resources such as shared disks.<ref name=ARob />
 
The [[STONITH]] method stands for "Shoot The Other Node In The Head", meaning that the suspected node is disabled or powered off. For instance, ''power fencing'' uses a power controller to turn off an inoperable node.<ref name=ARob />
 
The ''resources fencing'' approach disallows access to resources without powering off the node. This may include ''persistent reservation fencing'' via the [[SCSI3]], fibre channel fencing to disable the [[fibre channel]] port, or [[global network block device]] (GNBD) fencing to disable access to the GNBD server.
 
==Software development and administration==
 
===Parallel programming===
Load balancing clusters such as web servers use cluster architectures to support a large number of users and typically each user request is routed to a specific node, achieving [[task parallelism]] without multi-node cooperation, given that the main goal of the system is providing rapid user access to shared data. However, "computer clusters" which perform complex computations for a small number of users need to take advantage of the parallel processing capabilities of the cluster and partition "the same computation" among several nodes.<ref name=Blum />
 
[[Automatic parallelization]] of programs remains a technical challenge, but [[parallel programming model]]s can be used to effectuate a higher [[degree of parallelism]] via the simultaneous execution of separate portions of a program on different processors.<ref name=Blum >{{cite book|title=Computer Science: The Hardware, Software and Heart of It|first1=Alfred V.|last1=Aho|first2=Edward K.|last2=Blum|year=2011|isbn=978-1-4614-1167-3|pages=156–166|publisher=Springer |url=https://books.google.com/books?id=S7QU9RRLYIYC}}</ref><ref>{{cite book|title=Parallel Programming: For Multicore and Cluster Systems|first1=Thomas|last1=Rauber|first2=Gudula|last2=Rünger|year=2010|isbn=978-3-642-04817-3|pages=94–95|publisher=Springer |url=https://books.google.com/books?id=wWogxOmA3wMC}}</ref>
 
===Debugging and monitoring===
Developing and debugging parallel programs on a cluster requires parallel language primitives and suitable tools such as those discussed by the ''High Performance Debugging Forum'' (HPDF) which resulted in the HPD specifications.<ref name="Prabhu"/><ref name=iosp>{{cite journal|last1=Francioni|first1=Joan M.|last2=Pancake|first2=Cherri M.|author-link2=Cherri M. Pancake|title=A Debugging Standard for High-performance computing|journal=Scientific Programming|volume=8|issue=2|date=April 2000|doi=10.1155/2000/971291|publisher=IOS Press|issn=1058-9244|pages=95–108|___location=[[Amsterdam]], [[Netherlands]]|doi-access=free}}</ref> Tools such as [[Rogue Wave Software|TotalView]] were then developed to debug parallel implementations on computer clusters which use [[Message Passing Interface]] (MPI) or [[Parallel Virtual Machine]] (PVM) for message passing.
 
The [[University of California, Berkeley]] ''Network of Workstations'' (NOW) system gathers cluster data and stores them in a database, while a system such as PARMON, developed in India, allows visually observing and managing large clusters.<ref name="Prabhu"/>
 
[[Application checkpointing]] can be used to restore a given state of the system when a node fails during a long multi-node computation.<ref name="sloot">{{cite conference|editor-last=Sloot|editor-first=Peter|year=2003|title=Computational Science: ICCS 2003: International Conference|isbn=3-540-40195-4|pages=291–292}}</ref> This is essential in large clusters, given that as the number of nodes increases, so does the likelihood of node failure under heavy computational loads. Checkpointing can restore the system to a stable state so that processing can resume without needing to recompute results.<ref name="sloot"/>
 
==Implementations==
The Linux world supports various cluster software; for application clustering, there is [[distcc]], and [[MPICH]]. [[Linux Virtual Server]], [[Linux-HA]] – director-based clusters that allow incoming requests for services to be distributed across multiple cluster nodes. [[MOSIX]], [[LinuxPMI]], [[Kerrighed]], [[OpenSSI]] are full-blown clusters integrated into the [[kernel (computer science)|kernel]] that provide for automatic process migration among homogeneous nodes. [[OpenSSI]], [[openMosix]] and [[Kerrighed]] are [[single-system image]] implementations.
 
[[Microsoft Windows]] computer cluster Server 2003 based on the [[Windows Server]] platform provides pieces for high-performance computing like the job scheduler, MSMPI library and management tools.
 
[[gLite]] is a set of middleware technologies created by the [[Enabling Grids for E-sciencE]] (EGEE) project.
 
[[Simple Linux Utility for Resource Management|slurm]] is also used to schedule and manage some of the largest supercomputer clusters (see top500 list).
 
==Other approaches==
Although most computer clusters are permanent fixtures, attempts at [[flash mob computing]] have been made to build short-lived clusters for specific computations. However, larger-scale [[volunteer computing]] systems such as [[BOINC]]-based systems have had more followers.
 
==See also==
{| cellspacing="5" cellpadding="5" border="0" width="60%"
* [[Distributed data store]]
|-
* [[Flash mob computing]]
|valign="top" width="30%"|
* [[Grid computing]]
''Basic concepts''
* [[Peer-to-peer]]
:* [[SymmetricClustered multiprocessingfile system]]
:* [[Two-nodeHeartbeat clusterprivate network]]
:* [[High-availability cluster]]
:* [[Single system image]]
:* [[Symmetric multiprocessing]]
''Distributed computing''
:* [[Distributed computing]]
:* [[Distributed data store]]
:* [[Distributed operating system]]
:* [[Distributed shared memory]]
|valign="top" width="30%"|
''Specific systems''
:* [[DEGIMA (computer cluster)]]
:* [[K computer]]
:* [[Microsoft Cluster Server]]
:* [[Red Hat Cluster Suite]]
:* [[Rocks Cluster Distribution]]
:* [[Solaris Cluster]]
:* [[Veritas Cluster Server]]
:* [[Beowulf cluster]]
 
''Computer farms''
:* [[Compile farm]]
:* [[Render farm]]
:* [[Server farm]]
|}
 
==References==
{{Reflist|30em}}
* Karl Kopper: ''The Linux Enterprise Cluster: Build a Highly Available Cluster with Commodity Hardware and Free Software'', No Starch Press, ISBN 1-59327-036-4
 
* Evan Marcus, Hal Stern: ''Blueprints for High Availability: Designing Resilient Distributed Systems'', John Wiley & Sons, ISBN 0-471-35601-8
==Further reading==
* Greg Pfister: ''In Search of Clusters'', Prentice Hall, ISBN 0-13-899709-8
* {{cite arXiv|first=Mark|last=Baker |display-authors=etal |title=Cluster Computing White Paper|eprint=cs/0004014|date=11 Jan 2001}}
* Rajkumar Buyya (editor): ''High Performance Cluster Computing: Architectures and Systems'', Volume 1, ISBN 0-13-013784-7, Prentice Hall, NJ, USA, 1999.
* {{cite book|first1=Evan|last1=Marcus|first2=Hal|last2=Stern|title=Blueprints for High Availability: Designing Resilient Distributed Systems|publisher=John Wiley & Sons|isbn=978-0-471-35601-1|date=2000-02-14|url=https://archive.org/details/blueprintsforhig00marc}}
* Rajkumar Buyya (editor): ''High Performance Cluster Computing: Programming and Applications'', Volume 2, ISBN 0-13-013785-5, Prentice Hall, NJ, USA, 1999.
* {{cite book|first1=Greg|last1=Pfister|title=In Search of Clusters|publisher=Prentice Hall|isbn=978-0-13-899709-0|year=1998|url=https://archive.org/details/insearchofcluste00pfis}}
* {{cite book|editor-first=Rajkumar|editor-last=Buyya|title=High Performance Cluster Computing: Architectures and Systems|volume=1|isbn=978-0-13-013784-5|publisher=Prentice Hall|___location=NJ, USA|year=1999}}
* {{cite book|editor-first=Rajkumar|editor-last=Buyya|title=High Performance Cluster Computing: Architectures and Systems|volume=2|isbn=978-0-13-013785-2|publisher=Prentice Hall|___location=NJ, USA|year=1999}}
 
==External links==
{{Commons category|Clusters (computing)}}
* [http://www.beowulf.org/ Beowulf]
* [https://web.archive.org/web/20190219183441/https://www.ieeetcsc.org/ IEEE Technical Committee on Scalable Computing (TCSC)]
* [https://cajo.dev.java.net The cajo project] Free clustered computing using Java. (LGPL)
* [https://archive.today/20130103192843/http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.rsct.doc/rsctbooks.html Reliable Scalable Cluster Technology, IBM]
* [http://www.clusterbuilder.org Cluster Builder]- Research for building a cluster
* [https://www.ibm.com/developerworks/wikis/display/tivoli/Tivoli+System+Automation Tivoli System Automation Wiki]
* [http://bofh.be/clusterknoppix/ ClusterKnoppix]
* [https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/43438.pdf Large-scale cluster management at Google with Borg], April 2015, by Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune and John Wilkes
* [http://webinfo-blog.blogspot.com/ United Devices Virtual Cluster(TM)] - Web Info
* [http://www.clustermonkey.net ClusterMonkey] - On-line Cluster magazine
* [http://www.cs.sandia.gov/cplant Cplant, a non-Beowulf Linux cluster]
* [http://www.ieeetfcc.org/ IEEE task force on cluster computing, the leading academic community on cluster computing]
* [http://lcic.org/ Linux clustering information center]
* [http://linux-ha.org/CommercialSoftware List of commercial HA clustering Software for Linux]
* [http://www.LinuxHPC.org LinuxHPC.org] Linux High Performance Computing and Clustering Portal
* [http://www.WinHPC.org WinHPC.org] Windows High Performance Computing and Clustering Portal
* [http://www.sun.com/software/grid Sun Grid Computing Solutions]
* [http://www.windowsnetworking.com/articles_tutorials/Cluster-Quorums.html Understanding How Cluster Quorums Work]
* [http://hepd.pnpi.spb.ru/ClusterGate.RU ClusterGate.RU] - source of information on midrange clusters
* [http://oss.oracle.com/projects/ocfs2/ OCFS2] - Oracle Cluster File System Project from [[Oracle Corporation]] available for [[Linux]] under [[GNU General Public License|GPL]] License
 
{{Parallel Computing|state=collapsed}}
== Cluster sites ==
{{Authority control}}
*[http://www.irb.hr/cir/projects/internal/dcc/ IRB]
*[http://www.sara.nl/userinfo/lisa/usage/batch/index.html SARA]
*[http://teragrid.ncsa.uiuc.edu/TGIA64LinuxCluster.html Teragrid]
*[http://www.tcf.vt.edu/systemX.html VirginiaTech]
 
{{DEFAULTSORT:Cluster (Computing)}}
[[Category:Distributed computing]]
[[Category:Cluster computing| ]]
[[Category:Parallel computing]]
[[Category:Concurrent computing]]
[[Category:Supercomputers|*Computer cluster]]
[[Category:Local area networks]]
[[Category:Classes of computers]]
 
[[Category:Fault-tolerant computer systems]]
[[bg:Клъстер]]
[[Category:Server hardware]]
[[cs:Výpočetní cluster]]
[[da:Klyngecomputer]]
[[de:Computercluster]]
[[es:Cluster (informática)]]
[[fa:خوشه]]
[[fr:Grappe de serveurs]]
[[ko:컴퓨터 클러스터]]
[[it:Computer cluster]]
[[he:אשכול מחשבים]]
[[nl:Computercluster]]
[[ja:コンピュータ・クラスター]]
[[nn:Dataklynge]]
[[pl:Klaster komputerowy]]
[[pt:Cluster]]
[[ru:Кластер (группа компьютеров)]]
[[fi:Klusteri]]
[[sv:Kluster]]
[[uk:Кластер]]
[[zh:计算机集群]]