Cluster

Izvor: Wikipedija
Primjer računalnog cluster-a (NASA)

Računalni cluster (hrv. „grozd”, „skupina”) je skup usko povezanih računala koja rade zajedno tako da se mogu gledati kao jedno računalo. Dijelovi clustera su obično, ali ne uvijek, spojeni zajedno brzom lokalnom mrežom (LAN). Clusteri se koriste kako bi povećali performanse i/ili dostupnost iznad one kod jednog računala, dok su, u principu, jeftiniji u usporedbi s jednim računalom istih karakteristika.

Vrste clustera[uredi | uredi kôd]

High-availability (HA) clusteri[uredi | uredi kôd]

Clusteri velike dostupnosti se koriste se prvenstveno kako bi poboljšali dostupnost usluga koje cluster pruža. Rade na principu ponavljajućih čvorova, koji onda pružaju usluge kada zakažu komponente. Najčešća veličina HA cluster-a su 2 čvora, što je minimum za ponovljivost. Implementacijom HA clustera pokušava se eliminirati pojedinačne točke kvarova upravljanjem ponavljanjem. Postoji mnogo komercijalnih implementacija HA clustera za mnoge operacijske sustave. Linux-HA projekt je najčešće korišten HA paket slobodnog softwarea, a koristi Linux OS.

Clusteri za raspoređivanje opterećenja[uredi | uredi kôd]

Load-balancing clusteri funkcioniraju tako da svo opterećenje dolazi kroz jedan ili više front endova, te se tada raspoređuje na više back end-servera. Iako se primarno koriste kako bi poboljšali performanse, obično također uključuju i veliku dostupnost (High-availability) i sposobnosti koje proizlaze iz nje. Takav se cluster ponekad naziva serverska farma. Postoji mnogo komercijalnih Load balancing clustera uključujući Platform LSF HPC, Sun Grid Engine, Moab Cluster Suite i Maui Cluster Scheduler. Linux Virtual Server projekt nudi nam uobičajeni softverski paket za LinuxOS.

High-performance clusteri (HPC)[uredi | uredi kôd]

Clusteri visokih performanci služe prvenstveno za povećavanje performansi raspoređivanjem računalnih zadataka na više raznih čvorova u clusteru, i najčešće su korišteni u znastvene svrhe. Najpopularnija HPC implementatcija je cluster s čvorovima kojeg pokreće Linux OS i slobodan software u korišten svrhu postizanja paralelizma. Ovakva konfiguracija se često naziva Beowulf cluster. Takvi clusteri obično vrste posebne programe dizajnirane da koriste mogućnosti paralelizma HPC clustera. Mnoge takve aplikacije koriste libraryje (eng. library-knjižnica) poput MPI koja je napisana posebno za izvršavanje znastvenih programa na HPC-ima.

HPC-i su optimizirani za rad koji zahtjeva komunikaciju između poslova ili procesa koji se izvršavaju na odvojenim računalnim čvorovima. Ovo uključuje izračune gdje međurezultati izračuna jednog čvora utječu na račun drugih čvorova.

Grid računarstvo[uredi | uredi kôd]

Grid računarstvo ili grid clusteri je tehnologija usko povezana s cluster računarstvom. Glavna razlika između gridova i konvencionalnih clustera je to što gridovi obuhvaćaju skup računala koja ne vjeruju u potpunosti jedan drugom, i stoga rade manje kao jedno računalo. Također, gridovi obično podržavaju više heterogene skupove nego što su oni uobičajeni u clusterima.

Grid računarstvo namijenjeno je za rad s opterećenjima koja se sastoje od više nezavisnih poslova (eng. jobs) i paketa, koji ne trebaju razmjenu podataka jedni između drugih tokom procesa izračuna. Gridovi služe za upravljanje poslovima na pojedinim računalima koji se izvršavaju nezavisno o ostatku grid-clustera. Resursi poput kapaciteta za pohranu mogu biti dijeljeni na svim čvorovima, ali međurezultati ne utječu na izvršavanje poslova na odvojenim čvorovima.

Implementacija HPC-a[uredi | uredi kôd]

Polugodišnja lista 500 najjačih računala, organizacije TOP500, obično sadržava mnogo clustera. TOP500 je suradnja Sveučilišta u Mannheimu, Sveučilišta u Tennesseeju, i Nacionalnog računalnog centra za istraživanje energije (National Energy Research Scientific Computing Center) na Lawrence Berkeley nacionalnom laboratoriju. Od Rujna 2006., najjače superračunalo je IBM BlueGene/L system Ureda za energiju (Department of Energy) s performansom od 280.6 TFlops (Terraflops = Terra floating point operators per second - 1 000 000000 000000 operacija s pomičnim zarezom u sekundi).

Korištenje clustera može dati velike performanse po manjoj cijeni. System X supercomputer na Virginia Tech, 28. po jačini računalo na Zemlji od Lipnja 2006.,[1] jest 12.25 TFlops-a brz cluster sastavljen od 1100 Apple XServe G5 2.3 GHz-nih dvoprocesorskih računala (4 GB RAM, 80 GB SATA HD) koje pokreće Mac OS X a koriste InfiniBand interkonekciju. Cluster se u početku sastojao od G5 Power Macova, korištenih tako da smanje zauzeće prostora. Sveukupna cijena prethodnog Power Mac sistema bila je 5.2 milijuna dolara, što je desetina cijene sporijeg mainframe superračunala.

Glavna ideja Beowulf clustera je korištenje komercijalno dostupnih računala u svrhu izgradnje jeftine alternative tradicionalnim superračunalima. Jedan od projekata koji je ovo potpuno iskoristio je Stone Soupercomputer.

Ipak, treba naznačiti da FLOPs-i (floating point operations per second), nisu uvijek siguran pokazatelje računalne brzine. Clusteri mogu imati mnogo FLOPs-a, a biti u nemogućnosti (brzo) pristupiti svim podacima kao što je slučaj s pojedinačnim računalom. Stoga su clusteri idealni za paralelno procesiranje, ali mnogo slabiji nego superračunala kod ne-paralelnog procesiranja.

SETI@home projekt je vjerojatno najrašireniji raspodjeljeni cluster koji postoji. Koristi približno 3 milijuna kućnih računala u cijelom svijetu kako bi analizirao podatke izradioteleskopa Arecibo, u potrazi za izvanzemaljskom inteligencijom.

JavaSpaces je standard Sun Microsystemsa koji omogućava računala cluster preko distribuirane dijeljene memorije.

Povijest clustera[uredi | uredi kôd]

Povijest cluster računarstva najbolje opisuje fusnota iz knjige Grega Pfistera In Search of Clusters: "Gotovo svaka DEC-ova izjava za tisak kaže DEC, koji je izumio clustere.... Ni IBM ih nije izmislio. Korisnici du izmislili clustere, čim više nisu mogli sav svoj posao strpati na jedno računalo, ili su trebali sigurnosnu kopiju. Datum ovog događaja je nepoznat, ali ne bih se iznenadio da su to 1960-e ili čak kasne 1950-e."

Formalnu osnovu cluster računarstva kao sredstva za vršenje paralelnog rada bilo kakve vrste je vjerojatno izumio Gene Amdahl iz IBM-a, koji je 1967 izdao ono što se kasnije smatralo seminarskim radom o paralelnom procesiranju: Amdahlov zakon (Amdahl's Law). On matematički opisuje ubrzanje koje se može očekivati od paraleliziranja bilo kojeg - inače serijski izvršavanog - zadatka izvršavanog na paralelnoj arhitekturi. Ovaj je članak definirao inženjersku osnovu i multiprocesiranja i clustera, gdje je primarna razlika dostupnost inter-procesorske komunikacije "unutar" računala (npr. interna sabirnica i mreža) ili "van" računala na commodity(eng. commodity = ugodnost) mreži (npr. internet).

Kao posljedica svega ovoga, povijest ranog clusterskog računarstva je više-manje vezana uz ranu povijest mreža, pošto je jedna od primarnih motivacija za razvoj mreža bila povezivanje računalnih resursa, tako zapravo stvarajući računalne clustere. Packet switching mreže zamišljene su od strane RAND korporacije 1962. Koristeći ovu zamisao, ARPANET projekt uspio je 1969. stvoriti ono što je vjerojatno bio prvi računalni cluster commodity mreže koji je povezivao 4 različita računalna centra (od kojih je svaki, na neki način, cluster, ali vjerojatno ne i commodity cluster). ARPANET projekt je prerastao u Internet -- mrežu koja bi se mogla nazvati "majkom svih clustera" (kao unija gotovo svih računalnih resursa. uključujući clustere koji su na njega povezani). Također je uspostavljena paradigma u korištenju svih računala na svijetu danas -- korištenje packet-switched mreža u svrhu obavljanja interprocesorskih komunikacija između jednog ili više procesora smještenih u inače isključenim okvirima.

Razvoj korisnički-izgrađenih clustera i istraživanja razvija se paralelno s razvojem mreža i Unix operacijskog sustava iz rane 1970., kako su se i TCP/IP i XeroxPARC projekti razvili i postali standarsi za mrežnu komunikaciju. Hydra operacijski sustav je izgrađen za DEC-ov cluster PDP-11 računala nazvan C.mmp na C-MU, 1971. Ipak, tek su 1983. definirani protokoli i alati za laganu udaljenu raspodjelu posla i razmjenu fileova (većinom za BSD Unix, implementirani od strane Sun Microsystemsa) i tako postali široko dostupni komercijelno, zajedno s dijeljenim datotečnim sustavom.

Prvi komercijalni clusterski proizvod bio je ARCnet, kojeg je razvio Datapoint, 1977. Arcnet nije komercijalno uspio, a tako ni clustersko računarstvo sve dok DEC nije izdao VAXcluster proizvod, 1984. za VAX/VMS operacijski sustav. ARCnet i VAXcluster proizvodi nisu samo podržavali paralelno računarstvo, već su također dijelili datotečni/e sustav/e i periferne jedinice. Trebali su pružiti prednosti paralelnog procesiranja, a u isto vrijeme jamčiti i održavati pouzdanost i jedinstvenost podataka. VAX cluster (sada VMS cluster) je još uvijek dostupan na HP-ovim Open VMS sistemima koje izvršavaju Alpha i Itanium serveri.

Druga dva rana komercijalna clustera vrijedna spominjanja bila su Tandem Himalaya (široko dostupan proizvod, oko 1994.) i BM S/390 Parallel Sysplex (također oko 1994., poslovna klasa)

Nijedna povijest commodity clustera ne bi bila potpuna bez spominjanja velike uloge koju je odigrao razvoj PVM-a (paralelan virtualan stroj), 1989. Ovaj software otvorenog koda je baziran na TCP/IP komunikacijski omogućenoj instantnoj kreaciji virtualnog superračunala – računalnog clustera visokih performansi – koristeći bilo koje TCP/IP spojene sustave. Heterogeni clusteri slobodnog oblika izgrađeni na temelju ovog modela su brzo dostizali ukupnu brzinu u FLOPS-ima koja je bila puno veća i od one dostupne sa skupim "big iron" superračunalima. PVM i razvoj jeftinih umreženih PC-ja doveli su 1993. do NASA-inog projekta izgradnje superračunala iz commodity clustera. 1995. izum cluster-a "beowulf" stila[2]računalni cluster sagrađen na temelju commodity mreža da "bude superračunalo" s mogućnošću izvođenja usko povezanih paralelnih HPC proračuna. Ovo je, zauzvrat, potaknulo nezavisan razvoj Grid računarstva kao zasebnog pojma, iako su Grid clusteri poznati otkad je imenovan Unix operacijski sustav, Arpanet i clusteri koji su ih koristili.

Clusterske tehnologije[uredi | uredi kôd]

MPI je širokodostupna biblioteka za komunikaciju koja omogućuje paralelno programiranje u C, Fortran-u, Python-u, OCaml-u, i mnogim drugim programskim jezicima.

GNU/Linux podržava raznolik clusterski software, kao što je:

  • Beowulf, distcc, MPICH i ostali - uglavnom specijalizirane clusterske aplikacije. distcc omogućava paralelno kompiliranje, kad je korišten s GCC-om.
  • Linux Virtual Server, Linux-HA - upravljačko-temeljeni clusteri koji omogućuju raspoređivanje dolaznih zahtjeva za uslukama preko više clusterskih čvorova
  • MOSIX, openMosix, Kerrighed, OpenSSI - punokrvni clusteri integrirani u kernel koji omogućuje migraciju procesa između homogenih čvorova. OpenSSI, openMosix i Kerrighed su single-system image implementacije.

Microsoft Windows Compute Cluster Server 2003 baziran na Windows Server platformi daje alate visokih performansi kao što su Job Scheduler, MSMPI library i upravljački alati.

NCSA's nedavno instaliran cluster Lincoln je cluster od 450 Dell PowerEdge™ 1855 blade servera koji izvršavaju Windows Compute Cluster Server 2003. Cluster je predstavljen na #130 Top500 liste u Lipnju 2006.

DragonFly BSD, nedavni fork FreeBSD-a 4.8 se redizajnira u srži da bi omogućio prirodno okruženje za clusterski rad. Također, pokušava postići single-system image mogućnosti.

Clusterski softver[uredi | uredi kôd]

Clusterski proizvodi[uredi | uredi kôd]

Povezani članci[uredi | uredi kôd]

Izvori[uredi | uredi kôd]

  1. TOP500 List - June 2006 (1-100). Inačica izvorne stranice arhivirana 24. veljače 2007.
  2. Beowulf.org: Overview -- History. www.beowulf.org. Pristupljeno 8. siječnja 2024.

Vanjske poveznice[uredi | uredi kôd]

Logotip Zajedničkog poslužitelja
Logotip Zajedničkog poslužitelja
Zajednički poslužitelj ima stranicu o temi Cluster