Klaster računari

Iz Vikipedije, slobodne enciklopedije
Idi na: navigaciju, pretragu
Tehničar koji radi na velikom Linux klasteru na Chemnitz University of Technology, Germany
Sun Microsystems Solaris Cluster

Klaster računari se sastoje od skupa slabo ili čvrsto povezanih računara koji rade zajedno, tako da se u mnogim aspektima oni mogu posmatrati kao jedan sistem.

Kompenente klastera su obično međusobno povezane brzim lokalnim mrežama, sa svakim čvorom (računar korišćen kao server) koji izvršava svoju instancu operativnog sistema. Klaster računari su nastali kao rezultat konvencije brojnih računarskih trendova, uključujući dostupnost jeftinih mikroprocesora.

Klasteri su obično raspoređeni da poboljšaju performanse i dostupnost preko jednog računara, i obično su mnogo isplativiji nego pojedinačni računari uporedive brzine i dostupnosti.[1]

Klaster računari imaju široki spektar primene i razvoja, u rasponu od malih poslovnih klastera sa nekolicinom čvorova do nekih najbržih superkomjutera na svetu, kao što je IBM-ov Sequoia.[2]

Jednostavan, napravljen kod kuće Beowulf klaster.

Osnovni koncepti[uredi]

Želja da se dobije više računarske snage i bolja pouzdanost pomoću organizovanja brojnih jeftinih komercijalnih, iz prodavnice, računara, dovela je do raznih arhitektura u konfiguracija.

Pristup računarskom grupisanju obično (ali ne uvek) povezuje više lako dostupnih računarskih čvorova (npr. personalni računari se koriste kao serveri) putem brze lokalne mreže.[3] Aktivnosti kompjuterskih čvorova su organizovani od strane "clustering middleware", softverskog sloja koji se nalazi na vrhu čvorova i omogućava korisnicima da tretiraju klaster kao jedanu veliku kohenzivnu računarsku jedinicu, npr. preko jednog koncepta sistema slika.[3]

Grupisanje računara oslanja se na centralizovani upravljački pristup koji čini čvorove dostupnim kao usaglašeni deljeni serveri. To se razlikuje od drugih pristupa, kao što su peer to peer ili grid računari koji takođe koriste dosta čvorova, ali sa mnogo više distributivne prirode.[3]

Klaster računar može biti jednostavni dvo-čvorni sistem koji samo povezuje dva personalna računara, ili može biti veoma brz superkompjuter. Osnovni pristup izgradnji klastera je da od Beowulf klastera, koji može biti izgrađen sa nekoliko personalnih računara, da se proizvede isplativa alternativa za tradicionalne računare visokih performansi. Rani projekat koji je pokazao održivost koncepta bio je 133 nodes Stone Soupercomputer.[4] Porizvođači su koristili Linux, the Parallel Virtual Machine skup alata i Message Passing Interface biblioteku za postizanje visokih performansi za relativno nisku cenu.[5]

Iako se klaster može sastojati od samo nekoliko personalnih računara povezanih prostom mrežom, klaster arhitektura se takođe može koristiti za postizanje veoma visokih performansi. TOP500 organizacioni polugodišnji list od 500 najbržih [Superračunar|superračunara]] često uključuje mnoge klastere, npr. najbrža mašina na svetu u 2011. godini je bio K računar koji ima distributivnu memoriju, klaster arhitekturu.[6][7]

Istorija[uredi]

VAX 11/780, c. 1977

Greg Pfister je izjavio da klastere nije izmislio nijedan konkretan proizvođač, nego kupci koji nisu mogli da smeste sav svoj rad na jedan računar, ili im je bila potrebna rezervna kopija.[8] Pfister-ove procene datiraju negde 1960. godine. Formalnu inžinjersku osnovu klaster računara kao sredstva koje radi paralelan rad bilo koje vrste je verovatno izmislio Gene Amdahl iz IBM-a, koji je 1967. godine objavio, posmatrajući ono što je došlo, kao iskonski papir paralelnog procesiranja: Amdahl's zakon.

Istorija ranih kompjuterskih klastera je više ili manje direktno povezana sa istorijom ranih mreža, kako je jedan od primarnih motiva za razvoj mreže bio povezivanje računarskih resursa, i stvaranje de facto klaster računara.

Prvi komercijalni klaster proizvod bio je ARCnet, razvijen od Datapoint 1977. godine. Grupisanje samo po sebi nije baš krenulo dok Digital Equipment Corporation nije predstavio svoj VAXcluster proizvod 1984. godine za VAX/VMS operativni sistem. ARCnet i VAXcluster proizvodi ne samo da su podržavali paralelno računanje, već i podelili sisteme datoteka i periferne uređaje. Ideja je bila da se obezbedi prednost paralelnog procesiranja, zadržavajući pouzdanost i jedinstvenost podataka. Dva druga vredna pažnje rana komercijalna klastera su bili Tandem Himalayan (oko 1994 visoko-dostupan proizvod) i IBM S/390 Parallel Sysplex (takođe oko 1994, pre svega za poslovnu upotrebu).

U istom vremenskom okviru, dok su klaster računari koristili paralelizam izvan računara na robnoj mreži, superkompjuteri su počeli da ih koriste u okviru istog računara. Nakon uspeha CDC 6600 1964, Cray 1 je bio isporučen 1976. godine, i uveo je interni paralelizam preko vektora obrade.[9] Dok rani superkompjuteri isključuju klastere i oslanjaju se na deljenu memoriju, u isto vreme neki od najbržih superkompjutera (npr. K kompjuter) su se oslanjali na arhitekturu klastera.

Atributi klastera[uredi]

Klaster računari mogu biti konfigurisani za različite namene, od opštih poslovnih namena, kao što je podrška veb-servera, do numeričko intenzivnih naučnih proračuna. U svakom slučaju, klaster može da koristi visoko-dostupan pristup. Treba imati na umu da atributi opisani u nastavku nisu ekskluzivni i „klaster računar“ može koristiti visoko-dostupan pristup, itd.

Klaster sa balansiranim opterećenjem sa dva servera i 4 korisničke stanice

"Balans-učitavanja“ klastera su konfiguracije u kojima klaster-čvorovi dele računarski posao da bi se obezbedile sveukupne performanse. Na primer, veb-server klaster može dodeliti različite upite na različite čvorove, tako da ukupno vreme odziva bude optimizovano.[10] Međutim, pristup opterećenja-balansiranja može značajno varirati među aplikacijama, na primer klaster visokih performansi korišćen za naučne proračune bi bio drugačije uravnotežen sa drugim algoritmima od veb-server klastera, koji možda koristi jednostavan round-robin metod dodeljivanjem svakog novog zahteva drugom čvoru.[10]

"Klaster računari“ se koriste za intenzivno izračunavanje, pre nego za rukovanja UI-orijentisanim operacijama, kao što su veb servisi ili baze podataka.[11] Na primer, klaster računari mogu podržavati kompjutersku simulaciju sudara automobila ili vremena. Vrlo čvrsto povezani klaster računari su dizajnirani za rad koji može da priđe "superračunarima“.

"Visoko-dostupni klasteri“ (poznati i kao failover klasteri, ili HA klasteri) poboljšavaju dostupnost klaster pristupa. Oni rade tako što imaju suvišne čvorove, koji se koriste za pružanje usluga kada komponente sistema otkažu. HA klaster implementira pokušaj da se koristi redudantnost klaster kompenenti za eliminaciju kvara jednog čvora. Postoje komercijalne implementacije Visoko-Dostupnih klastera za mnoge operativne sisteme. Linux-HA projekat je jedan koji je koristio besplatni softver HA paketa za Linux operativni sistem.

Prednosti[uredi]

Niska cena: Kupci mogu eliminisati troškove i složenost nabavke, podešavanjem i rukovanjem HPC klastera sa niskom, pay-as-you-go cenom, Dalje, troškovi mogu da se optimizuju usklaćivanjem jednim od nekoliko cenovnih modela: On Demand, Reserved or Spot Instances.

Elastičnost: Mogu da se dodaju ili uklone računarski resursi da bi se zadovoljila veličina i vremenski zahtevi za dati obim posla.

Pokretanje poslova bilo kada i bilo gde: Može se pokrenuti računanje poslova koji koriste jednostavni APIs ili upravljanje alatima i automatizacija tokova posla za maksimalnu efikasnost i skalabilnost. Može da se poveća brzina inovacije pristupanjem računarskih resursa u minutu umesto trošenja vremena u redovima.

Dizajn i konfiguracija[uredi]

Jedno od pojedinosti u dizajniranju klastera je koliko čvrsto mogu biti povezani individualni čvorovi. Na primer, posao za jedan računar može zahtevati česte komunikacije među čvorovima: ovo podrazumeva da klaster deli namensku mrežu, gusto lociranu, a verovatno ima homogene čvorove. Druga krajnost je gde računarski posao koristi jedan ili više čvorova, i treba malo ili nimalo komunikacije među čvorovima, što je približavanje grid-a računaru.

Tipična Beowulf konfiguracija

U Beowulf sistemu, programi aplikacija nikade ne vide računarske čvorove (zovu se i računarski robovi), već su u interakciji samo sa „Masterom“ koji je određeni računar koji rukovodi raspoređivanjem i upravljanjem robovima.[11] U tipičnoj implementaciji Master ima dva mrežna interfojsa, jedan koji komunicira sa privatnom Beowulf mrežom za robove, i drugi za opštu namenu mreže organizacije.[11] Rob računari obično imaju svoju verziju istog operativnog sistema, i lokalnu memoriju i prostor na disku. Međutim, privatne rob mreže mogu imati veliku i podeljenu serversku datoteku koja skladišti globalno postojane podatke, pristupanjem robova kada je potrebno.[11]

Nasuprot tome, posebna namena 144 čvornog DEGIMA klastera je podešenost da radi astrofizične N-body simulacije korišćenjem Multiple-Walk paralelnog treecode-a, pre nego opšta namena naučnih izračunavanja.[12]

Zbog sve veće snage računanja u svkoj novoj generaciji igračkih konzola, nova upotreba se pojavila gde su one promenile svrhu u High-performance computing (HPC) klastere. Neki primeri igračke konzole klastera su Sony PlayStation klasteri i Microsoft Xbox klasteri. Drugi primer potrošačkih igračkih proizvoda je Nvidia Tesla Personal Supercomputer radna stanica, koja koristi više procesorskih čipova sa grafičkim akceleratorima.

Računarski klasteri su se kroz istoriju kretali na fizički odvojenim računarima sa istim operativnim sistemom. Sa pojavom virtualizacije, klaster čvorovi mogu raditi na fizički odvojenim računarima sa različitim operativnim sistemima, koji su gore obojeni sa virtuelnim slojem, da izgledaju slično. Klaster takođe može biti virtuelizovan na različite konfiguracije kako se odvija održavanje. Primer implementacije je Xen kao virtuelizacija upravljanja sa Linux-HA.[13]

Deljenje podataka i komunikacija[uredi]

Deljenje podataka[uredi]

Nehalem klaster

Kako su se klaster računari pojavili tokom 1980. godina, tako su se pojavili i superkompjuteri. Jedan od elemenata koji je razlikovao tri klase u to vreme bio je taj da su se rani superkompjueri oslanjali na deljenu memoriju. Danas klasteri obično ne koriste fizički podeljenu memoriju, dok su ih mnoge superkompjuterske arhitekture takođe napustile. Međutim, upotreba sistema klaster datoteka je neophodna u savremenim računarskim klasterima. Primer uključuje IBM General Parallel File System, Microsoft's Cluster Shared Volumes ili the Oracle Cluster File System.

Prenošenje poruka i komunikacija[uredi]

Dva široko korišćena pristupa za komunikaciju izmeću klaster čvorava su MPI, Message Passing Interface i PVM, Parallel Virtual Machine.[14]

PVM je razvijen u Oak Ridge National Laboratory oko 1999. godine pre nego što je MPI bio dostupan. PVM mora biti direktno instaliran na svakom čvoru klastera i obezbećuje skup softverskih biblioteka koje boje čvor kao „paralelnu virtuelnu mašinu ". PVM obezbećuje run-time okruženje za prenošenje poruka, zadatke i upravljanje resursima, i obaveštavanje o greškama. PVM može da se koristi od strane korisničkog programa napisanog u C, C++, ili Fortran-u, itd.[14][15]

MPI se pojavio u ranim 1990. godinama iz diskusije između 40 organizacija. Početni napori bili su podržani od strane ARPA-a i National Science Foundation. Umesto novog početka, dizajn MPI nacrtan je na različitim dostupnim funkcijama u komercijalnim sistemima tog vremena. MPI specifikacije su dovele do konkretnih implementacija. MPI implementacije obično koriste TCP/IP i soket konekcije.[14] MPI je sada široko dostupan komunikacioni model koji omogućava, da paralelni programi budu napisani u jezicima kao što su C, Fortran, Python, itd.[15] Tako, za razliku od PVM-a koji pruža konkretnu implementaciju, MPI je specifikacija koja se implementira u sisteme kao što su PICH i Open MPI.[15][16]

Upravljanje klastera[uredi]

Jeftini i mali klaster od Cubieboard, koji koristi Apache Hadoop na Lubuntu

Jedan od izazova u korišćenju klaster računara je cena administriranja koja može ponekad biti visoka kao i cena administriranja N nezavisnih mašina, ako klaster ima N čvorova. U nekim slučajevima to daje prednost arhitekturi deljene memorije sa manjim troškovima administracije. Zbog lakše administracije napravljene virtuelne mašine postale su popularne.

Raspoređivanje zadataka[uredi]

Kada veliki više-korisnički klaster treba da pristupi veoma velikoj količini podataka, raspoređivanje zadataka postaje izazov. U heterogenim CPU-GPU klasterima, koji imaju složeno aplikativno okruženje, performansa svakog posla zavisi od karakteristika osnovnog klastera, a mapiranje zadataka na CPU jezgru i GPU uređaja obezbećuje značajne izazove.[17] Ovo je oblast tekućih istraživanja i algoritama koji kombinuju i proširuju MapReduce i Hadoop su bili predloženi i studirani.[17]

Upravljanje kvara čvora[uredi]

Kad čvor u klasteru otkaže, strategije kao što su "fencing" mogu se koristiti da bi ostatak sistema ostao operativan.[18][19] Fencing je proces izolovanja čvora ili zaštite deljenih resursa kada se pojavljuje pokvaren čvor. Postoje dve klase fencing metode; jedna onemogućava sam čvor, a druga onemogućava pristup resursima kao što je deljeni disk.[18]

STONITH metod, je skraćenica za "Shoot The Other Node In The Head", što znači da se sumnjivi čvor onemogućava ili isključuje. Na primer, power fencing koristi kontroler napajanja da isključi neizlečivi čvor.[18]

Resursi fencing pristupa ne dozvoljavaju pristup resursima bez isključivanja čvora. Ovo može uključiti trajnu rezervaciju fencing preko SCSI3, vlaknastog Channel fencing da onemogući port vlaknastog kanala ili globalna mreža blok uređaja (GNBD) fencing da onemogući pristup GNBD serveru.

Razvoj softvera i administracija[uredi]

Paralelno programiranje[uredi]

Balansiranje opterećenja klastera, kao što su veb severi koriste klaster arhitekturu za podršku velikog broja korisnika i obično svaki korisnički zahtev je usmeren na određeni čvor, postizanjem paralelizma zadatka bez više-čvorne saradnje, s obzirom da je glavni cilj sistema omogućavanje brzog pristupa korisnika deljenim podacima. Međutim, „klaster računari“ koji obavljaju složene proračune za mali broj korisnika traba da iskoriste prednost mogućih paralelnih obrada i podela „istoga računanja " između nekoliko čvorova.[20]

Automatski paralelizam programa i dalje ostaje tehnički izazov, ali paralelni modeli programiranja mogu biti korišćeni kako bi se izvršila viši stepen paralelizma putem istovremenog izvršavanja odvojenih delova programa na različitim procesorima.[20][21]

Dibagovanje i monitoring[uredi]

Razvoj i dibagovenje paralelnih programa na klasteru zahtevaju paralelne jezičke primitive kao odgovarajuće pogodne alate kao što su oni raspravljali u High Performance Debugging Forum (HPDF) što je rezultovalo HPD specifikacijama.[15][22] Alati kao što su TotalView su tada razvijeni u cilju dibagovanja paralelnih implementacija na klaster računarima koji koriste MPI ili PVM za prenos poruka.

Berklijev NOW (Network of Workstations) sistem prikuplja klaster podatke i skladišti ih u bazi podataka, dok sistemi kao PARMON, razvijeni u Indiji, omogćavaju vizuelni pregled i upravljanje velikim klasterima.[15]

Application checkpointing može da se koristi za vraćanje datog stanja sistema kada čvor otkaže tokom za vreme više-čvornog računanja.[23] Ovo je od suštinskog značaja u velikim klasterima, s obzirom da se broj čvorova povećava, pa tako raste verovatnoća kvara čvora pod teškim računarskim operacijama. Checkpointing može vratiti sistem u stabilno stanje tako da obrada može da se nastavi bez potrebe za preračunavenjem rezultata.[23]

Cena performanse[uredi]

Klasteri mogu da obezbede značajne prednosti performansi naspram cene. Sistem X superkompjuter na Virginia Tech, 28. najmoćniji superkompjuer na Zemlji, do juna 2006. godine,[24] je 12.25 Tflops klaster računar od 1100 Apple XServe G5 2.3 GHz dvo-procesorske mašine (4 GB RAM, 80 GB SATA HD) koja izvršava Mac OS X i koristi InfiniBand povezivanje.

Neke implementacije[uredi]

GNU/Linux svet podržava različite klaster softvere; za aplikacije klastera, postoji distcc, i MPICH. Linux Virtual Server, Linux-HA direktor na bazi klastera koji omogućava da dolazni zahtevi za usluge budu podeljeni na više klaster čvorova. MOSIX, openMosix, Kerrighed, OpenSSI su potpuno klaster integrisani u kernel da obezbede automatsku migraciju procesa među homogenim čvorovima. OpenSSI, openMosix and Kerrighed su jedan-sistem slikovnih implementacija.

Microsoft Windows Compute Cluster Server 2003 zasnovan na Windows Server platformi obezbeđuje delova za High Performance Computing kao Job Scheduler, MSMPI biblioteka i alati za upravljanje.

gLite je skup posredničkh tehnologija kreiranih od projekta Enabling Grids za E-sciencE (EGEE).

Slurm se takođe koristi za raspoređivanje i upravljanje nekim od najvećih superkompjutera klatera (vidi top500 listu).

Ostali pristupi[uredi]

Iako je većina klaster računara stalno raspoređena, napravljeni su pokušaji flash mob računarstva da se izgrade kratkotrajni klasteri za određeno izračunavanje. Međutim, veće razmere volonterskih računarskih sistema, kao što je BOINC-zasnovan sistem imaju više sledbenika.

Reference[uredi]

  1. Bader, David; Robert Pennington (1996). „Cluster Computing: Applications”. Georgia Tech College of Computing. Pristupljeno 13. 7. 2007. 
  2. „Nuclear weapons supercomputer reclaims world speed record for US”. The Telegraph. 18. 6. 2012. Pristupljeno 18. 6. 2012. 
  3. 3,0 3,1 3,2 Network-Based Information Systems: First International Conference, NBIS 2007 ISBN 3-540-74572-6. str. 375.
  4. Hargrove, William W., Forrest M. Hoffman and Thomas Sterling (16. 8. 2001). „The Do-It-Yourself Supercomputer”. Scientific American. 265 (2). str. 72—79. Pristupljeno 18. 10. 2011. 
  5. Hargrove, William W. and Forrest M. Hoffman (1999). „Cluster Computing: Linux Taken to the Extreme”. Linux magazine. Pristupljeno 18. 10. 2011. 
  6. TOP500 list To view all clusters on the TOP500 select "cluster" as architecture from the sublist menu.
  7. M. Yokokawa et al The K Computer, in "International Symposium on Low Power Electronics and Design" (ISLPED) 1-3 Aug. (2011). str. 371-372
  8. Pfister (1998). str. 36.
  9. Mark Donald Hill; Norman Paul Jouppi; Gurindar Sohi (1999). Readings in computer architecture. str. 41—48. ISBN 978-1-55860-539-8. 
  10. 10,0 10,1 High Performance Linux Clusters by Joseph D. Sloan 2004 ISBN 0-596-00570-9 page
  11. 11,0 11,1 11,2 11,3 High Performance Computing for Computational Science - VECPAR 2004 by Michel Daydé, Jack Dongarra 2005 ISBN 3-540-25424-2 pages 120-121
  12. Hamada T. et al. (2009) A novel multiple-walk parallel algorithm for the Barnes–Hut treecode on GPUs – towards cost effective, high performance N-body simulation. Comput. Sci. Res. Development 24:21-31. doi:10.1007/s00450-009-0089-1
  13. Maurer, Ryan: Xen Virtualization and Linux Clustering
  14. 14,0 14,1 14,2 Milicchio & Gehrke (2007). str. 339-341.
  15. 15,0 15,1 15,2 15,3 15,4 PRABHU (2008). str. 112.
  16. Gropp, William; Lusk, Ewing; Skjellum, Anthony (1996). „A High-Performance, Portable Implementation of the MPI Message Passing Interface”. Parallel Computing. CiteSeerX: 10.1.1.102.9485. 
  17. 17,0 17,1 K. Shirahata, et al Hybrid Map Task Scheduling for GPU-Based Heterogeneous Clusters in: Cloud Computing Technology and Science (CloudCom), 2010 Nov. 30 2010-Dec. 3. 2010. ISBN 978-1-4244-9405-7. стр. 733-740.. [1]
  18. 18,0 18,1 18,2 Alan Robertson Resource fencing using STONITH. IBM Linux Research Center, 2010 [2]
  19. Vargas, Bianco & Deeths (2001). стр. 58.
  20. 20,0 20,1 Blum & Aho (2011). стр. 156.
  21. Rauber & Rünger (2010). стр. 94.
  22. A debugging standard for high-performance computing by Joan M. Francioni and Cherri Pancake, in the "Journal of Scientific Programming" Volume 8 Issue 2, April 2000 [3]
  23. 23,0 23,1 Computational Science-- ICCS 2003: International Conference edited by Peter Sloot 2003 ISBN 3-540-40195-4 pages 291-292
  24. TOP500 List - June 2006 (1-100) | TOP500 Supercomputing Sites

Литература[uredi]

Референце[uredi]

Литература[uredi]