Un cluster de calculatoare este un set de calculatoare care lucrează împreună, astfel încât să poată fi văzute ca un singur sistem. Spre deosebire de calculatoarele în grid, calculatoarele din clustere au fiecare nod setat să îndeplinească aceeași sarcină, controlată și programată de software. Cea mai nouă manifestare a clusterelor este cloud computingul.

Componentele unui cluster sunt de obicei conectate între ele prin rețele locale rapide, fiecare nod (calculator folosit ca server) rulând propria instanță a unui sistem de operare. În majoritatea circumstanțelor, toate nodurile folosesc același hardware  și același sistem de operare, deși în unele configurații (de exemplu, folosind Open Source Cluster Application Resources OSCAR)), pe fiecare calculator se pot folosi sisteme de operare diferite sau hardware diferit.

Clusterele sunt de obicei implementate pentru a îmbunătăți performanța și disponibilitatea față de cea a unui singur calculator, deoarece sunt de obicei mult mai rentabile decât calculatoare individuale cu viteză sau disponibilitate comparabilă.

Clusterele de calculatoare au apărut ca urmare a convergenței mai multor tendințe din domeniul calculului, inclusiv disponibilitatea microprocesoarelor cu costuri reduse, rețelelor de mare viteză și software-ului pentru calculul distribuit de înaltă performanță. Au o gamă largă de aplicabilitate și implementare, variind de la grupuri de afaceri mici cu câteva noduri până la unele dintre cele mai rapide supercalculatoare din lume, cum ar fi IBM Sequoia. Înainte de apariția clusterelor, se foloseau mainframe-uri tolerante la defecte într-o unitate unică cu redundanță modulară; dar costul inițial mai mic al clusterelor și viteza crescută a structurii rețelei au favorizat adoptarea clusterelor. Spre deosebire de mainframe-urile de înaltă fiabilitate, clusterele sunt mai ieftin de extins, dar au și o complexitate crescută în gestionarea erorilor, deoarece în clustere, modurile de eroare nu sunt opace programelor care rulează.

Concepte de bază miniatura|200x200px| Un cluster Beowulf simplu, construit în casă Dorința de a obține mai multă putere de calcul și o mai bună fiabilitate prin orchestrarea unui număr de computere comerciale cu disponibilitate generală la preț redus a dat naștere la o varietate de arhitecturi și configurații.

Abordarea clusteringului calculatoarelor conectează de obicei (dar nu întotdeauna) mai multe noduri de calcul ușor disponibile (de exemplu, calculatoare personale utilizate ca servere) printr-o rețea locală rapidă. Activitățile nodurilor de calcul sunt orchestrate de „middleware-ul de cluster”, un nivel de software care se află deasupra nodurilor și permite utilizatorilor să trateze clusterul, în general, ca o singură unitate de calcul coerentă, de exemplu printr-o imagine unică de sistem.

Clusteringul calculatoarelor se bazează pe o abordare de management centralizat care face nodurile disponibile ca servere partajate orchestrate. Este diferit de alte abordări, cum ar fi peer-to-peer sau grid computing, care utilizează și ele mai multe noduri, dar cu o natură mult mai distribuită.

Un cluster de calculatoare poate fi un sistem simplu cu două noduri care conectează doar două calculatoare personale sau poate fi un supercalculator foarte rapid. O abordare de bază pentru construirea unui cluster este cea a unui cluster Beowulf care poate fi construit cu câteva calculatoare personale pentru a produce o alternativă rentabilă la calculul tradițional de înaltă performanță. Un proiect timpuriu care a arătat viabilitatea conceptului a fost Stone Soupercomputer cu 133 de noduri. Dezvoltatorii au folosit Linux, setul de instrumente Parallel Virtual Machine și biblioteca Message Passing Interface pentru a obține performanțe ridicate la un cost relativ scăzut.

Deși un cluster poate fi format din doar câteva calculatoare personale conectate printr-o rețea simplă, arhitectura cluster poate fi utilizată și pentru a obține niveluri foarte ridicate de performanță. Lista semestrială a organizației TOP500 a celor mai rapide 500 de supercomputere cuprinde adesea multe clustere. De exemplu, cea mai rapidă mașină din lume în 2011 a fost K computer care are o arhitectură de cluster cu memorie distribuită.

Istorie miniatura|190x190px|Un VAX 11/780, c. 1977, utilizat în primele dezvoltări VAXcluster Greg Pfister a afirmat că clusterele nu au fost inventate de vreun producător anume, ci de clienții care nu aveau loc pentru toată munca lor pe un singur calculator, sau care aveau nevoie de un backup. Pfister estimează data cândva în anii 1960. Baza inginerească formală a calculului în cluster ca mijloc de efectuare de calcule paralele de orice fel a fost inventată de Gene Amdahl de la IBM, care, în 1967, a publicat ceea ce avea să fie considerat actul de naștere al procesării paralele: Legea lui Amdahl.

Istoria primelor clustere de calculatoare este legată mai mult sau mai puțin direct de istoria primelor rețele, întrucât una din motivațiile principale ale dezvoltării unei rețele era legarea între ele a resurselor de calcul, creând un cluster de calculatoare .

Primul sistem de producție gândit drept cluster a fost Burroughs B5700 pe la jumătatea anilor 1960. Acesta permitea ca până la patru calculatoare, fiecare cu unul sau două procesoare, să fie legat strâns de un subsistem comun de stocare pe disc pentru distribuirea sarcinii de lucru. Spre deosebire de sistemele multiprocesor standard, fiecare calculator putea fi repornit independent, fără a perturba funcționarea ansamblului. miniatura|Tandem NonStop II circa 1980 Primul produs de clustering comercial cu cuplaj slab a fost sistemul „Attached Resource Computer” (ARC) de la Datapoint Corporation, dezvoltat în 1977, și folosind ARCnet drept interfață de cluster. Clusteringul propriu-zis a prins avânt abia după ce Digital Equipment Corporation a lansat produsul VAXcluster în 1984 pentru sistemul de operare VMS. Produsele ARC și VAXcluster suportau nu doar calculul paralel, ele partajau sistemele de fișiere și dispozitivele periferice. Ideea era să se furnizeze avantajele calculului paralel, păstrând în același timp unicitatea și integritatea datelor. Alte două clustere comerciale remarcabile de la începuturi au fost Tandem NonStop (un produs comercial de high-availability din 1976) și IBM S/390 Parallel Sysplex (circa 1994, în principal pentru afaceri).

În aceeași perioadă, în vreme ce clusterele de calculatoare foloseau paralelismul în afara calculatorului pe o rețea larg disponibilă, supercalculatoarele au început să-l folosească în cadrul aceluiași calculator. În urma succesului lui CDC 6600 din 1964, a fost livrat în 1976 Cray 1, care introducea paralelismul intern prin procesare vectorială. Dacă primele supercalculatoare excludeau clusterele și se bazau pe memorie partajată, cu timpul, unele din cele mai rapide supercalculatoare (de exemplu calculatorul K) se bazau pe arhitecturi de cluster.

Atributele clusterelor miniatura|Un cluster cu load balancing având două servere și N stații de utilizator Clusterele de calculatoare pot fi configurate pentru diferite scopri, de la nevoile generale ale unei afaceri, cum ar fi suportul prin web-service-uri, până la calcule științifice complexe. În orice caz, clusterul poate folosi o abordare high-availability.

Clusterele cu „load-balancing” sunt configurații în care nodurile de cluster își divid volumul de lucru computațional pentru a avea o performanță de ansamblu îmbunătățită. De exemplu, un cluster de servere web poate atribui cereri diferite către noduri diferite, pentru ca timpul de răspuns de ansamblu să fie optimizat. Abordările load-balancingului pot să difere însă semnificativ de la o aplicație la alta, de exemplu un cluster de mare performanță utilizat pentru calcule științifice va distribui sarcinile cu algoritmi diferiți față de un cluster de servere web care ar folosi o metodă round-robin atribuind fiecare cerere nouă unui nod diferit.

Clusterele de calculatoare sunt folosite pentru scopuri intensive computațional, și nu pe operațiuni orientate pe intrări/ieșiri cum ar fi web service-urile sau bazele de data. De exemplu, un cluster de calculatoare poate susține simulări computaționale ale traficului rutier sau ale vremii. Clusterele de calculatoare foarte strâns cuplate sunt proiectate pentru sarcini care se apropie de domeniul „supercomputing”.

„Clusterele high-availability” (pe scurt, clustere HA, denumite și clustere failover) îmbunătățesc disponibilitatea oferită de abordarea de cluster. Ele operează noduri redundante, care sunt folosite pentru a furniza serviciul în cazul defectării componentelor altor sisteme. Implementările de cluster HA încearcă să utilizeze redundanța componentelor de cluster pentru a elimina punctele unice de defectare. Există implementări comerciale de clustere HA pentru multe sisteme de operare. Proiectul Linux-HA este un pachet de software liber frecvent folosit pe baza sistemului de operare Linux.

Avantaje Clusterele sunt proiectate în primul rând pentru performanță, dar instalările se bazează pe mulți alți factori. Toleranța la defecte (capacitatea unui sistem de a continua să funcționeze în ciuda defectării unui nod) facilitează scalabilitatea și, în situații de înaltă performanță, reduce frecvența rutinelor de mentenanță, consolidarea resurselor (de ex., RAID), și managementul centralizat. Printre avantaje se numără recuperarea datelor în caz de dezastru și furnizarea de capacități de prelucrare paralelă a datelor.

În termeni de scalabilitate, clusterele o furnizează prin capacitatea lor de a adăuga noduri orizontal, adică se pot adăuga mai multe calculatoare la cluster pentru a-i îmbunătăți performanța, redundanța și toleranța la defecte. Aceasta poate fi o soluție mai ieftină pentru un performanța unui cluster decât scalarea unui singur nod. Această proprietate a clusterelor de calculatoare poate permite executarea unei încărcări computaționale mai mari de un număr mai mare de calculatoare a căror performanță nu este deosebită.

Când se adaugă un nou nod în cluster, fiabilitatea crește, deoarece nu trebuie oprit întregul cluster. Un nod anume poate fi oprit pentru mentenanță, în timp ce restul clusterului își distribuie încărcarea acelui nod individual.

Calculatoarele multiple instalate într-un cluster se pretează la utilizarea de sisteme de fișiere distribuite și de RAID, care ambele cresc fiabilitatea și viteza unui cluster.

Proiectare și configurare stanga|miniatura|240x240px|Configurație Beowulf tipică Una din chestiunile de proiectare a unui cluster este cât de strâns trebuie cuplate nodurile individuale. De exemplu, un anume job ar putea să aibă o nevoie frecventă de comunicație între noduri, ceea ce înseamnă că clusterul partajează o rețea dedicată, este dens localizat, și probabil are noduri omogene. Cealaltă extremă este aceea în care un job folosește un singur nod, sau cel mult câteva, și are nevoi reduse de comunicații între noduri, ceva ce se apropie de grid computing.

Într-un cluster Beowulf, programele de aplicații nu văd niciodată nodurile computaționale (numite calculatoare ) ci interacționează doar cu ulun anume calculator care tratează planificarea și gestiunea -urilor. Într-o implementare tipică, ul are două interfețe de rețeauna care comunică cu rețeaua privată Beowulf pentru -uri, cealaltă pentru necesitățile generale ale organizației. Calculatoarele au de regulă versiunea lor a aceluiași sistem de operare, cu memorie locală și spațiu de stocare. Rețeaua privată pentru -uri ar pute însă să aibă nevoie de un server de fișiere partajate care stochează datele persistente global, care sunt accesate de -uri la nevoie.