Lygiagretusis skaičiavimas: klasteriai. Klasterinės skaičiavimo sistemos ir jų architektūra. Apkrovos balansavimo klasteris

Šiuolaikinės inžinerijos viršūnė yra „Hewlett-Packard Integrity Model SD64A“ serveris. Didžiulė SMP sistema, kurioje integruoti 64 1,6 GHz Intel Itanium 2 procesoriai su 256 GB RAM, didžiulis našumas, įspūdinga 6,5 ​​mln. USD kaina...

Šiuolaikinės inžinerijos viršūnė yra „Hewlett-Packard Integrity Model SD64A“ serveris. Didžiulė SMP sistema, kurioje integruoti 64 1,6 GHz Intel Itanium 2 procesoriai su 256 GB RAM, didžiulis našumas, įspūdinga 6,5 ​​mln. USD kaina...

Apatinė naujausio penkių šimtų greičiausių pasaulio kompiuterių reitingo eilutė: „SunTrust Banks Florida“ įmonių grupei priklausantis klasteris, pagrįstas HP ProLiant BL-25p blade serveriais. 480 Intel Xeon procesoriai 3,2 GHz; 240 GB RAM. Kaina nesiekia milijono dolerių.

Pasirodo kažkaip keistai, reikia pripažinti: šeši su puse milijono dolerių už 64 procesorių serverį ir dešimt kartų mažiau – už 480 procesorių superkompiuterį, maždaug panašų atminties ir disko posisteme, bet to paties gamintojo. Tačiau tai keista tik iš pirmo žvilgsnio: abu kompiuteriai turi labai mažai bendro. SD64A yra „klasikinės“ simetrinio daugiaprocesio (SMP) krypties atstovas, kuris mums gerai žinomas iš įprastų serverių ir kelių branduolių sistemų, leidžiantis naudoti „tradicinę“ lygiagrečią programinę įrangą. Tai krūva procesorių, daug RAM ir labai sudėtinga sistema, sujungianti juos (ir serverio periferiją) į vieną visumą; be to, net labai brangūs procesoriai (po 4 tūkst. dolerių už kiekvieną) ir didžiulis kiekis RAM (200 dolerių už kiekvieną gigabaitą) yra tik maža dalis šios „vienijančios“ serverio dalies kainos. „SunTrust Bank Florida“ aparatas yra šiuolaikinės „klasterių“ krypties atstovas ir, tiesą sakant, tėra įprastų „nebrangių“ (po porą tūkstančių dolerių už vienetą) kompiuterių, prijungtų prie eterneto tinklo, rinkinys. Serverio stovas, laidų komplektas, maitinimo ir aušinimo sistema – tai viskas, ką šie kompiuteriai turi bendro.

Kas yra klasteris?

Standartinis apibrėžimas yra toks: klasteris yra skaičiavimo mazgų (visiškai nepriklausomų kompiuterių), sujungtų didelės spartos tinklu (sujungti) ir specialia programine įranga sujungtų į loginę visumą, rinkinys. Tiesą sakant, paprasčiausią klasterį galima surinkti iš kelių asmeninių kompiuterių, esančių tame pačiame vietiniame tinkle, tiesiog juose įdiegus atitinkamą programinę įrangą /15844), kas vis dar aktualu]. Tačiau tokios schemos veikiau retenybė nei taisyklė: dažniausiai klasteriai (net ir nebrangūs) yra surenkami iš specialiai tam skirtų kompiuterių ir yra sujungti vienas su kitu atskiru vietiniu tinklu.

Kokia tokios sąjungos idėja? Klasteriai yra susiję su superkompiuteriais visą parą, sprendžiančiais kai kurias itin dideles užduotis dešimtyse, šimtuose ir tūkstančiuose skaičiavimo mazgų, tačiau praktikoje yra daug kur kas „žemiškesnių“ klasterių programų. Neretai susidaro klasteriai, kuriuose vieni mazgai, dubliuodami kitus, yra pasirengę bet kurią akimirką perimti valdymą arba, pavyzdžiui, kai kurie mazgai, tikrindami iš kito mazgo gautus rezultatus, radikaliai padidina sistemos patikimumą. Kitas populiarus klasterių panaudojimas yra eilių problemos sprendimas, kai serveris turi atsakyti į daugybę nepriklausomų užklausų, kurios gali būti lengvai išbarstytos po skirtingus skaičiavimo mazgus [Paprastai tai vadinamas serverių ūkiu, taip veikia Google] . Tačiau apie šiuos du, jei norite, „išsigimusius“ klasterių sistemų atvejus praktiškai nėra ką kalbėti – iš trumpo jų aprašymo taip aišku, kaip jos veikia; Todėl mūsų pokalbis bus skirtas superkompiuteriams.
Taigi, superkompiuterių klasteris. Jį sudaro trys pagrindiniai komponentai: iš tikrųjų „kompiuteriai“ – kompiuteriai, kurie sudaro klasterio mazgus; jungtis, jungianti šiuos mazgus į tinklą, ir programinė įranga, kuri leidžia visai struktūrai „pajusti“ kaip vienas kompiuteris. Viskas gali veikti kaip skaičiavimo mazgai - nuo seno nenaudingo asmeninio kompiuterio iki modernaus keturių procesorių serverio, ir jų skaičius niekaip neribojamas (na, išskyrus galbūt kambario plotą ir sveiką protą) . Kuo greičiau ir kuo daugiau – tuo geriau; ir tai, kaip šie mazgai yra išdėstyti, taip pat nesvarbu [Paprastai, siekiant supaprastinti sprendimą ir sudėtingą užduotį subalansuoti skirtingų klasterio mazgų apkrovą, visi klasterio mazgai yra vienodi, tačiau net ir šis reikalavimas nėra absoliutus]. Daug įdomiau yra sujungimas ir programinė įranga.

Kaip organizuojamas klasteris?

Klasterių sistemų kūrimo istorija neatsiejamai susijusi su tinklo technologijų raida. Faktas yra tas, kad kuo daugiau elementų klasteryje ir kuo jie greitesni (ir, atitinkamai, kuo didesnis viso klasterio našumas), tuo griežtesni reikalavimai keliami sujungimo greičiui. Galite surinkti ne mažiau kaip 10 tūkstančių mazgų klasterių sistemą, tačiau jei neužtikrinsite pakankamo duomenų mainų greičio, kompiuterio našumas vis tiek paliks daug norimų rezultatų. Ir kadangi didelio našumo skaičiavimo klasteriai beveik visada yra superkompiuteriai [Klasterių programavimas yra labai daug laiko reikalaujanti užduotis, ir jei įmanoma apsieiti su įprastu SMP architektūros serveriu, turinčiu lygiavertį našumą, jie mieliau tai daro. Todėl klasteriai naudojami tik ten, kur SMP yra per brangus, o iš visų praktinių požiūrių tokio resursų kiekio reikalaujančios mašinos jau yra superkompiuteriai], tada jų sujungimas tiesiog turi būti labai greitas, kitaip klasteris negalės. visiškai atskleisti savo galimybes. Dėl to klasterių kūrimui bent kartą buvo panaudotos beveik visos žinomos tinklo technologijos [net girdėjau apie bandymus naudoti standartinius USB prievadus kaip sujungimą], o kūrėjai dažnai neapsiribojo standartiniais ir išrado „patentuotus“ klasterių sprendimus. , pavyzdžiui, sujungimas, pagrįstas keliomis eterneto linijomis, sujungtomis lygiagrečiai tarp poros kompiuterių. Laimei, visur paplitus gigabitinėms tinklo plokštėms, padėtis šioje srityje darosi vis lengvesnė [Beveik pusė Top 500 superkompiuterių yra Gigabit Ethernet pagrindu veikiantys klasteriai] – jie yra gana pigūs, o daugeliu atvejų jų teikiamos spartos yra pakankamos.

Apskritai, kalbant apie pralaidumą, sujungimas jau beveik pasiekė pagrįstą ribą: pavyzdžiui, rinkoje pamažu pasirodantys 10 gigabitų Ethernet adapteriai priartėjo prie kompiuterio vidinių magistralių greičių, o jei sukuriate tam tikras hipotetines 100 gigabitų Ethernet, tada nebus nei vieno kompiuterio, galinčio perduoti tokį didžiulį duomenų srautą. Tačiau praktikoje dešimties gigabitų vietinis tinklas, nepaisant visų pažadų, yra retas - Ethernet technologija leidžia naudoti tik žvaigždės topologiją, o tokioje sistemoje centrinis jungiklis, prie kurio prijungti visi kiti elementai, tikrai bus kliūtis. . Be to, Ethernet tinklai turi gana didelį delsą [laiką nuo užklausos išsiuntimo iš vieno mazgo iki šios užklausos gavimo kitam mazgu], todėl sunku juos naudoti atliekant „glaudžiai susietas“ užduotis, kai atskiri skaičiavimo mazgai turi aktyviai veikti. keistis informacija. Todėl, nepaisant beveik ribojančio Ethernet sprendimų pralaidumo, klasteriuose plačiai naudojami specifinės topologijos tinklai – senas geras Myrinet, brangūs elitiniai Quadrics, visiškai naujas InfiniBand ir tt Visos šios technologijos yra „paaštrintos“ paskirstytoms programoms ir užtikrina minimalų kiekį. komandų vykdymo delsa ir maksimalus našumas. Vietoj tradicinės „žvaigždės“ iš skaičiavimo elementų statomos plokščios ir erdvinės gardelės, daugiamačiai hiperkubai, trimačio toro paviršiai ir kiti „topologiškai keblūs“ objektai. Šis metodas leidžia vienu metu tinkle perduoti daug duomenų, užtikrinant, kad nebūtų kliūčių, ir padidinant bendrą pralaidumą.

Plėtodami greito sujungimo idėjas atkreipiame dėmesį, pavyzdžiui, į „InfiniBand“ tinklo adapterius, kurie per specialų HTX lizdą jungiasi prie „HyperTransport“ procesoriaus magistralės. Tiesą sakant, adapteris yra tiesiogiai prijungtas prie procesoriaus [Prisiminkite, kad kelių procesorių sistemose, pagrįstose AMD Opteron, tarpprocesorių ryšys vyksta būtent šioje magistralėje]! Geriausi tokių sprendimų pavyzdžiai užtikrina tokį aukštą našumą, kad jų pagrindu sukurti klasteriai savo charakteristikomis priartėja prie klasikinių SMP sistemų ir netgi jas lenkia. Taigi per artimiausius kelis mėnesius rinkoje turėtų pasirodyti įdomus lustas pavadinimu „Chorus“, kuris per keturias „HyperTransport“ magistrales jungiamas prie keturių ar dviejų AMD Opteron procesorių, esančių toje pačioje pagrindinėje plokštėje, o naudojant tris „InfiniBand“ nuorodas galima prisijungti prie dar trijų. Horuses“, valdantys kitus keturis (ar poras) procesorių. „One Chorus“ yra viena pagrindinė plokštė ir vienas palyginti nepriklausomas mazgas su keliais procesoriais, standartiniais „InfiniBand“ laidais sujungtas su likusiais mazgais. Išoriškai atrodo, kad tai klasteris, bet – tik išoriškai: visos pagrindinės plokštės turi bendrą RAM. Iš viso dabartinėje versijoje galima sujungti iki aštuonių „Chorų“ (ir atitinkamai iki 32 procesorių), o visi procesoriai nebeveiks kaip klasteris, o kaip viena SUMA sistema, tačiau išsaugant, pagrindinis klasterių privalumas - maža kaina ir galimybė padidinti galią . Toks yra „superklasteris“, kuris ištrina ribas tarp grupių ir SMP.

Tačiau visi šie nauji sprendimai nėra pigūs – ir pradėjome nuo mažos klasterio kainos. Todėl „Horuses“ ir „Infinibends“, kainuojantys didelius pinigus (po kelis tūkstančius dolerių už kiekvieną klasterio mazgą, kurie, nors ir daug mažiau nei panašios SMP sistemos, vis tiek yra brangūs), yra reti. Universitetams priklausančių „akademinių“ superkompiuterių sektoriuje dažniausiai naudojami pigiausi sprendimai, vadinamieji Beowulf klasteriai, susidedantys iš gigabito ar net šimto megabitų eterneto tinklu sujungtų asmeninių kompiuterių rinkinio, kuriuose veikia nemokamos operacinės sistemos, pvz. Linux. Nepaisant to, kad tokios sistemos surenkamos tiesiogine prasme „ant kelio“, kartais iš jų vis tiek išauga pojūčiai: pavyzdžiui, „big-mac“ yra savadarbis klasteris, surinktas iš 1100 paprastų „mac“, kuris organizatoriams kainuoja. tik 5,2 mln.

GRID tinklai

Ar galima klasterius „tęsti“ mažesnio ryšio kryptimi taip, kaip „tęsdami“ jas kita kryptimi, pasiekėme „Chorus“ lustą ir „beveik SMP“? Gali! Tuo pačiu atsisakome kurti specialų klasterių tinklą, o stengiamės išnaudoti jau turimus resursus – vietinius tinklus ir juos sudarančius kompiuterius. Bendras tokio tipo sprendimų pavadinimas yra GRID technologijos arba paskirstytos skaičiavimo technologijos (jos tikriausiai žinote iš tokių projektų kaip Distributed.Net arba [apsaugotas el. paštas]; šiuose projektuose dalyvaujančių savanorių mašinos yra apkrautos įvairiais skaičiavimais, kurie atliekami tuo metu, kai savininkui nereikia kompiuterio). GRID sistemų kūrėjai nesiruošia apsiriboti tuo, ką pasiekė, ir kelia sau ambicingą tikslą – padaryti skaičiavimo galią tokiu pat prieinamu ištekliu kaip elektra ar dujos bute. Idealiu atveju visi kompiuteriai, prijungti prie interneto per GRID sistemą, turėtų būti sujungti į tam tikrą klasterį ir, kol jūsų kompiuteris neveikia, jo ištekliai bus prieinami kitiems vartotojams, o kai prireiks daugiau energijos, jie jums padės. žmonių „nemokamų kompiuterių, kurių internete gausu (kažkas išėjo išgerti kavos, kažkas naršo ar daro kitus dalykus, kurie neapkrauna procesoriaus). Pirmenybė prieiga prie GRID išteklių bus suteikta mokslininkams, kurie tiesiogine prasme turės savo žinioje pasaulio superkompiuterį; bet paprasti vartotojai taip pat neliks veltui.

Tačiau jei žodžiais viskas atrodo taip nuostabiai, tai kodėl ši šviesi ateitis dar neatėjo? Reikalas tas, kad kuriant GRID iškyla nereikšmingos problemos, kurių spręsti dar niekas tikrai neišmoko. Skirtingai nuo paprasto klasterio, kuriant tokią sistemą, reikia atsižvelgti į tokius veiksnius kaip skaičiavimo mazgų nevienalytiškumas, mažas pralaidumas ir kanalo nestabilumas, daug didesnis vienu metu vykdomų užduočių skaičius, nenuspėjamas sistemos elementų elgesys ir Žinoma, kai kurių vartotojų priešiškumas. Spręskite patys: mūsų tinklo nevienalytiškumas (ir labai stiprus) kyla dėl to, kad prie interneto prijungti įvairūs kompiuteriai; jie turi skirtingas galimybes, skirtingas ryšio linijas ir skirtingus savininkus (kiekvienas turi savo veikimo režimą). Pavyzdžiui, kažkur mokykloje yra trijų dešimčių gigabitinis tinklas, kurį sudaro beveik visada pasiekiami, bet nelabai greiti kompiuteriai, išsijungiantys naktį griežtai nustatytu laiku; o kažkur stovi vienišas pavydėtino našumo kompiuteris, nenuspėjamai per silpną dial-up prijungtas prie Tinklo: taigi pirmu atveju kai kurios užduotys bus atliekamos labai gerai, o antruoju visai kitokios. O norint užtikrinti aukštą visos sistemos našumą, visa tai reikia kažkaip išanalizuoti ir numatyti, kad būtų galima optimaliai suplanuoti įvairių operacijų vykdymą.

Toliau. Sunku ką nors padaryti su blogais komunikacijos kanalais, tačiau negalima laukti šviesios ateities, kai internetas taps greitas ir patikimas, bet jau dabar taikyti efektyvius perduodamos informacijos suspaudimo ir vientisumo kontrolės metodus. Visai gali būti, kad dėl to smarkiai išaugęs kanalų pralaidumas kompensuos tinklo kompiuterių skaičiavimo apkrovą, kuri išaugo dėl glaudinimo ir valdymo poreikio.

Deja, daugybė vienu metu vykdomų užduočių žymiai padidina GRID tinklo valdymo elementų apkrovą ir apsunkina efektyvaus planavimo užduotį, nes šį tinklą valdantys „vadybininkai“ dažnai pradeda reikalauti sau atskiro superkompiuterio, remdamiesi kompleksinės kontrolės ir planavimo poreikis. O planuoti ir vykdyti kontrolę jiems tikrai nelengva ir ne tik dėl planuojamų resursų nevienalytiškumo, bet ir dėl savo „nepatikimumo“. Štai, pavyzdžiui, nenuspėjamas kompiuterio savininko elgesys – atskira istorija. Įprastame klasteryje elemento gedimas yra nenormali situacija, dėl kurios sustabdomi skaičiavimai ir remonto darbai, o GRID atveju vieno elemento gedimas yra normali situacija (kodėl neišjungus kompiuterio, kai jo reikia?). reikia tinkamai apdoroti ir perduoti nepavykusią užduotį kitam mazgui arba iš anksto priskirti tą pačią užduotį keliems mazgams.

Ir galiausiai GRID tinkluose nepabėgsi nuo nedraugiškų vartotojų (ne veltui dabar daug daroma siekiant apsaugoti informaciją). Galų gale, mes turime kažkaip paskirstyti ir suplanuoti užduotis visame tinkle iš visų jo vartotojų - ir jūs niekada nežinote, ką koks nors Vasilijus Pupkinas gali ten paleisti? Šiandien virusai, kurie specialiais Trojos arkliais („zombiais“) užkrečia kompiuterius, prijungtus prie interneto, ir sukuria ištisus užkrėstų mašinų „zombių tinklus“, pasiruošusius daryti viską, ko nori viruso autorius (ar vykdyti paskirstytas DDoS atakas, ar siųsti šlamštą – tai daro). nesvarbu ), kelia rimtą grėsmę, o čia bet kuris asmuo turi galimybę platinti bet kokį kodą šimtams ir tūkstančiams asmeninių kompiuterių per įprastą pašto sistemą. Ir nors ši problema iš principo yra išspręsta (pavyzdžiui, sukuriant virtualias mašinas atliekamoms užduotims atlikti – laimei, greitai aparatinės įrangos virtualizacijos technologijos, kurios leis tai padaryti be didelių sunkumų, taps standartine daugumos naujų kompiuterių savybe), kaip apsisaugoti nuo banalios „išdaigos“ forma paleidžiant beprasmį kodą (tarkim, begalinę kilpą) ir juo teršiant GRID tinklą?

Tiesą sakant, viskas nėra taip liūdna, o GRID kryptimi jau daug nuveikta. Pradėta ir vykdoma dešimtys projektų, kuriuose moksliniams ir pseudomoksliniams tikslams naudojama paskirstyta kompiuterija; GRID tinklai taip pat buvo pradėti naudoti „universitetiniam“ moksliniam naudojimui, ypač CrossGrid, DataGrid ir EUROGRID.

Klasterio programinė įranga

Ir čia viskas akivaizdu ir paprasta: iš tikrųjų per pastaruosius penkerius metus klasterio skaičiavimo standartas buvo tik vienas – MPI (Message Passing Interface). Programos, parašytos naudojant MPI, yra visiškai nešiojamos – jas galima paleisti SMP įrenginyje, NUMA, bet kokio tipo klasteriuose ir GRID tinkle bei iš bet kurios operacinės sistemos. Yra nemažai specifinių MPI diegimų (pavyzdžiui, kiekvienas „patentuoto“ greito ryšio tiekėjas gali pasiūlyti savo MPI bibliotekos versiją savo sprendimui), tačiau dėl suderinamumo galite pasirinkti bet kurį jums patinkantį. (pavyzdžiui, greitis arba konfigūravimo paprastumas). Labai dažnai naudojamas toks atvirojo kodo projektas kaip MPICH, kuris teikia darbą daugiau nei dviejose dešimtyse skirtingų platformų, įskaitant populiariausias - SMP (tarpprocesų komunikacija per bendrinamą atmintį) ir klasteriai su Ethernet jungtimi (tarpprocesų). ryšys per TCP / IP), - jei kada nors sukursite klasterį, patariu pradėti nuo jo.

„Klasikinėse“ SMP sistemose ir kai kuriose NUMA lygiagrečiojo skaičiavimo, naudojant MPI, našumas yra pastebimai prastesnis nei labiau „į aparatinę įrangą“ orientuotų daugiasriegių programų, todėl kartu su „grynaisiais“ MPI sprendimais yra ir „hibridų“, kuriuose Cluster "Apskritai programa veikia naudodama MPI, tačiau kiekviename konkrečiame tinklo mazge (ir kiekvienas klasterio mazgas dažnai yra SMP sistema) veikia MPI procesas, rankiniu būdu sugretintas į kelias gijas. Paprastai tai yra daug efektyviau, bet ir daug sunkiau įgyvendinama, todėl praktikoje tai retai pasitaiko.

Kaip jau minėta, galite pasirinkti beveik bet kurią operacinę sistemą. Klasteriams kurti tradiciškai naudojama Linux (daugiau nei 70 % geriausių 500 sistemų) arba kiti Unix modeliai (likę 30 %), tačiau pastaruoju metu Microsoft taip pat dairosi į šią prestižinę HPC (High Performance Computing) rinką, išleisdama beta versiją. „Windows Compute Cluster Server 2003“ [Galite atsisiųsti šią beta versiją nemokamai], kuri apima „Microsoft“ MPI bibliotekos versiją – MSMPI. Tad „pasidaryk pats“ klasterio organizavimas netrukus gali tapti ne tik unixoidų, bet ir jų mažiau išmanančių kolegų administratorių reikalu, o apskritai – taps daug paprasčiau.

Galiausiai sakome, kad klasterinis kompiuteris toli gražu nėra tinkamas visoms užduotims. Pirma, klasterių skaičiavimo programas reikia „paaštrinti“ rankiniu būdu, savarankiškai planuojant ir nukreipiant duomenų srautus tarp atskirų mazgų. Tačiau MPI labai supaprastina lygiagrečių programų kūrimą ta prasme, kad suprantant to, kas vyksta esmę, atitinkamas kodas yra labai aiškus ir akivaizdus, ​​o tradiciniai lygiagrečių programų nesklandumai, tokie kaip aklavietės ar lygiagretus resursų naudojimas, praktiškai tai daro. neatsiras. Tačiau gali būti gana sunku priversti gautą kodą greitai veikti MPI – dažnai tam reikia rimtai modifikuoti patį programuojamą algoritmą. Apskritai nelygiagrečios ir sunkiai lygiagrečios MPI programos yra prastai įgyvendinamos; o visa kita - daugiau ar mažiau gerai (ta prasme - jie išsiplėtė iki dešimčių, o "geru" atveju - iki tūkstančių procesorių). Ir kuo labiau prijungtas klasteris, tuo lengviau gauti naudos iš lygiagretaus duomenų apdorojimo: klasteryje, sujungtame Myrinet tinklu, programa gali veikti greitai, o panašioje klasteryje, kur Fast Ethernet veikia kaip tarpinis ryšys, ji tiesiog veikia. ne masto (negauna papildomo augimo našumo) per dešimt procesorių. Ypač sunku gauti naudos GRID tinkluose: apskritai ten tinka tik laisvai susietos užduotys su minimaliais pradiniais duomenimis ir stipriu lygiagretumu - pavyzdžiui, tos, kuriose reikia rūšiuoti nemažą skaičių. pasirinkimų.

Tai superkompiuteriai, prieinami visiems šiandien. Ir ne tik įperkama, bet ir paklausesnė visur, kur už nedidelius pinigus reikalingas didelio našumo kompiuteris. Net paprastas vartotojas, mėgstantis atvaizdavimą, gali surinkti nedidelį klasterį iš savo mašinų namuose (atvaizdavimas beveik idealiai lygiagretus, todėl čia nereikia jokių gudrybių) ir smarkiai padidinti darbo našumą [Pavyzdžiui, paketas Maya leidžia organizuoti klasterių atvaizdavimą. net neįtraukiant jokių trečiųjų šalių paketų ir bibliotekų. Pakanka jį įdiegti keliuose vietinio tinklo kompiuteriuose ir sukonfigūruoti serverį bei kelis klientus].

(Beje, šnekant tuo pačiu metu galima nebrangų ir efektyvų klasterį surinkti iš xbox 360 ar PS3, procesoriai ten yra maždaug tokie patys kaip Power, o priedėlį galima nusipirkti ne vieną milijonas.)

Remdamiesi tuo, atkreipiame dėmesį į aukštos kokybės sistemos kūrimo galimybes, kurios yra įdomios kainos atžvilgiu. Žinoma, jis turi būti kelių procesorių. „Intel“ tokioms užduotims atlikti naudoja „Xeon“ procesorius, o AMD – „Opteron“ procesorius.

Jei daug pinigų


Atskirai atkreipiame dėmesį į itin brangią, bet produktyvią procesorių liniją, pagrįstą „Intel Xeon LGA1567“ lizdu.
Aukščiausias šios serijos procesorius yra E7-8870 su dešimčia 2,4 GHz branduolių. Jo kaina yra 4616 USD. Tokiems procesoriams HP ir Supermicro leidimas! aštuonių procesorių! serverio važiuoklė. Aštuoni 10 branduolių Xeon E7-8870 2,4 GHz procesoriai su HyperThreading palaikymu palaiko 8*10*2=160 gijų, kurios Windows užduočių tvarkyklėje rodomos kaip šimtas šešiasdešimt procesoriaus apkrovos grafikų, su 10x16 matrica.

Kad į korpusą tilptų aštuoni procesoriai, jie dedami ne iš karto ant pagrindinės plokštės, o ant atskirų plokščių, kurios įkišamos į pagrindinę plokštę. Nuotraukoje – keturios plokštės su pagrindinėje plokštėje sumontuotais procesoriais (po dvi kiekvienoje). Tai Supermicro sprendimas. HP sprendime kiekvienas procesorius turi savo plokštę. HP sprendimo kaina – nuo ​​dviejų iki trijų milijonų, priklausomai nuo procesorių užpildymo, atminties ir kitų dalykų. „Supermicro“ važiuoklė kainuoja 10 000 USD, o tai yra patrauklesnė. Be to, „Supermicro“ į PCI-Express x16 prievadus gali įdėti keturias bendro procesoriaus išplėtimo plokštes (beje, „Infiniband“ adapteriui dar bus vietos surinkti jų klasterį), o HP turi tik dvi. Taigi, Supermicro aštuonių procesorių platforma yra patrauklesnė kuriant superkompiuterį. Šioje parodos nuotraukoje pavaizduotas superkompiuteris su keturiomis GPU plokštėmis.


Tačiau tai labai brangu.
Kas pigiau
Tačiau yra perspektyva sukurti superkompiuterį su pigesniais AMD Opteron G34, Intel Xeon LGA2011 ir LGA 1366 procesoriais.

Norėdami pasirinkti konkretų modelį, sudariau lentelę, kurioje apskaičiavau kiekvieno procesoriaus kainos / (gyslių skaičius * dažnis) rodiklį. Į skaičiavimą neįtraukiau procesorių, kurių dažnis yra mažesnis nei 2 GHz, o „Intel“ - kurių magistralė yra mažesnė nei 6,4 GT / s.

Modelis
Šerdžių skaičius
Dažnis
Kaina, $
Kaina už šerdį, $
Kaina / branduolys / GHz
AMD





6386SE
16
2,8
1392
87
31
6380
16
2,5
1088
68
27
6378
16
2,4
867
54
23
6376
16
2,3
703
44
19
6348
12
2,8
575
48
17
6344
12
2,6
415
35
13
6328
8
3,2
575
72
22
6320
8
2,8
293
37
13
INTEL





E5-2690
8
2,9
2057
257
89
E5-2680
8
2,7
1723
215
80
E5-2670
8
2,6
1552
194
75
E5-2665
8
2,4
1440
180
75
E5-2660
8
2,2
1329
166
76
E5-2650
8
2
1107
138
69
E5-2687W
8
3,1
1885
236
76
E5-4650L
8
2,6
3616
452
174
E5-4650
8
2,7
3616
452
167
E5-4640
8
2,4
2725
341
142
E5-4617
6
2,9
1611
269
93
E5-4610
6
2,4
1219
203
85
E5-2640
6
2,5
885
148
59
E5-2630
6
2,3
612
102
44
E5-2667
6
2,9
1552
259
89
X5690
6
3,46
1663
277
80
X5680
6
3,33
1663
277
83
X5675
6
3,06
1440
240
78
X5670
6
2,93
1440
240
82
X5660
6
2,8
1219
203
73
X5650
6
2,66
996
166
62
E5-4607
6
2,2
885
148
67
X5687
4
3,6
1663
416
115
X5677
4
3,46
1663
416
120
X5672
4
3,2
1440
360
113
X5667
4
3,06
1440
360
118
E5-2643
4
3,3
885
221
67

Modelis su minimaliu koeficientu paryškintas pusjuodžiu kursyvu, pabrauktas yra galingiausias AMD ir, mano nuomone, savo našumu artimiausias Xeon.

Taigi, mano pasirinkimas superkompiuterio procesorius yra Opteron 6386 SE, Opteron 6344, Xeon E5-2687W ir Xeon E5-2630.

pagrindinės plokštės

PICMG
Įprastose pagrindinėse plokštėse negalima dėti daugiau nei keturių dviejų lizdų išplėtimo kortelių. Yra ir kita architektūra – kryžminių plokščių naudojimas, pavyzdžiui, BPG8032 PCI Express Backplane.


Tokioje plokštėje yra PCI Express išplėtimo plokštės ir viena procesoriaus plokštė, šiek tiek panaši į tas, kurios yra įdiegtos aukščiau aptartuose aštuonių procesorių Supermicro serveriuose. Tačiau tik šios procesorių plokštės atitinka PICMG pramonės standartus. Standartai vystosi lėtai ir šios plokštės dažnai nepalaiko naujausių procesorių. Tokios procesorių plokštės dabar gaminamos daugiausia dviem Xeon E5-2448L – Trenton BXT7059 SBC.

Tokia sistema be GPU kainuotų mažiausiai 5000 USD.

TYAN paruoštos platformos
Už maždaug tiek pat galite įsigyti paruoštą platformą superkompiuteriams TYAN FT72B7015 surinkti. Čia galite įdiegti iki aštuonių GPU ir du „Xeon LGA1366“.
„Įprastos“ serverio pagrindinės plokštės
LGA2011
Supermicro X9QR7-TF – šioje pagrindinėje plokštėje galima įdiegti 4 išplėtimo plokštes ir 4 procesorius.

Supermicro X9DRG-QF – ši plokštė yra specialiai sukurta didelio našumo sistemoms kurti.

Dėl Opteron
Supermicro H8QGL-6F - ši plokštė leidžia įdiegti keturis procesorius ir tris išplėtimo plokštes

Platformos stiprinimas plėtimosi plokštėmis

Šią rinką beveik visiškai užgrobė NVidia, kuri, be žaidimų vaizdo plokščių, gamina ir kompiuterines plokštes. AMD užima mažesnę rinkos dalį ir palyginti neseniai į šią rinką įžengė „Intel“.

Tokių koprocesorių ypatybė yra tai, kad laive yra daug RAM, greiti skaičiavimai su dvigubu tikslumu ir energijos vartojimo efektyvumas.

FP32, Tflops FP64, Tflops Kaina Atmintis, GB
Nvidia Tesla K20X 3.95 1.31 5.5 6
AMD FirePro S10000 5.91 1.48 3.6 6
Intel Xeon Phi 5110P 1 2.7 8
Nvidia GTX Titan 4.5 1.3 1.1 6
Nvidia GTX 680 3 0.13 0.5 2
AMD HD 7970 GHz leidimas 4 1 0.5 3
AMD HD 7990 Devil 13 2x3,7 2x0,92 1.6 2x3

Geriausias „Nvidia“ sprendimas vadinamas „Tesla K20X“, paremtu Keplerio architektūra. Būtent šios kortelės yra galingiausiame pasaulyje superkompiuteryje Titan. Tačiau neseniai „Nvidia“ išleido „Geforce Titan“ vaizdo plokštę. Senesnių modelių FP64 našumas buvo sumažintas iki 1/24 FP32 (GTX680). Tačiau „Titanium“ gamintojas žada gana aukštus dvigubo tikslumo skaičiavimus. AMD sprendimai taip pat yra geri, tačiau jie sukurti remiantis kitokia architektūra, todėl gali būti sunku vykdyti CUDA (Nvidia technologija) optimizuotus skaičiavimus.

„Intel“ sprendimas – Xeon Phi 5110P įdomus tuo, kad visi koprocesoriaus branduoliai yra pagaminti x86 architektūroje ir norint pradėti skaičiavimus nereikia specialaus kodo optimizavimo. Tačiau mano mėgstamiausias koprocesorius yra palyginti nebrangus AMD HD 7970 GHz leidimas. Teoriškai ši vaizdo plokštė parodys maksimalų našumą už kainą.

Galima sugrupuoti

Siekiant pagerinti sistemos našumą, keli kompiuteriai gali būti sujungti į klasterį, kuris paskirstys skaičiavimo apkrovą tarp kompiuterių, kurie yra klasterio dalis.

Naudoti įprastą Gigabit Ethernet kaip tinklo sąsają kompiuteriams prijungti yra per lėta. Šiems tikslams dažniausiai naudojamas Infiniband. „Infiniband“ pagrindinio kompiuterio adapteris yra nebrangus, palyginti su serveriu. Pavyzdžiui, tarptautiniame „Ebay“ aukcione tokie adapteriai parduodami už 40 USD. Pavyzdžiui, X4 DDR adapterio (20Gb/s) pristatymas į Rusiją kainuos apie 100 USD.

Tuo pačiu metu „Infiniband“ perjungimo įranga yra gana brangi. Ir, kaip minėta aukščiau, klasikinė žvaigždė kaip kompiuterių tinklo topologija nėra geriausias pasirinkimas.

Tačiau „InfiniBand“ pagrindinius kompiuterius galima prijungti tiesiogiai vienas prie kito be jungiklio. Tada, pavyzdžiui, ši parinktis tampa gana įdomi: dviejų kompiuterių, sujungtų per infiniband, klasteris. Tokį superkompiuterį galima surinkti ir namuose.

Kiek vaizdo plokščių reikia

Galingiausiame šių laikų superkompiuteryje Cray Titan procesorių ir „vaizdo plokščių“ santykis yra 1:1, tai yra, jame yra 18688 16 branduolių procesoriai ir 18688 Tesla K20X.

Tianhe-1A, Kinijos superkompiuteryje, kurio pagrindas yra ksenonai, santykis yra toks. Du šešių branduolių procesoriai vienai Nvidia M2050 vaizdo plokštei (silpnesnė nei K20X).

Tokį požiūrį į savo mazgus priimsime kaip optimalų (nes pigiau). Tai yra, 12–16 procesoriaus branduolių viename GPU. Žemiau esančioje lentelėje praktiškai galimi variantai pažymėti pusjuodžiu šriftu, mano požiūriu sėkmingiausi – pabraukti.

GPU Šerdys 6 branduolių procesorius 8 branduolių procesorius 12 branduolių procesorius 16 branduolių procesorius
2 24 32 4
5
3
4
2
3
2
2
3 36 48 6
8
5
6
3
4
2
3
4 48 64 8
11
6
8
4
5
3
4

Jei sistema su jau nustatytu procesorių / vaizdo plokščių santykiu gali priimti daugiau skaičiavimo įrenginių, mes juos pridėsime, kad padidintume kūrimo galią.

Taigi kiek tai kainuoja

Toliau pateiktos parinktys yra superkompiuterio korpusas be RAM, standžiųjų diskų ir programinės įrangos. Visuose modeliuose naudojamas AMD HD 7970 GHz Edition vaizdo adapteris. Užduoties prašymu jį galima pakeisti kitu (pavyzdžiui, xeon phi). Kur leidžia sistema, vienas iš AMD HD 7970 GHz leidimų buvo pakeistas trijų lizdų AMD HD 7990 Devil 13.
1 parinktis pagrindinėje plokštėje Supermicro H8QGL-6F


Pagrindinė plokštė Supermikro H8QGL-6F 1 1200 1200
CPU AMD Opteron 6344 4 500 2000
CPU aušintuvas Thermaltake CLS0017 4 40 160
Važiuoklė 1400W SC748TQ-R1400B 1 1000 1000
grafikos greitintuvas AMD HD 7970 GHz leidimas 3 500 1500
5860

Teoriškai pasirodymas bus apie 12 Tflops.
2 parinktis TYAN S8232 pagrindinėje plokštėje, klasteryje


Ši plokštė nepalaiko Opteron 63xx, todėl naudojama 62xx. Pasirinkus šią parinktį, du kompiuteriai yra sugrupuoti per „Infiniband x4 DDR“ su dviem laidais. Teoriškai ryšio greitis šiuo atveju priklauso nuo PCIe x8 greičio, tai yra, 32 Gb / s. Naudojami du maitinimo šaltiniai. Kaip juos derinti tarpusavyje, galima rasti internete.
Kiekis Kaina Suma
Pagrindinė plokštė TYAN S8232 1 790 790
CPU AMD Opteron 6282SE 2 1000 2000
CPU aušintuvas Noctua NH-U12DO A3 2 60 120
Rėmas Antec Twelve Hundred Black 1 200 200
Maitinimo šaltinis FSP AURUM PRO 1200W 2 200 400
grafikos greitintuvas AMD HD 7970 GHz leidimas 2 500 1000
grafikos greitintuvas AX7990 6GBD5-A2DHJ 1 1000 1000
Infiniband adapteris X4 DDR Infiniband 1 140 140
Infiniband kabelis X4 DDR Infiniband 1 30 30
5680 (vienam blokui)

Tokių konfigūracijų klasteriui reikia dviejų ir jų kaina bus tokia $11360 . Jo energijos suvartojimas esant pilnai apkrovai bus apie 3000 W. Teoriškai pasirodymas bus iki 31 Tflops. Blue Gene /L ir SGI Altix šeima.

Windows Compute Cluster Server (CCS) 2003 yra laikoma pagrindine programine įranga, skirta skaičiavimui organizuoti klasterių sistemose. Pateikiamos jos bendrosios charakteristikos ir paslaugų, veikiančių klasterio mazguose, sudėtis.

Šio skyriaus pabaigoje pateikiamos darbo su CCS paleidimo ir darbo valdymo pultu taisyklės. Apibūdinama išsami informacija apie tai, kaip CCS planuoklis veikia vykdant užduočių sekas klasteryje.

1.1. Didelio našumo procesorių ir klasterių sistemų architektūra

Kompiuterių procesorių architektūros raidos istorijoje galima išskirti du pagrindinius etapus:

  • 1 etapas - procesorių laikrodžio dažnio padidinimas (iki 2000),
  • 2 etapas - kelių branduolių procesorių atsiradimas (po 2000 m.)

Taigi metodas, pagrįstas SMP ( Symmetrical MultiProcessing ), kuris buvo sukurtas kuriant didelio našumo serverius, kuriuose keli procesoriai dalijasi sistemos ištekliais ir, visų pirma, RAM (žr. 1.1 pav.), pasikeitė „žemyn“ į branduolių lygis procesoriaus viduje.


Ryžiai. 1.1.

Kelyje į kelių branduolių procesorius pirmą kartą pasirodė Hyper-Threading technologija, pirmą kartą panaudota 2002 m. Intel Pentium 4 procesoriuose:


Ryžiai. 1.2.

Taikant šią technologiją, du virtualūs procesoriai dalijasi visais vieno fizinio procesoriaus ištekliais, ty talpyklomis, vykdymo konvejeriu ir atskirais vykdymo blokais. Tuo pačiu metu, jei vienas virtualus procesorius užėmė bendrą išteklius, antrasis lauks jo išleidimo. Taigi, procesorių su „Hyper-Threading“ galima palyginti su daugiafunkcine operacine sistema, kuri kiekvienam jame vykdomam procesui suteikia savo virtualų kompiuterį su visu įrankių rinkiniu ir planuoja šių procesų eiliškumą bei laiką fizinėje aparatinėje įrangoje. Tik „Hyper-Threading“ atveju visa tai vyksta daug žemesniu aparatinės įrangos lygiu. Tačiau du komandų srautai leidžia efektyviau įkelti procesoriaus vykdymo blokus. Tikrasis procesoriaus našumo padidėjimas naudojant Hyper-Threading technologiją vertinamas 10–20 procentų.

Visavertis dviejų branduolių procesorius (žr. 1.3 pav.) rodo 80–100 procentų našumo padidėjimą atliekant kai kurias užduotis.


Ryžiai. 1.3.

Taigi, dviejų branduolių ir apskritai kelių branduolių procesorius gali būti laikomas miniatiūrine SMP sistema, kuriai nereikia sudėtingų ir brangių daugiaprocesorių pagrindinių plokščių.

Be to, kiekvienas branduolys gali (kaip, pavyzdžiui, Intel Pentium Extreme Edition 840 procesorius) palaikyti „Hyper-Threading“ technologiją, todėl toks dviejų branduolių procesorius vienu metu gali vykdyti keturias programos gijas.

2007 m. pradžioje „Intel“ pristatė 80 branduolių vieno lusto procesorių, pavadintą „Teraflops Research Chip“ (http://www.intel.com/research/platform/terascale/teraflops.htm). Šis procesorius gali pasiekti 1,01 teraflopo našumą esant minimaliam 3,16 GHz branduolio taktiniam dažniui ir 0,95 V įtampai. Tuo pačiu metu bendra Energijos suvartojimas lustas yra tik 62 vatai.

„Intel“ prognozėmis, per ateinančius 5 metus pasirodys komerciniai procesorių variantai su dideliu branduolių skaičiumi, o iki 2010 m. ketvirtadalis visų pristatomų serverių apimties turės teraflopą. spektaklis.

Klasterinės skaičiavimo sistemos ir jų architektūra

klasteris yra vietinė (geografiškai vienoje vietoje esanti) skaičiavimo sistema, susidedanti iš daugybės nepriklausomų kompiuterių ir juos jungiančio tinklo. Be to, klasteris yra vietinė sistema, nes ji valdoma atskirame administraciniame domene kaip viena kompiuterinė sistema.

kompiuterių mazgai iš kurių jį sudaro standartiniai, bendrosios paskirties (asmeniniai) kompiuteriai, naudojami įvairiose srityse ir įvairioms reikmėms. Skaičiavimo mazge gali būti vienas arba keli mikroprocesoriai, pastaruoju atveju sudarant simetrišką (SMP-) konfigūraciją.

Klasterio tinklo komponentas gali būti įprastas vietinis tinklas arba sukurtas remiantis specialiomis tinklo technologijomis, užtikrinančiomis itin greitą duomenų perdavimą tarp klasterio mazgų. Klasterio tinklas yra skirtas integruoti klasterio mazgus ir paprastai yra atskirtas nuo išorinio tinklo, per kurį vartotojai pasiekia klasterį.

Klasterio programinė įranga susideda iš dviejų komponentų:

  • kūrimo/programavimo įrankiai ir
  • išteklių valdymo įrankiai.

Kūrimo įrankiai apima kalbų kompiliatorius, įvairių paskirčių bibliotekas, našumo matavimo įrankius ir derinimo priemones, kurios kartu leidžia kurti lygiagrečias programas.

Išteklių valdymo programinė įranga apima diegimo, administravimo ir darbo eigos planavimo įrankius.

Nors lygiagrečiam apdorojimui yra daug programavimo modelių, šiuo metu dominuoja pranešimų perdavimo modelis, įgyvendintas MPI (Message Passing Interface) standarto forma. MPI yra funkcijų biblioteka, kurią galima naudoti C arba Fortran programose norint siųsti pranešimus tarp lygiagrečių procesų ir taip pat valdyti šiuos procesus.

Šio požiūrio alternatyvos yra kalbos, pagrįstos vadinamąja globaliąja suskirstyta adresų erdve (GPAS), kurios tipiškos atstovės yra HPF (High Performance Fortran) ir UPC (Unified Parallel C) kalbos.

Klasterių sistemų (CS) kūrimas Rusijoje

Klasteris yra modulinė kelių procesorių sistema, sukurta remiantis standartiniais skaičiavimo mazgais, sujungtais didelės spartos ryšio terpe. Dabar žodžiai „klasteris“ ir „superkompiuteris“ iš esmės yra sinonimai, tačiau prieš tai galima būtų pasakyti tiksliai, aparatinė įranga išgyveno ilgą evoliucijos ciklą. Per pirmuosius 30 metų nuo kompiuterių atsiradimo iki devintojo dešimtmečio vidurio „superkompiuterinės“ technologijos buvo suprantamos išskirtinai kaip specializuotų, ypač galingų procesorių gamyba. Tačiau vieno lusto mikroprocesoriaus atsiradimas praktiškai panaikino skirtumą tarp „masinių“ ir „ypač galingų“ procesorių, ir nuo to momento vienintelis būdas sukurti superkompiuterį buvo sujungti procesorius, kad lygiagrečiai būtų išspręsta viena problema. Aleksejus Latsis, vienas iš Rusijos MVS-1000M superkompiuterio kūrėjų, savo knygoje „Kaip sukurti ir naudoti superkompiuterį“ vadina tai „pirmąja superkompiuterio revoliucija“.

Maždaug iki 1990-ųjų vidurio. Pagrindinė superkompiuterių technologijų kūrimo kryptis buvo susijusi su specializuotų daugiaprocesorių sistemų konstravimu iš masinių mikroschemų. Vienas iš atsirandančių požiūrių – SMP (Symmetric Multi Processing), reiškė daugelio procesorių integravimą naudojant bendrą atmintį, o tai labai palengvino programavimą, tačiau kėlė didelius reikalavimus pačiai atminčiai. Beveik neįmanoma išlaikyti tokių sistemų našumo, kai mazgų skaičius padidėjo iki dešimčių. Be to, šis metodas pasirodė esąs brangiausias aparatinės įrangos diegime. Eilės tvarka pigesnis ir beveik be galo keičiamas buvo MPP (Massively Parallel Processing) metodas, kai nepriklausomi specializuoti skaičiavimo moduliai buvo sujungti specializuotais ryšio kanalais, kurie abu buvo sukurti konkrečiam superkompiuteriui ir nebuvo naudojami jokiems kitiems tikslams.

Idėja sukurti vadinamąjį darbo stočių klasterį iš tikrųjų buvo MPP metodo plėtra, nes logiškai mąstant, MPP sistema mažai kuo skyrėsi nuo įprasto vietinio tinklo. Vietinis standartinių asmeninių kompiuterių tinklas su atitinkama programine įranga buvo naudojamas kaip kelių procesorių superkompiuteris ir tapo šiuolaikinio klasterio pirmtaku. Ši idėja buvo toliau plėtojama 1990-ųjų viduryje, kai visur paplito kompiuteriai su didelės spartos PCI ir atsirado pigus, bet greitas tinklas. Fast Ethernet klasteriai pradėjo vytis specializuotas MPP sistemas pagal ryšio galimybes. Tai reiškė, kad iš standartinių serijinių kompiuterių, naudojant nuosekliojo ryšio technologijas, buvo galima sukurti pilnavertę MPP sistemą, o tokia sistema buvo pigesnė vidutiniškai dviem dydžiais.

Štai žinomiausi superkompiuteriai su „pirmosios kartos“ klasterių architektūra: Beowulf (1994 m. NASA Goddard Space Flight Center) – 16 procesorių klasteris, pagrįstas Intel 486DX4/100 MHz procesoriais; Avalon (1998, Los Alamos National Laboratory) – Linux klasteris, pagrįstas Alpha 21164A/533 MHz procesoriais. Iš pradžių „Avalon“ sudarė 68 procesoriai, vėliau jų skaičius išaugo iki 140; 48,6 GFlops* LINPACK testo rezultatai užėmė 113 vietą 12-ajame Top500 galingiausių pasaulio kompiuterių leidime kartu su 152 procesorių IBM RS/6000 SP SMP sistema. Pirmoji vidaus sistema, įtraukta į TorbOO, buvo MVS-1000M klasteris, kurį gamino tyrimų institutas KVANT ir Rusijos mokslų akademijos Taikomosios matematikos institutas. Jį sudarė 384 mazgai, pagrįsti Alpha 21164 procesoriais iš DEC-Compaq.

* Flops (slankiojo kablelio operacijos per sekundę) – slankiojo kablelio operacijų skaičius per sekundę, superkompiuterio našumo matas. GFlops (gigaflops) – milijardas slankiojo kablelio operacijų per sekundę; TFlops (teraflops) – trilijonas slankiojo kablelio operacijų per sekundę. Tikrasis galingiausio šiandieninio superkompiuterio našumas viršija 136 TFlopus; vos prieš metus šis skaičius buvo 35 TFlopai.

Atskirkite didžiausią ir realų superkompiuterių našumą. Daugiaprocesorinės sistemos (klasterio, SMP sistemos ir kt.) didžiausias našumas yra teorinė vertė, kuri praktiškai nepasiekiama. Jis gaunamas padauginus didžiausią procesoriaus našumą iš procesorių skaičiaus sistemoje. Didžiausias procesoriaus našumas paprastai gaunamas padauginus jo laikrodžio greitį iš didžiausio per laikrodžio ciklą atliekamų operacijų skaičiaus. Tikrasis klasterio našumas yra našumas, gaunamas sprendžiant realią problemą (akademinę ar pramoninę). Pavyzdžiui, Top500 reitinge esančios sistemos reitinguojamos pagal LINPACK testo rezultatus – realią akademinę tiesinių lygčių sistemos sprendimo problemą.

Naujas galingas impulsas plėtoti klasterių technologijas, be pažangesnių ryšių tinklų atsiradimo, greitai išaugo naujai išleistų masinių procesorių našumas, todėl didelio našumo sprendimai tapo prieinamesni nei bet kada anksčiau. Pavyzdžiui, SKIF K-500, antrasis vietinis klasteris, įtrauktas į TorbOO, yra sukurtas 128 Intel Xeon procesorių ir SCI sistemos tinklo pagrindu. 2003 m. rudenį sukurtas Rusijos ir Baltarusijos valstybinei superkompiuterių programai SKIF, šis klasteris reitinge užėmė 407 vietą su realiu 423,6 GFlops našumu. Antrasis valstybinės programos „viršutinis“ klasteris „SKIF K-1000“, pagrįstas 576 AMD Opteron procesoriais ir InfiniBand sistemos tinklu, pasirodė 2004 m. spalį ir pateko į Top500 šimtuką su realiu 2032 TFlopų našumu. Abu Baltarusijoje įrengti SKIF klasteriai buvo pastatyti T-Platforms, dalyvaujant Rusijos mokslų akademijos Informacinių sistemų institutui ir Baltarusijos partneriams ir naudoja rusiškas superkompiuterių technologijas. Šiuo metu galingiausias Rusijoje yra MVS 15000BM, kurio realus našumas yra didesnis nei 5,3 Tflops, jis užima 56 vietą Top500 ir yra įdiegtas Tarpžinybiniame superkompiuterių centre (MSC RAS). Klasteris sukurtas iš IBM skaičiavimo mazgų, pagrįstų PowerPC procesoriais ir Myrinet sistemos tinklu.

Sparti klasterių technologijų plėtra pastaraisiais metais aiškiai matyti iš Top500 sąrašo analizės: nuo 2000 iki 2004 metų klasterių dalis sąraše išaugo nuo 2,2% iki 60,8%. Jei 2000 metais tarp 40 galingiausių įrenginių buvo tik du klasteriai (galingiausias – 31 vieta), tai 2004 metais tarp pirmųjų 40 mašinų jų buvo 24). Tuo pačiu metu, remiantis naujausia „Top500“ versija, daugiau nei 71,5% procesorių, naudojamų superkompiuteriams valdyti, yra masinės gamybos „Intel“ ir AMD procesoriai.

Klasterių technologijos taip pat naudojamos naujausiuose pirmaujančių gamintojų superkompiuteriuose: pavyzdžiui, galingiausias šiandieninis IBM BlueGene/L superkompiuteris, kurio našumas didesnis nei 136 TFlops, naudoja daug klasterio architektūros elementų.

Klasterių sistemų taikymo sritis dabar nėra siauresnė nei superkompiuteriai su kitokia architektūra: jie ne mažiau sėkmingai susidoroja su įvairių procesų ir reiškinių modeliavimo užduotimi. Superkompiuterinis modeliavimas gali labai sumažinti išlaidas ir pagreitinti naujų produktų patekimą į rinką, taip pat pagerinti jų kokybę. Pavyzdžiui, užuot kūrę brangius bandomuosius naujų automobilių modelius ir daužę juos į sieną, kad atliktumėte inžinerinius skaičiavimus, kompiuteriniuose modeliuose viską galite apskaičiuoti greičiau ir tiksliau. Dėl šios priežasties daugelis Vakarų automobilių koncernų sugebėjo sutrumpinti naujo automobilio modelio kūrimo laiką penkis kartus - nuo 10 iki 2 metų. Kompiuterinis geofizinių duomenų apdorojimas leidžia sukurti itin detalius naftos ir dujų telkinių modelius, užtikrinančius efektyvesnį, saugesnį ir pigesnį gręžinių kūrimą.

Tai buvo klasterių technologijų plėtra, dėl kurios didelio našumo kompiuteriai tapo plačiai prieinami ir leido jomis pasinaudoti įvairioms įmonėms. Taip pasiskirsto 500 galingiausių pasaulio kompiuterių panaudojimo sritys: 44,3% - kalnakasyba, elektronika, automobilių pramonė, aviacija ir kitos sunkiosios pramonės bei inžinerijos šakos, kiek daugiau nei 20% - mokslas ir švietimas, superkompiuteriai. centrai. Daugiau nei 18 % tenka orų ir klimato tyrimams, 7 % – branduolinėms, kosmoso, energetikos ir karinėms vyriausybės programoms, 3,5 % – finansinėms įmonėms ir bankams. Be to, sąraše yra įmonės ir organizacijos, užsiimančios medicina ir vaistų kūrimu, kompiuterine grafika, transportu, prekyba, maisto gamyba, konsultavimu ir viešuoju administravimu.

Kalbant apie superkompiuterių naudojimą Rusijoje, dabartinis NVS superkompiuterių reitingas Top50, pirmą kartą paskelbtas 2004 m. gruodį, apima tik tris vartotojų klases: mokslo institutus ir universitetus, sunkiosios ir naftos pramonės įmones, taip pat finansines institucijas.

Vidutiniškai vietiniai superkompiuteriai našumu vis dar gerokai atsilieka nuo vakarietiškų: moksliniams tyrimams naudojamos mašinos – 15 kartų, finansinių įmonių kompiuteriniai ištekliai – 10, pramoniniai – 9 kartus. Tačiau antrasis Top50 sąrašo leidimas, paskelbtas 2005 m. balandžio mėn., rodo sparčią pramonės plėtrą. Taigi pramonės sektoriuje veikiančių sistemų skaičius išaugo nuo 2 iki 16%, o vidutinis jų našumas iš karto išaugo 135%. Finansų įmonių ir bankų superkompiuterių skaičius taip pat išaugo nuo 2 iki 18 proc. Moksliniams tyrimams naudojamų superkompiuterių dalis sumažėjo nuo 96% iki 66%, o vidutinis jų našumas padidėjo 70%. Apskritai antroji vietinio superkompiuterių reitingo versija rodo, kad komerciniam naudojimui skirtų sistemų dalis gerokai išaugo. Daugiausia vietinių superkompiuterių tiekė IBM (26%), tačiau Rusijos gamintojai jai tik šiek tiek nusileidžia.


29 skyrius „Išmaniųjų sistemų valdymas“

Santrauka šia tema:

Klasterių sistemos

Užbaigta:

K9-292 grupės mokinys

Popovas I.A.

MASKVA 2001 m

1. Įvadas

2. Pagrindinės šiuolaikinių lygiagrečių kompiuterių klasės

3. Lygiagrečių kompiuterių klasterinė architektūra

4. Klasterių sistemų kūrimo tikslai

5. Perkėlimo klasteriai

6. Didelio našumo klasteriai

7. Projektas Beowulf

8. Išvada

9. Literatūra


Įvadas

Daugiaprocesorinių skaičiavimo sistemų kūrimas

Tradicinių architektūrų, skirtų kurti skaičiavimo sistemas, tokias kaip SMP, MPP, vektorinės lygiagrečios sistemos, kūrimas vyksta gana sparčiai. Padidina našumą, padidina patikimumą ir atsparumą gedimams. Tačiau šios architektūros turi vieną trūkumą – kuriamų sistemų kainą, kartais nepasiekiamą daugeliui tokių sistemų vartotojų – švietimo ir tyrimų organizacijų. Jis pasirodo esąs labai didelis dėl sudėtingų sistemos techninės ir programinės įrangos komponentų, reikalingų tokiems produktyvumo augimo tempams užtikrinti. Tačiau skaičiavimo resursų poreikis šiuo metu yra labai didelis daugelyje mokslinės ir praktinės veiklos sričių, o tradicinių superkompiuterių sistemų resursų jam užtikrinti neužtenka.

Klasterinės sistemos atsirado kaip pigesnis kompiuterinių išteklių trūkumo problemos sprendimas ir yra pagrįstos plačiai paplitusių ir gana pigių technologijų, techninės ir programinės įrangos, tokių kaip PC, Ethernet, Linux ir kt., panaudojimu savo architektūroje. Masinės technologijos panaudojimas klasterių sistemose tapo įmanomas dėl didelės pažangos kuriant įprastų skaičiavimo sistemų komponentus, tokius kaip centriniai procesoriai, operacinės sistemos ir komunikacijos aplinka.

Kadangi klasterių sistemos architektūriškai yra MPP sistemų evoliucija, pasižyminti didžiuliu lygiagretumu, pagrindinis vaidmuo jas kuriant yra pažanga tinklo technologijų srityje. Iki šiol atsirado nebrangių, bet efektyvių komunikacijos sprendimų. Tai iš anksto lėmė spartų klasterinių skaičiavimo sistemų atsiradimą ir plėtrą. Kiti veiksniai taip pat prisidėjo prie klasterių sistemų kūrimo pažangos.

„Intel“ procesoriais pagrįstų asmeninių kompiuterių našumas pastaraisiais metais taip pat labai išaugo. Tokie kompiuteriai pradėjo kurti rimtą konkurenciją dėl darbo stočių, paremtų brangesniais ir galingesniais RISC procesoriais. Tuo pačiu metu vis didesnį populiarumą pradėjo populiarėti ir Linux operacinė sistema – nemokama UNIX versija. Tuo pačiu metu mokslinėse organizacijose ir universitetuose, kur yra sukurta dauguma klasterių sistemų, paprastai dirba Linux OS specialistai.

Aukštą klasterių sistemų išsivystymo laipsnį šiandien rodo tai, kad galingiausių pasaulio superkompiuterių Top500 sąraše yra 11 klasterių įrenginių.


Pagrindinės šiuolaikinių lygiagrečių kompiuterių klasės

Klasterių sistemos yra lygiagrečių sistemų evoliucija. Norint parodyti klasterių sistemų vietą tarp kitų lygiagrečių skaičiavimo sistemų architektūrų tipų, būtina jas klasifikuoti. Lygiagrečios sistemos gali būti klasifikuojamos pagal įvairius kriterijus.

Aparatūros požiūriu pagrindinis lygiagrečių kompiuterių klasifikavimo parametras yra bendrosios (SMP) arba paskirstytos atminties (MPP) buvimas. SMP ir MPP kryžminimas yra NUMA architektūros, kuriose atmintis yra fiziškai paskirstyta, bet logiškai bendrinama.

Simetrinės kelių procesorių sistemos

SMP sistema susideda iš kelių vienarūšių procesorių ir bendros atminties masyvo. Vienas iš metodų, dažnai naudojamų SMP architektūrose kuriant keičiamo dydžio, bendros atminties sistemą, yra vienodai organizuoti prieigą prie atminties per keičiamo atminties procesoriaus kanalą:

Kiekviena prieigos prie atminties operacija interpretuojama kaip operacija procesoriaus-atminties magistralėje. Talpyklų suderinamumą palaiko aparatinė įranga.

SMP kiekvienas procesorius turi bent vieną (ir galbūt daugiau) savo talpyklą.

Galima sakyti, kad SMP sistema yra vienas kompiuteris su keliais lygiaverčiais procesoriais. Visa kita yra vienoje kopijoje: viena atmintis, viena įvesties / išvesties posistemė, viena operacinė sistema. Žodis „peer“ reiškia, kad kiekvienas procesorius gali daryti viską, ką bet kuris kitas. Kiekvienas procesorius turi prieigą prie visos atminties, gali atlikti bet kokią I/O operaciją, pertraukti kitus procesorius ir pan.

Šios architektūros trūkumas yra būtinybė organizuoti procesoriaus-atminties kanalą su labai dideliu pralaidumu.

Masiškai lygiagrečios sistemos

Masiškai lygiagrečią MPP sistemą sudaro vienalytė skaičiavimo mazgai, įskaitant:

  • vienas ar daugiau centrinių procesorių (dažniausiai RISC)
  • vietinė atmintis (tiesioginė prieiga prie kitų mazgų atminties neįmanoma)
  • ryšio procesorius arba tinklo adapteris
  • kietieji diskai ir (arba) kiti įvesties / išvesties įrenginiai

Į sistemą galima įtraukti specialius įvesties/išvesties mazgus ir valdymo mazgus. Mazgai yra sujungti per tam tikrą ryšio priemonę (didelės spartos tinklą, komutatorių ir kt.)

Sistemos su nevienoda prieiga prie NUMA atminties

NUMA (nevienoda prieiga prie atminties), skirtingai nuo įprastos SMP bendrosios atminties architektūros, susideda iš kelių atskirų procesorių, kurių kiekvienas, be savo talpyklos, taip pat turi vietinę atmintį:

Tokioje architektūroje procesorius ir atminties moduliai yra glaudžiai integruoti, todėl prieigos prie vietinės atminties greitis yra daug didesnis nei „kaimyninio“ procesoriaus atminties. Įvesties / išvesties posistemės gali būti kiekvieno mazgo dalis arba sujungtos į tam skirtus įvesties / išvesties mazgus. Jei talpyklos nuoseklumas palaikomas visoje sistemoje, ši architektūra vadinama cc-NUMA.

Paprasčiausias būdas apibūdinti NUMA sistemą yra įsivaizduoti didelę SMP sistemą, padalytą į kelias dalis, šios dalys yra sujungtos komunikacijos magistrale, prijungta prie sistemos magistralių, o kiekviena dalis turi savo pagrindinę atmintį ir I/O posistemį. Štai kas yra NUMA: didelis SMP, suskirstytas į mažesnių, paprastesnių SMP rinkinį. Pagrindinė NUMA problema yra užtikrinti talpyklų darną. Aparatinė įranga leidžia dirbti su visais atskirais pagrindiniais sistemos sudedamųjų dalių (dažniausiai vadinamų mazgais) atminties įrenginiais kaip su viena milžiniška atmintimi.

klasterio architektūra

Apsvarstykite skaičiavimo sistemų klasterio architektūros vietą šioje klasifikacijoje.

Klasteris yra sujungtas ištisų kompiuterių rinkinys, naudojamas kaip vienas išteklius. Sąvoka „visas kompiuteris“ reiškia užbaigtą kompiuterinę sistemą, kurioje yra viskas, ko reikia jos veikimui, įskaitant procesorius, atmintį, įvesties / išvesties posistemį, taip pat operacinę sistemą, posistemes, programas ir kt. Dažniausiai tam tinka asmeniniai kompiuteriai arba lygiagrečios sistemos, kurios gali turėti SMP ir net NUMA architektūrą. Klasteriai yra laisvai susietos sistemos, mazgai jungiami naudojant vieną iš standartinių tinklo technologijų (Fast / Gigabit Ethernet, Myrinet), pagrįsta magistralės architektūra arba jungikliu. Todėl jie yra pigesnė MPP architektūros modifikacija.

Lygiagrečių kompiuterių klasterinė architektūra

Bendri principai

Kaip minėta anksčiau, skaičiavimo klasteris yra kompiuterių, sujungtų į tam tikrą tinklą vienai problemai išspręsti, rinkinys (3 pav.), kuris vartotojui pateikiamas kaip vienas išteklius. Šią klasterio koncepciją 80-ųjų pradžioje pirmą kartą pasiūlė ir įgyvendino Digital Equipment Corporation, kuri vis dar kuria šią technologiją.

Sąvoka „vienas išteklius“ reiškia turėti programinę įrangą, kuri leidžia vartotojams, administratoriams ir programoms manyti, kad yra tik vienas subjektas, su kuriuo jie dirba – klasteris. Pavyzdžiui, klasterio paketų sistema leidžia siųsti apdorojimo užduotį grupei, o ne bet kuriam atskiram kompiuteriui. Sudėtingesnis pavyzdys yra duomenų bazių sistemos. Beveik visi duomenų bazių sistemų pardavėjai turi versijas, kurios veikia lygiagrečiai keliose klasterių mašinose. Todėl programoms, kurios naudoja duomenų bazę, nereikia rūpintis, kur atliekamas jų darbas. DBVS yra atsakinga už lygiagrečių veiksmų sinchronizavimą ir duomenų bazės vientisumo palaikymą.

Klasterį sudarantys kompiuteriai – vadinamieji klasterio mazgai – visada yra santykinai nepriklausomi, o tai leidžia sustabdyti arba išjungti bet kurį iš jų techninės priežiūros darbams ar įdiegti papildomą įrangą, netrikdant viso klasterio.

Vieno procesoriaus asmeniniai kompiuteriai, dviejų ar keturių procesorių SMP serveriai dažniausiai naudojami kaip skaičiavimo mazgai klasteryje. Kiekvienas mazgas paleidžia savo operacinės sistemos kopiją, kuri dažniausiai naudojama kaip standartinės operacinės sistemos: Linux, NT, Solaris ir kt. Mazgų sudėtis ir talpa gali keistis net tame pačiame klasteryje, todėl galima sukurti nevienalytes sistemas. Konkrečios komunikacijos aplinkos pasirinkimą lemia daugybė veiksnių: sprendžiamų užduočių klasės ypatumai, poreikis vėlesniam klasterio išplėtimui ir kt. Į konfigūraciją galima įtraukti specializuotus kompiuterius, pavyzdžiui, failų serverį, ir, kaip taisyklė, suteikiama galimybė nuotoliniu būdu prieiti prie klasterio internetu.

Iš klasterių sistemų architektūros apibrėžimo matyti, kad ji apima labai platų sistemų spektrą. Atsižvelgiant į kraštutinius dalykus, klasteris gali būti laikomas kompiuterių pora, sujungta vietiniu 10 Mbit Ethernet tinklu, taip pat skaičiavimo sistema, sukurta vykdant Cplant projektą Sandijos nacionalinėje laboratorijoje: 1400 darbo stočių, pagrįstų Alpha procesoriais. prijungtas didelės spartos Myrinet tinklu.

Taigi galima pastebėti, kad yra daugybė skirtingų grupių kūrimo galimybių. Tuo pačiu metu naudojamos komunikacijos technologijos ir standartai turi didelę reikšmę klasterių architektūroje. Jie daugiausia lemia užduočių, kurioms galite naudoti šių technologijų pagrindu sukurtus grupes, diapazoną.

Ryšių technologijos klasterių statybai

Klasteriai gali būti statomi tiek specializuotų didelės spartos duomenų perdavimo magistralių, tiek masinio tinklo technologijų pagrindu. Tarp masinio ryšio standartų dažniausiai naudojamas tinklas yra Ethernet arba produktyvesnis jo variantas – Fast Ethernet, dažniausiai pagrįstas komutatoriais. Tačiau didelė pranešimų siuntimo sąnaudos naudojant „Fast Ethernet“ sukelia rimtus užduočių, kurias galima veiksmingai išspręsti tokiame klasteryje, diapazono apribojimus. Jei klasteriui reikia didesnio našumo ir universalumo, reikia naudoti greitesnes ir labiau specializuotas technologijas. Tai yra SCI, Myrinet, cLAN, ServerNet ir kt. Šių technologijų parametrų lyginamosios charakteristikos pateiktos
1 lentelė.

Vėlavimas (MPI)

Pralaidumas (MPI)

180 MB/s

Pralaidumas (aparatinė įranga)

400 MB/s

160 MB/s

150 MB/s

12,5 MB/s

MPI įgyvendinimas

HPVM, MPICH-GM ir kt.

1 lentelė.

Ryšio tinklų veikimą klasterių sistemose lemia kelios skaitinės charakteristikos. Yra dvi pagrindinės charakteristikos: delsa – pradinis vėlavimo laikas siunčiant pranešimus ir tinklo pralaidumas, kuris lemia informacijos perdavimo ryšio kanalais greitį. Tuo pačiu metu svarbios ne tiek standarte deklaruotos smailės charakteristikos, kiek realios, pasiekiamos vartotojo programų lygyje, pavyzdžiui, MPI programų lygyje. Visų pirma, vartotojui iškvietus pranešimo siuntimo funkciją Send(), prieš išeinant iš procesoriaus, pranešimas nuosekliai pereis per visą sluoksnių rinkinį, nulemtą programinės ir techninės įrangos organizavimo ypatumų. reikšmingas delsos verčių standartų suskirstymas. Delsos buvimas lemia tai, kad mažo ilgio pranešimuose negalima pasiekti maksimalaus perdavimo greičio tinkle.

Duomenų perdavimo tinkle greitis naudojant Fast Ethernet ir Scalable Coherent Interface (SCI) technologijas priklauso nuo pranešimo ilgio. Fast Ethernet pasižymi didele delsos reikšme – 160–180 µs, o SCI delsa yra apie 5,6 µs. Maksimalus tų pačių technologijų perdavimo greitis yra atitinkamai 10 MB/s ir 80 MB/s.

Klasterių sistemų kūrimo tikslai

Klasterių sistemų architektūros dizaineriai kurdami siekė įvairių tikslų. Pirmasis buvo skaitmeninė įranga su VAX / VMS klasteriais. Šios mašinos sukūrimo tikslas buvo padidinti sistemos patikimumą, užtikrinti aukštą sistemos prieinamumą ir atsparumą gedimams. Šiuo metu yra daug panašios architektūros sistemų iš kitų gamintojų.

Kitas klasterių sistemų kūrimo tikslas – sukurti pigias didelio našumo lygiagrečias skaičiavimo sistemas. Vienas pirmųjų projektų, davęs pavadinimą visai lygiagrečių sistemų klasei – Beowulf klasteriui – atsirado NASA Goddardo kosminių skrydžių centre, siekiant paremti Žemės ir kosmoso mokslų projektą reikalingais skaičiavimo ištekliais. Beowulf projektas prasidėjo 1994 metų vasarą ir netrukus Intel 486DX4/100 MHz procesoriuose buvo surinktas 16 procesorių klasteris. Kiekviename mazge buvo 16 MB RAM ir 3 Ethernet tinklo adapteriai. Ši sistema pasirodė labai sėkminga kainos / našumo atžvilgiu, todėl ši architektūra buvo pradėta kurti ir plačiai naudojama kitose mokslo organizacijose ir institutuose.

Kiekviena klasterių klasė turi savo specifinę architektūrą ir techninę įrangą. Panagrinėkime juos išsamiau.

Failover klasteriai

Konstravimo principai

Siekiant užtikrinti kompiuterinių sistemų patikimumą ir atsparumą gedimams, naudojama daug įvairių techninės ir programinės įrangos sprendimų. Pavyzdžiui, sistema gali dubliuoti visus elementus, kuriems kyla gedimų – maitinimo šaltinius, procesorius, RAM ir išorinę atmintį. Tokios gedimams atsparios sistemos su pertekliniais komponentais yra naudojamos sprendžiant problemas, kuriose įprastų skaičiavimo sistemų patikimumo nepakanka, šiuo metu įvertinus 99% veikimo be gedimų tikimybę. Esant tokioms problemoms, reikalinga 99,999% ar didesnė tikimybė. Tokį patikimumą galima pasiekti taikant skirtingus metodus, kaip padidinti atsparumą gedimams, nei aprašyta aukščiau. Atsižvelgiant į skaičiavimo sistemos pasirengimo naudoti lygį, yra keturi patikimumo tipai:

PRIVATUS pasirengimo lygis, %

Maks. prastovos

Sistemos tipas

3,5 dienos per metus

Sutartinis

8,5 valandos per metus

Aukštas prieinamumas

1 valanda per metus

Atsparus gedimams

5 minutes per metus

Atsparus gedimams

2 lentelė.

Skirtingai nuo gedimams atsparių sistemų su pertekliniais komponentais, taip pat įvairiomis kelių apdorojimo galimybėmis, klasteriai sujungia palyginti nepriklausomus įrenginius, kurių kiekvieną galima sustabdyti techninei priežiūrai ar perkonfigūravimui, nepažeidžiant viso klasterio veikimo. Didelis klasterio našumas ir programos prastovų sumažinimas pasiekiamas dėl to, kad:

  • jei viename iš mazgų sugenda programinė įranga, programa toliau veikia arba automatiškai paleidžiama iš naujo kituose klasterio mazguose;
  • vieno iš mazgų (ar kelių) gedimas nesukels visos klasterio sistemos žlugimo;
  • techninės priežiūros ir remonto darbai, programinės įrangos versijų perkonfigūravimas ar keitimas, kaip taisyklė, gali būti atliekami klasterio mazguose paeiliui, nenutraukiant kitų mazgų darbo.

Neatsiejama klasterio dalis yra speciali programinė įranga, kuri iš tikrųjų išsprendžia mazgo atkūrimo problemą gedimo atveju, taip pat išsprendžia kitas problemas. Klasterio programinė įranga paprastai turi kelis iš anksto nustatytus sistemos atkūrimo scenarijus ir taip pat gali suteikti administratoriui galimybę pritaikyti tokius scenarijus. Failover gali būti palaikomas tiek visam pagrindiniam kompiuteriui, tiek atskiriems jo komponentams - programoms, disko tomams ir kt. Ši funkcija automatiškai paleidžiama sistemos gedimo atveju, ją taip pat gali paleisti administratorius, jei, pavyzdžiui, jam reikia išjungti vieną iš mazgų perkonfigūruoti.

Klasteriai gali turėti bendrą atmintį išoriniuose diskuose, paprastai RAID diskų masyve. RAID diskų masyvas yra serverio I/O posistemis, skirtas dideliems duomenų kiekiams saugoti. RAID masyvai naudoja daug santykinai mažos talpos diskų dideliems duomenų kiekiams saugoti, taip pat didesniam patikimumui ir dubliavimui užtikrinti. Tokį masyvą kompiuteris suvokia kaip vieną loginį įrenginį.

Failover gali būti palaikomas tiek visam pagrindiniam kompiuteriui, tiek atskiriems jo komponentams - programoms, disko tomams ir kt. Ši funkcija automatiškai paleidžiama sistemos gedimo atveju, ją taip pat gali paleisti administratorius, jei, pavyzdžiui, jam reikia išjungti vieną iš mazgų perkonfigūruoti.

Klasterio mazgai stebi vienas kito būklę ir keičiasi specifine „klasterio“ informacija, tokia kaip klasterio konfigūracija, taip pat perduoda duomenis tarp bendrinamų diskų ir koordinuoja jų naudojimą. Sveikatos stebėjimas atliekamas naudojant specialų signalą, kurį klasterio mazgai perduoda vienas kitam, kad patvirtintų normalų jų veikimą. Signalizacijos iš vieno iš mazgų nutraukimas signalizuoja klasterio programinei įrangai, kad įvyko gedimas ir kad reikia perskirstyti likusių mazgų apkrovą. Kaip pavyzdį apsvarstykite VAX / VMS perkėlimo klasterį.

Klasteris VAX/VMS

DEC buvo pirmoji įmonė, kuri 1983 m. paskelbė klasterio sistemos koncepciją, apibrėždama ją kaip tarpusavyje sujungtų kompiuterių grupę, atstovaujančią vienam informacijos apdorojimo mazgui. Iš esmės VAX klasteris yra laisvai susieta kelių mašinų sistema su bendra išorine atmintimi, kuri suteikia vieną valdymo ir administravimo mechanizmą.

VAX klasteris turi šias savybes:

Dalijimasis ištekliais. Klasteryje esantys VAX įrenginiai gali bendrinti prieigą prie bendrinamų juostų ir diskų įrenginių. Visi klasteryje esantys VAX įrenginiai gali pasiekti atskirus duomenų failus taip, lyg jie būtų vietiniai.

Aukšta parengtis. Jei vienas iš VAX kompiuterių sugenda, jo vartotojų darbai gali būti automatiškai perkelti į kitą klasterio kompiuterį. Jei sistemoje yra keli HSC ir vienas sugenda, kiti HSC automatiškai perima valdymą.

Didelis pralaidumas. Daugybė taikomųjų sistemų gali pasinaudoti galimybe lygiagrečiai vykdyti užduotis keliuose klasterio kompiuteriuose.

Sistemos priežiūros paprastumas. Bendrinamos duomenų bazės gali būti aptarnaujamos iš vienos vietos. Taikomosios programos gali būti įdiegtos tik vieną kartą bendruose klasterio diskuose ir bendrinamos su visais klasterio kompiuteriais.

Išplečiamumas. Klasterio skaičiavimo galios padidinimas pasiekiamas prijungus prie jo papildomus VAX kompiuterius. Papildomi diskai magnetiniuose diskuose ir magnetinėse juostose tampa prieinami visuose kompiuteriuose, įtrauktuose į klasterį.

VAX klasterio darbą lemia du pagrindiniai komponentai. Pirmasis komponentas yra didelės spartos ryšio mechanizmas, o antrasis yra sistemos programinė įranga, kuri suteikia klientams skaidrią prieigą prie sistemos paslaugos. Fiziškai ryšiai klasteryje yra įgyvendinami naudojant tris skirtingas magistralių technologijas, turinčias skirtingas veikimo charakteristikas.

Pagrindiniai ryšio metodai VAX klasteryje parodyti fig. 4.

Ryžiai. 4 VAX/VMS klasteris

CI (Computer Interconnect) magistralė veikia 70 Mbps greičiu ir naudojama VAX kompiuteriams ir HSC valdikliams sujungti naudojant Star Coupler. Kiekviena CI nuoroda turi dvigubas perteklines nuorodas – dvi siuntimui ir dvi priėmimui, naudojant pagrindinę CSMA technologiją, kuri naudoja konkrečiam mazgui skirtą delsą, kad išspręstų susidūrimus. Maksimalus CI jungties ilgis yra 45 metrai. Star Coupler gali palaikyti iki 32 CI magistralių, kiekviena skirta VAX kompiuteriui arba HSC valdikliui prijungti. HSC valdiklis yra išmanus įrenginys, valdantis diskų ir juostinių įrenginių veikimą.

VAX kompiuteriai taip pat gali būti sugrupuoti per vietinį tinklą

Ethernet naudojant NI - Network Interconnect (vadinamieji vietiniai VAX klasteriai), tačiau tokių sistemų našumas yra gana žemas, nes reikia dalytis Ethernet tinklo pralaidumu tarp klasterio kompiuterių ir kitų tinklo klientų.

Klasteriai taip pat gali būti pagrįsti DSSI (Digital Storage System Interconnect) magistrale. Prie DSSI magistralės galima prijungti iki keturių žemesnės ir vidutinės klasės VAX kompiuterių. Kiekvienas kompiuteris gali palaikyti kelis DSSI adapterius. Atskira DSSI magistralė veikia 4 MB/s (32 Mbps) greičiu ir leidžia prijungti iki 8 įrenginių. Palaikomi šie įrenginių tipai: DSSI sistemos adapteris, RF serijos disko valdiklis ir TF serijos juostos valdiklis. DSSI riboja atstumą tarp mazgų grupėje iki 25 metrų.

VAX Cluster sistemos programinė įranga

Siekdama užtikrinti, kad procesoriai tinkamai bendrautų vienas su kitu, kai pasiekia bendrinamus išteklius, pvz., diskus, DEC naudoja paskirstytojo užrakto tvarkyklę (DLM). Labai svarbi DLM funkcija yra užtikrinti, kad disko talpyklos būtų nuoseklios operacinės sistemos ir taikomųjų programų įvesties / išvesties operacijoms. Pavyzdžiui, reliacinėse DBVS programose DLM yra atsakingas už nuoseklios būsenos tarp duomenų bazių buferių palaikymą skirtinguose klasterio kompiuteriuose.

Užduotis palaikyti I/O talpyklos darną tarp procesorių klasteryje yra panaši į užduotį palaikyti talpyklos darną glaudžiai susietoje kelių procesorių sistemoje, pastatytoje ant magistralės. Duomenų blokai vienu metu gali atsirasti keliose talpyklose, o jei vienas procesorius pakeičia vieną iš šių kopijų, kitos esamos kopijos jau neatspindi esamos duomenų bloko būsenos. Blokų fiksavimo (bloko nuosavybės) sąvoka yra vienas iš tokių situacijų sprendimo būdų. Prieš modifikuojant bloką, reikia užtikrinti bloko nuosavybės teisę.

Darbas su DLM reikalauja didelių papildomų išlaidų. VAX/VMS aplinkos pridėtinės išlaidos gali būti didelės, todėl vienai įvesties/išvesties operacijai per CI magistralę reikia išsiųsti iki šešių pranešimų. Kiekvieno klasterio procesoriaus pridėtinės išlaidos gali siekti 20%.

Didelio našumo klasteriai

Konstravimo principai

Didelio našumo klasterių architektūra atsirado kaip MPP sistemų kūrimo, naudojant mažiau produktyvius ir masinius komponentus, valdomus bendros paskirties operacinės sistemos, principų plėtra. Klasteriai, kaip ir MPP sistemos, susideda iš laisvai sujungtų mazgų, kurie gali būti vienarūšiai arba, skirtingai nei MPP, skirtingi arba nevienalyčiai. Projektuojant didelio našumo klasterio architektūrą, ypatingas dėmesys skiriamas klasterio mazgus jungiančios komunikacijos magistralės aukštam efektyvumui užtikrinti. Kadangi masinės santykinai mažo našumo magistralės dažnai naudojamos klasteriuose, reikia imtis keleto priemonių, kad būtų pašalintas mažas jų pralaidumas klasterių veikimui ir organizuotas efektyvus lygiagretus klasteryje. Pavyzdžiui, vienos iš sparčiausių Fast Ethernet technologijų pralaidumas yra daug mažesnis nei šiuolaikinių MPP architektūros superkompiuterių jungčių.

Prasto tinklo veikimo problemoms išspręsti naudojami keli metodai:

Klasteris yra padalintas į kelis segmentus, kuriuose mazgai yra sujungti didelio našumo magistrale, tokia kaip Myrinet, o ryšį tarp skirtingų segmentų mazgų atlieka mažo našumo Ethernet/Fast Ethernet tinklai. Tai leidžia kartu su komunikacijos aplinkos sąnaudų mažinimu žymiai padidinti tokių klasterių našumą sprendžiant intensyvaus duomenų mainų tarp procesų problemas.

IPX). Šis metodas dažnai naudojamas Beowulf klasės sistemose.

Pagrindinė kokybė, kurią turėtų turėti didelio našumo klasteris, yra horizontalus mastelio keitimas, nes vienas iš pagrindinių klasterio architektūros pranašumų yra galimybė padidinti esamos sistemos pajėgumą tiesiog pridedant prie sistemos naujų mazgų. Be to, galios padidėjimas vyksta beveik proporcingai pridedamų išteklių galiai ir gali būti atliktas nestabdant sistemos jos veikimo metu. Sistemose su kitomis architektūromis (ypač MPP) paprastai galimas tik vertikalus mastelio keitimas: pridėti atminties, padidinti procesorių skaičių kelių procesorių sistemose arba pridėti naujų adapterių ar diskų. Tai leidžia laikinai pagerinti sistemos našumą. Tačiau sistemoje bus nustatytas maksimalus palaikomas atminties, procesorių ar diskų kiekis, sistemos resursai bus išeikvoti, o norint padidinti našumą, teks sukurti naują sistemą arba gerokai perdaryti senąją. Klasterių sistema taip pat leidžia vertikaliai keisti mastelį. Taigi, dėl vertikalaus ir horizontalaus mastelio keitimo klasterio modelis suteikia didesnį lankstumą ir lengvesnį sistemos našumo didinimą.

Projektas Beowulf

Beovulfas – skandinaviškas epas, pasakojantis apie VII – VIII amžiaus pirmojo trečdalio įvykius, kuriame dalyvauja mūšiuose save šlovinęs to paties pavadinimo herojus.

Vienas iš tokios struktūros klasterių sistemos įgyvendinimo pavyzdžių yra Beowulf klasteriai. Beowulf projektas subūrė apie tuziną organizacijų (daugiausia universitetų) JAV. Pagrindiniai projekto kūrėjai yra NASA agentūros ekspertai. Šio tipo klasteriuose galima išskirti šias pagrindines savybes:

Beowulf projekto istorija

Projektas prasidėjo 1994 metų vasarą NASA Goddardo kosminių skrydžių centre (GSFC), tiksliau, jo pagrindu sukurtame CESDIS (Kosmoso duomenų ir informacijos mokslų kompetencijos centre).

Pirmasis „Beowulf“ klasteris buvo sukurtas „Intel“ architektūros kompiuterių, kuriuose veikia „Linux“, pagrindu. Tai buvo sistema, susidedanti iš 16 mazgų (486DX4/100MHz procesoriuose, 16 MB atminties ir 3 tinklo adapteriai kiekviename mazge, 3 „lygiagrečiai“ 10 Mbit Ethernet kabeliai). Jis buvo sukurtas kaip Žemės ir kosmoso mokslų projekto (ESS) skaičiavimo šaltinis.

Be to, GSFC ir kituose NASA padaliniuose buvo surinkti kiti, galingesni klasteriai. Pavyzdžiui, HIVE (labai lygiagrečios integruotos virtualios aplinkos) klasterį sudaro 64 mazgai su 2 Pentium Pro/200MHz procesoriais ir 4 GB atminties, 5 Fast Ethernet jungikliai. Bendra šio klasterio kaina yra apie 210 tūkst.. Beowulf projekto metu buvo sukurta keletas didelio našumo ir specializuotų tinklo tvarkyklių (ypač tvarkyklė, skirta naudoti kelis Ethernet kanalus vienu metu).

Beowulf architektūra

Klasterio mazgai.

Tai yra vieno procesoriaus kompiuteriai arba SMP serveriai su nedideliu procesorių skaičiumi (2–4, galbūt iki 6). Dėl tam tikrų priežasčių manoma, kad geriausia kurti grupes remiantis dviejų procesorių sistemos, nepaisant to, kad šiuo atveju klasterio sąranka bus šiek tiek sunkesnė (daugiausia dėl to, kad yra gana nebrangių pagrindinių plokščių, skirtų 2 Pentium II / III procesoriams). Kiekviename mazge verta įdiegti 64–128 MB RAM (dviejų procesorių sistemoms 64–256 MB).

Vieną iš mašinų reikėtų išskirti kaip centrinis(galva), kur turėtumėte įdiegti pakankamai didelį standųjį diską, galbūt galingesnį procesorių ir daugiau atminties nei likusieji (veikiantys) mazgai. Tikslinga užtikrinti (saugų) šios mašinos ryšį su išoriniu pasauliu.

Renkant darbo mazgai visiškai įmanoma atsisakyti standžiųjų diskų - šie mazgai įkels OS per tinklą iš centrinio kompiuterio, o tai, be pinigų taupymo, leidžia sukonfigūruoti OS ir visą reikalingą programinę įrangą tik 1 kartą (centriniame kompiuteryje). ). Nebent šie mazgai tuo pačiu metu bus naudojami kaip vartotojo darbo stotys, juose nereikia montuoti vaizdo plokščių ir monitorių. Galima mazgus montuoti į stelažus (rackmounting), tai sumažins mazgų užimamą erdvę, tačiau kainuos šiek tiek daugiau.

Galima organizuoti klasterius jau esamų darbo vietų tinklų pagrindu, t.y. vartotojų darbo vietos gali būti naudojamos kaip klasterio mazgai naktį ir savaitgaliais. Tokio tipo sistemos kartais vadinamos COW (darbo stočių grupe).

Mazgų skaičius turėtų būti parenkami atsižvelgiant į reikiamus skaičiavimo išteklius ir turimus finansinius išteklius. Reikėtų suprasti, kad esant daugybei mazgų, taip pat turėsite įdiegti sudėtingesnę ir brangesnę tinklo įrangą.

Grynasis

Pagrindiniai „Beowulf“ projekte dalyvaujantys LAN tipai yra Gigabit Ethernet, Fast Ethernet ir 100 VG AnyLAN. Paprasčiausiu atveju naudojamas vienas Ethernet segmentas (10Mbit/sek per vytos poros). Tačiau tokio tinklo pigumas dėl susidūrimų virsta didelėmis pridėtinėmis sąnaudomis tarpprocesoriniams mainams; ir gero tokio klasterio našumo reikėtų tikėtis tik atliekant užduotis, turinčias labai paprastą lygiagrečią struktūrą ir labai retai sąveikaujant tarp procesų (pavyzdžiui, parinkčių išvardijimas).

Norint užtikrinti gerą tarpprocesorių mainų našumą, naudojamas pilnas dvipusis Fast Ethernet 100 Mbit/sek. Tuo pačiu metu, siekiant sumažinti susidūrimų skaičių, įdiegiami keli „lygiagrečiai“ eterneto segmentai arba klasterio mazgai sujungiami per jungiklis(jungiklis).

Brangesnis, bet taip pat populiarus pasirinkimas yra naudoti tokius jungiklius kaip Myrinet (1,28 Gbit/s, pilnas dvipusis).

Mažiau populiarios, bet ir tikrai naudojamos tinklo technologijos kuriant grupes yra cLAN, SCI ir Gigabit Ethernet technologijos.

Kartais ryšiui tarp klasterio mazgų lygiagrečiai naudojami keli fiziniai ryšio kanalai - vadinamasis „kanalų sujungimas“, kuris paprastai naudojamas „Fast Ethernet“ technologijai. Šiuo atveju kiekvienas mazgas yra prijungtas prie greitojo eterneto jungiklio daugiau nei vienu kanalu. Kad tai būtų pasiekta, mazgai aprūpinti keliais NIC arba kelių prievadų „Fast Ethernet“ kortelėmis. Kanalų sujungimo naudojimas mazguose, kuriuose veikia Linux OS, leidžia organizuoti vienodą priėmimo / perdavimo apkrovos paskirstymą tarp atitinkamų kanalų.

Sistemos programinė įranga

Operacinė sistema. Paprastai Linux sistema naudojama versijose, specialiai optimizuotose paskirstytam lygiagrečiam skaičiavimui. Linux 2.0 branduolys buvo perdarytas. Kuriant grupes paaiškėjo, kad standartinės tinklo įrenginių tvarkyklės Linux sistemoje yra labai neefektyvios. Todėl buvo sukurtos naujos tvarkyklės, visų pirma skirtos „Fast Ethernet“ ir „Gigabit Ethernet“ tinklams, ir buvo galima logiškai sujungti keletą lygiagrečių tinklo jungčių tarp asmeninių kompiuterių (panašiai kaip aparatinės įrangos susiejimas), o tai leidžia sukurti tinklą iš nebrangių vietinių. tinklai su mažu pralaidumu ir dideliu bendru pralaidumu.

Kaip ir bet kuriame klasteryje, kiekvienas klasterio mazgas vykdo savo OS branduolio kopiją. Dėl patobulinimų proceso identifikatorių unikalumas užtikrinamas visame klasteryje, o ne atskiruose mazguose.

Ryšių bibliotekos. Labiausiai paplitusi lygiagretaus programavimo sąsaja pranešimų perdavimo modelyje yra MPI. Rekomenduojamas nemokamas MPI diegimas yra MPICH paketas, sukurtas Argonne nacionalinėje laboratorijoje. Klasteriams, pagrįstiems Myrinet jungikliu, buvo sukurta HPVM sistema, kuri taip pat apima MPI diegimą.

Yra dvi galimybės efektyviai organizuoti lygiagretumą vienoje SMP sistemoje:

  1. Kiekvienam SMP įrenginio procesoriui sukuriamas atskiras MPI procesas. MPI procesai šioje sistemoje keičiasi pranešimais per bendrą atmintį (reikia atitinkamai sukonfigūruoti MPICH).
  2. Kiekviename kompiuteryje veikia tik vienas MPI procesas. Kiekviename MPI procese lygiagretinimas atliekamas „bendrosios atminties“ modelyje, pavyzdžiui, naudojant OpenMP direktyvas.

Įdiegę MPI diegimą, prasminga patikrinti tikrąjį tinklo perdavimų našumą.

Be MPI, yra ir kitų bibliotekų ir lygiagrečių programavimo sistemų, kurias galima naudoti klasteriuose.

Beowulf klasterio įgyvendinimo pavyzdys – Avalon

PRIVATEMichael Warren ir kiti mokslininkai iš Teorinės astrofizikos grupės sukūrė Avalon superkompiuterį, kuris yra Beowulf klasteris, pagrįstas DEC Alpha/533MHz procesoriais. Iš pradžių Avalon susideda iš 68 procesorių, vėliau jis buvo išplėstas iki 140. Kiekvienas mazgas turi 256 MB RAM, 3,2 GB EIDE standųjį diską, Kingston tinklo adapterį (bendra mazgo kaina – 1700 USD). Mazgai yra sujungti naudojant 4 x 36 prievadų Fast Ethernet jungiklius ir centre esantį 12 prievadų Gigabit Ethernet jungiklį iš 3Com.

Bendra Avalon kaina - 313 tūkst ir jo LINPACK našumą ( 47,7 GFLOP) leido jam paimti 114 vieta 12-oje Top500 sąrašo laidoje (šalia 152 procesorių IBM SP2 sistemos). 70 procesorių „Avalon“ konfigūracija daugelyje bandymų parodė tokį patį našumą kaip ir 64 procesorių SGI Origin2000/195MHz sistema, kainuojanti daugiau nei 1 mln.

Šiuo metu Avalon aktyviai naudojamas astrofizikoje, molekulinėje ir kituose moksliniuose skaičiavimuose. SC'98 renginyje Avalon kūrėjai pristatė pranešimą „Avalon: An Alpha/Linux Cluster Achieves 10 Gflops už $150k“ ir laimėjo 1998 m. Gordon Bell Price/Performance Prize.

Išvada

Pirmaujantys mikroprocesorių gamintojai Sun Microsystems, Dell ir IBM turi tą pačią superkompiuterių pramonės ateities viziją: atskirus, nepriklausomus superkompiuterius turėtų pakeisti didelio našumo, grupuotų serverių grupės. Jau šiandien paskirstytos klasterių sistemos savo našumu lenkia šiuolaikinius klasikinius superkompiuterius: galingiausias šiandieninis kompiuteris pasaulyje – IBM ASCI White – pasižymi 12 teraflopų našumu, tinklo našumu. [apsaugotas el. paštas]įvertinta maždaug 15 teraflopų. Tuo pačiu metu „IBM ASCI White“ buvo parduota už 110 milijonų dolerių ir per visą jos egzistavimo istoriją [apsaugotas el. paštas] buvo išleista apie 500 000 USD.

Išanalizavę Beowulf projekto rėmuose atliktų darbų rezultatus, galime padaryti tokią išvadą: rasti sprendimai leidžia savarankiškai surinkti didelio našumo klasterį, paremtą standartiniais PC komponentais ir naudoti įprastą programinę įrangą. Tarp didžiausių atvejų negalima nepaminėti CESDIS 50 mazgų klasterio, kurį sudaro 40 duomenų apdorojimo mazgų (pagrįstų vieno ir dviejų procesorių Pentium Pro/200 MHz plokštėmis) ir 10 mastelio keitimo mazgų (pagal dviejų procesorius Pentium Pro/166 MHz plokštė). Atrodo, kad sąnaudų ir didžiausio našumo santykis tokiame klasteryje yra labai geras. Kyla klausimas, kaip efektyviai galite lygiagretinti programas – kitaip tariant, koks bus tikrasis, o ne didžiausias našumas. Projekto dalyviai šiuo metu sprendžia šią problemą.


Literatūra

3. http://newton.gsfc.nasa.gov/thehive/

4. http://www.lobos.nih.gov

5. http://parallel.ru/news/kentucky_klat2.html

6. http://parallel.ru/news/anl_chibacity.html

7. http://parallel.ru/cluster/

8. http://www.ptc.spbu.ru


išteklių

MIMD kompiuteriai

MIMD kompiuteris turi N procesorių, savarankiškai vykdančių N instrukcijų srautus ir apdorojančių N duomenų srautus. Kiekvienas procesorius veikia valdydamas savo komandų srautą, tai yra, MIMD kompiuteris gali lygiagrečiai vykdyti visiškai skirtingas programas.

MIMD architektūros toliau klasifikuojamos pagal fizinę atminties struktūrą, ty ar procesorius turi savo vietinę atmintį ir prie kitų atminties blokų pasiekia naudodamas komutuojamą tinklą, ar komutuojamasis tinklas visus procesorius jungia prie bendrosios atminties. Remiantis atminties organizavimu, išskiriami šie lygiagrečių architektūrų tipai:

  • Paskirstytos atminties kompiuteriai
    Procesorius gali pasiekti vietinę atmintį, siųsti ir gauti pranešimus, perduodamus per tinklą, jungiantį procesorius. Pranešimai naudojami palaikyti ryšį tarp procesorių arba, lygiavertiškai, skaityti ir rašyti nuotolinius atminties blokus. Idealizuotame tinkle pranešimo siuntimo tarp dviejų tinklo mazgų kaina nepriklauso tiek nuo abiejų mazgų vietos, tiek nuo tinklo srauto, bet priklauso nuo pranešimo ilgio.
  • Kompiuteriai su bendra (bendra) atmintimi (tikroji bendra atmintis)
    Visi procesoriai turi bendrą prieigą prie atminties, paprastai per magistralę arba magistralės hierarchiją. Idealizuotame PRAM (Parallel Random Access Machine) modelyje, dažnai naudojamame teoriniuose lygiagrečių algoritmų tyrimuose, bet kuris procesorius gali pasiekti bet kurią atminties vietą tuo pačiu metu. Praktiškai šios architektūros mastelio keitimas paprastai lemia tam tikrą atminties hierarchijos formą. Prieigų prie bendros atminties dažnumą galima sumažinti laikant dažnai pasiekiamų duomenų kopijas talpykloje, susietoje su kiekvienu procesoriumi. Prieiga prie šios talpyklos yra daug greičiau nei tiesioginė prieiga prie bendrosios atminties.
  • Kompiuteriai su virtualia bendrinamąja atmintimi (virtuali bendra atmintis)
    Nėra bendros atminties kaip tokios. Kiekvienas procesorius turi savo vietinę atmintį ir gali pasiekti kitų procesorių vietinę atmintį naudodamas „pasaulinį adresą“. Jei „pasaulinis adresas“ nenurodo į vietinę atmintį, tada prieiga prie atminties įgyvendinama naudojant pranešimus, siunčiamus per ryšio tinklą.

Bendrai naudojamų atminties mašinų pavyzdžiai:

  • Sun Microsystems (daugiaprocesorinės darbo stotys)
  • Silicon Graphics Challenge (daugiaprocesorių darbo stotys)
  • Sekos simetrija
  • Išgaubtas
  • Cray 6400.

Šie kompiuteriai priklauso paskirstytos atminties mašinų klasei

  • IBM-SP1/SP2
  • Parsytec GC
  • CM5 („Thinking Machine Corporation“)
  • Cray T3D
  • Paragon („Intel Corp.“)
  • nCUBE
  • Meiko CS-2
  • AVX (Alex Parallel Computers)
  • IMS-B008

MIMD architektūros su paskirstyta atmintimi taip pat gali būti klasifikuojamos pagal perjungimo tinklo pralaidumą. Pavyzdžiui, architektūroje, kurioje procesoriaus ir atminties modulio (procesoriaus elemento) poros yra sujungtos tinklu su gardelės topologijomis, kiekvienas procesorius turi tiek pat tinklo jungčių, nepriklausomai nuo procesorių skaičiaus kompiuteryje. Bendras tokio tinklo pralaidumas auga tiesiškai, atsižvelgiant į procesorių skaičių. Kita vertus, architektūroje, kurioje yra tinklas su hiperkubo topologijomis, procesoriaus ir tinklo jungčių skaičius yra logaritminė procesorių skaičiaus funkcija, o tinklo pralaidumas auga greičiau nei tiesiškai, atsižvelgiant į procesorių skaičių. Kliko topologijoje kiekvienas procesorius turi būti prijungtas prie visų kitų procesorių.

Tinklas su 2D tinklelio topologija (torus)



Tinklas su 2D toruso topologija

Tinklas su paspaudimų topologija

Nacionalinis superkompiuterių programų centras (Ilinojaus universitetas, Urbana-Champaign)

MPI: pranešimų perdavimo sąsaja

Pavadinimas „pranešimų sąsaja“ kalba pats už save. Tai gerai standartizuotas lygiagrečių programų kūrimo pranešimų siuntimo modelyje mechanizmas. Yra standartiniai MPI „pririšimai“ prie C/C++, Fortran 77/90. Nemokami ir komerciniai diegimai egzistuoja beveik visoms superkompiuterių platformoms, taip pat UNIX ir Windows NT darbo stočių tinklams. MPI šiuo metu yra plačiausiai naudojama ir greičiausiai auganti savo klasės sąsaja.

Beowulf – „Linux“ pagrįsti klasteriai

Michailas Kuzminskis

"Atviros sistemos"

Tūkstantmečio sandūroje turime visas galimybes stebėti kompiuterių pramonės monopolizaciją, kuri gali apimti ir mikroprocesorius, ir operacines sistemas. Žinoma, mes kalbame apie „Intel“ mikroprocesorius (Merced grasina išstumti RISC architektūros procesorius) ir „Microsoft“ OS.

Abiem atvejais sėkmę daugiausia lemia rinkodaros mašinos galia, o ne tik gaminamų produktų „vartotojiškos“ savybės. Mano nuomone, kompiuterių bendruomenė dar nesuvokė galimų pasekmių masto.

Kai kurie ekspertai potencialų kompiuterių rinkos monopolizavimą lygina su 70-aisiais pastebėtu IBM monopoliniu dominavimu – tiek pagrindinių kompiuterių, tiek operacinių sistemų srityje. Su šia technika dirbu jau seniai, o mūsų šalyje plintant operacinei sistemai Unix, vis geriau suvokiu daugybę IBM MVS operacinės sistemos privalumų. Tačiau pritariu bendrai nuomonei, kad tokia monopolija progreso nepaspartino.

Vakarų universitetai, kurie vienu metu buvo vieni pirmųjų, kurie naudojo Unix, ir toliau remiasi šia sistema savo daug žadančiose srityse, o Linux vis dažniau pasirenkama kaip platforma. Šis straipsnis skirtas vienam iš pamokančių akademinių įvykių.

Linux kaip socialinis reiškinys

Nebesistebime, kad „Linux“ tapo žinomu reiškiniu kompiuterių gyvenime. Kartu su gausiu laisvai platinamos GNU programinės įrangos rinkiniu ši operacinė sistema tapo itin populiari tarp nekomercinių vartotojų tiek namuose, tiek užsienyje. Jos populiarumas auga. „Linux“ versijos egzistuoja ne tik „Intel x86“ platformai, bet ir kitoms procesorių architektūroms, įskaitant „DEC Alpha“, ir yra plačiai naudojamos interneto programoms, taip pat skaičiavimo užduotims atlikti. Žodžiu, „Linux“ tapo savotiška „žmonių operacine sistema“. Tačiau tai nereiškia, kad Linux neturi trūkumų; vienas iš jų yra SMP architektūros palaikymo trūkumas.

Pigiausias būdas padidinti skaičiavimo išteklius, įskaitant skaičiavimo galią, yra sukurti klasterį. Savotiškais klasteriais galima laikyti ir masiškai lygiagrečius superkompiuterius su fiziškai ir logiškai paskirstytais RAM. Ryškiausias tokios architektūros pavyzdys – garsusis IBM SP2 kompiuteris.

Visas klausimas yra tai, kas kompiuterius (mazgus) sujungia į klasterį. „Tikruose“ superkompiuteriuose tam naudojama specializuota ir todėl brangi aparatinė įranga, skirta užtikrinti didelį pralaidumą. Klasteriai paprastai naudoja įprastinius tinklo standartus, tokius kaip Ethernet, FDDI, ATM arba HiPPI.

Klasterių technologijos, naudojančios Linux operacinę sistemą, buvo pradėtos kurti prieš keletą metų ir tapo prieinamos dar gerokai prieš atsirandant Wolfrack for Windows NT. Taigi 90-ųjų viduryje gimė projektas „Beowulf“.

Epo herojus

„Beovulfas“ – skandinaviškas epas, pasakojantis apie VII – VIII amžiaus pirmojo trečdalio įvykius, kurio dalyvis – mūšiuose save šlovinantis to paties pavadinimo herojus. Nežinia, ar projekto autoriai pagalvojo, su kuo dabar kovos Beowulfas (turbūt su Windows NT?), tačiau herojiškas įvaizdis leido konsorciumui sujungti apie dešimtį organizacijų (daugiausia universitetų) JAV. Negalima teigti, kad tarp projekto dalyvių dominuoja superkompiuterių centrai, tačiau „Loki“ ir „Megalon“ klasteriai įrengti tokiuose pasaulyje žinomuose didelio našumo skaičiavimo centruose kaip Los Alamos ir JAV Energetikos departamento „Sandia“ laboratorija; pagrindiniai projekto kūrėjai yra NASA agentūros ekspertai. Apskritai be išimties visi projekto dalyvių sukurti klasteriai sulaukia garsių vardų.

Be Beowulf, žinoma dar viena artimo klasterio technologija – DABAR. DABAR asmeniniuose kompiuteriuose dažniausiai yra informacija apie juos pačius ir jiems pavestas užduotis, o tokios klasterio sistemos administratorius yra atsakingas už šios informacijos generavimą. Beowulf klasteriai šiuo požiūriu yra paprastesni (tai yra sistemos administratoriaus požiūriu): ten atskiri mazgai nežino apie klasterio konfigūraciją. Tik viename tam skirtame mazge yra konfigūracijos informacija; ir tik jis turi tinklinį ryšį su išoriniu pasauliu. Visi kiti klasterio mazgai yra sujungti vietiniu tinklu, o tik „plonas tiltelis“ iš valdymo mazgo jungia juos su išoriniu pasauliu.

Beowulf technologijos mazgai yra kompiuterių pagrindinės plokštės. Paprastai mazgai taip pat naudoja vietinius standžiuosius diskus. Norint sujungti mazgus, naudojami standartiniai vietinių tinklų tipai. Mes apsvarstysime šią problemą toliau, bet pirmiausia sutelksime dėmesį į programinę įrangą.

Jos pagrindas Beowulf yra įprasta komerciškai prieinama Linux operacinė sistema, kurią galima įsigyti kompaktiniame diske. Iš pradžių dauguma projekto dalyvių daugiausia dėmesio skyrė Slackware išleistiems kompaktiniams diskams, tačiau dabar pirmenybė teikiama RedHat versijai.

Įprastoje „Linux“ OS galite įdiegti gerai žinomus lygiagretinimo įrankius pranešimų siuntimo modelyje (LAM MPI 6.1, PVM 3.3.11 ir kt.). Taip pat galite naudoti p-threads standartą ir standartinius tarpprocesorinius komunikacijos įrankius, įtrauktus į bet kurią operacinę sistemą Unix System V. Vykdant Beowulf projektą buvo atlikta reikšminga papildoma plėtra.

Visų pirma, reikėtų atkreipti dėmesį į Linux 2.0 branduolio tobulinimą. Kuriant grupes paaiškėjo, kad standartinės tinklo įrenginių tvarkyklės Linux sistemoje yra labai neefektyvios. Todėl buvo sukurtos naujos tvarkyklės (daugumos patobulinimų autorius yra Donaldas Beckeris), pirmiausia Fast Ethernet ir Gigabit Ethernet tinklams, ir buvo galima logiškai sujungti keletą lygiagrečių tinklo jungčių tarp asmeninių kompiuterių, o tai leidžia iš pigių vietinių kompiuterių. tinklai, kurių greitis didesnis nei nedidelis, sukurkite tinklą su dideliu bendru pralaidumu.

Kaip ir bet kuriame klasteryje, kiekvienas mazgas turi savo OS branduolio kopiją. Patobulinimų dėka užtikrinamas procesų identifikatorių unikalumas visame klasteryje, o ne atskiruose mazguose, bei Linux OS signalų „nuotolinis pristatymas“.

Be to, reikia atkreipti dėmesį į tinklo įkrovos funkcijas (netbooting), dirbant su Intel PR 440FX pagrindinėmis plokštėmis, taip pat jas galima naudoti dirbant su kitomis pagrindinėmis plokštėmis, turinčiomis AMI BIOS.

Labai įdomias galimybes suteikia tinklo virtualios atminties (Network Virtual Memory) arba bendros paskirstytos atminties DSM (Distributed Shared Memory) mechanizmai, leidžiantys procesui sukurti tam tikrą mazgų bendros RAM „iliuziją“.

Tinklo kūrimas yra subtilus dalykas

Kadangi superkompiuterių taikomųjų programų lygiagretinimas apskritai ir ypač klasterių taikomosios programos reikalauja didelio pralaidumo ir mažo delsos, kad būtų galima keistis pranešimais tarp mazgų, tinklo charakteristikos tampa parametrais, lemiančiais klasterio našumą. Mikroprocesorių mazgams pasirinkimas akivaizdus – tai standartiniai Intel gaminami procesoriai; bet su klasterio topologija, tinklo tipu ir tinklo plokštėmis galite eksperimentuoti. Būtent šioje srityje buvo atlikti pagrindiniai tyrimai.

Analizuojant įvairius šiuo metu rinkoje esančius asmeninių kompiuterių NIC, ypatingas dėmesys buvo skiriamas tokioms charakteristikoms kaip efektyvus transliavimo palaikymas (multicasting), pagalba valdant didelius paketų dydžius ir kt. Pagrindiniai vietinių tinklų tipai, dalyvaujantys Beowulf projekte yra šie: Gigabit Ethernet, Fast Ethernet ir 100 VG AnyLAN. (Aktyviai buvo tiriamos ir bankomatų technologijos galimybės, tačiau, autoriaus žiniomis, tai buvo daroma už šio projekto ribų.)

Kaip pačiam susikurti superkompiuterį

Išanalizavę Beowulf projekto rėmuose atliktų darbų rezultatus, galime padaryti tokią išvadą: rasti sprendimai leidžia savarankiškai surinkti didelio našumo klasterį, paremtą standartiniais PC komponentais ir naudoti įprastą programinę įrangą. Tarp didžiausių atvejų negalima nepaminėti CESDIS 50 mazgų klasterio, kurį sudaro 40 duomenų apdorojimo mazgų (pagrįstų vieno ir dviejų procesorių Pentium Pro/200 MHz plokštėmis) ir 10 mastelio keitimo mazgų (pagal dviejų procesorius Pentium Pro/166 MHz plokštė). Atrodo, kad sąnaudų ir didžiausio našumo santykis tokiame klasteryje yra labai geras. Kyla klausimas, kaip efektyviai galite lygiagretinti programas – kitaip tariant, koks bus tikrasis, o ne didžiausias našumas. Projekto dalyviai šiuo metu sprendžia šią problemą.

Pažymėtina, kad šiandien mokslo bendruomenėje gana madinga statyti klasterius iš įprastų asmeninių kompiuterių. Panašius klasterius planuoja kurti ir kai kurios mūsų šalies akademinės institucijos.

Sujungdami skirtingos talpos ar skirtingos architektūros kompiuterius į klasterį, jie kalba apie nevienalytis(heterogeniniai) klasteriai. Klasterio mazgai vienu metu gali būti naudojami kaip vartotojo darbo vietos. Tuo atveju, kai to nereikia, mazgus galima žymiai pašviesinti ir (arba) sumontuoti stove.

Naudojamos standartinės darbo stočių operacinės sistemos, dažniausiai laisvai platinamos – Linux / FreeBSD, kartu su specialiais įrankiais lygiagrečiam programavimui ir apkrovos paskirstymui palaikyti. Programavimas, kaip taisyklė, pagal pranešimų perdavimo modelį (dažniausiai - MPI). Tai išsamiau aptariama kitoje pastraipoje.

Klasterių architektūros raidos istorija.

DEC buvo pirmoji įmonė, kuri 1983 m. paskelbė klasterio sistemos koncepciją, apibrėždama ją kaip tarpusavyje sujungtų kompiuterių grupę, atstovaujančią vienam informacijos apdorojimo mazgui.

Vienas pirmųjų projektų, davęs pavadinimą visai lygiagrečių sistemų klasei – Beowulf klasteriai – atsirado NASA Goddardo kosminių skrydžių centre, siekiant paremti Žemės ir kosmoso mokslų projektą reikalingais skaičiavimo ištekliais. Beowulf projektas prasidėjo 1994 metų vasarą ir netrukus Intel 486DX4/100 MHz procesoriuose buvo surinktas 16 procesorių klasteris. Kiekviename mazge buvo 16 MB RAM ir 3 Ethernet tinklo adapteriai. Norint dirbti šioje konfigūracijoje, buvo sukurtos specialios tvarkyklės, paskirstančios srautą tarp turimų tinklo plokščių.

Vėliau GSFC buvo surinktas HIVE - labai lygiagrečios integruotos virtualios aplinkos klasteris, kurio struktūra parodyta Fig. 2. Šis klasteris susideda iš keturių pogrupių E, B, G ir DL, jungiančių 332 procesorius ir du dedikuotus pagrindinius kompiuterius. Visuose šio klasterio mazguose veikia RedHat Linux.

1998 m. Los Alamos nacionalinėje laboratorijoje astrofizikas Michaelas Warrenas ir kiti mokslininkai iš Teorinės astrofizikos grupės sukūrė Avalon superkompiuterį, kuris yra Linux klasteris, pagrįstas Alpha 21164A procesoriais, kurių taktinis dažnis yra 533 MHz. Iš pradžių „Avalon“ sudarė 68 procesoriai, vėliau jis buvo išplėstas iki 140. Kiekviename mazge yra 256 MB RAM, 3 GB kietasis diskas ir „Fast Ethernet“ tinklo adapteris. Bendra „Avalon“ projekto kaina buvo 313 000 USD, o 47,7 GFLOPS LINPACK našumas užėmė 114 vietą 12-oje Top500 sąrašo leidimo vietoje šalia 152 procesorių IBM RS/6000 SP sistemos. Tais pačiais 1998 m. prestižiškiausioje konferencijoje didelio našumo skaičiavimo srityje Supercomputing'98 Avalon kūrėjai pristatė pranešimą "Avalon: An Alpha/Linux Cluster Achieves 10 Gflops for $150k", kuri gavo pirmąjį prizą. kategorijoje „geriausias kainos ir kokybės santykis“.

Šių metų balandį Kornelio biomedicininių tyrimų universiteto projektas AC3 įdiegė Velocity+ klasterį, susidedantį iš 64 mazgų su dviem Pentium III/733 MHz procesoriais ir po 2 GB RAM, o bendra disko atmintis – 27 GB. Mazgai veikia „Windows 2000“ ir yra sujungti „Giganet“ cLAN tinklu.

Projektas „Lots of Boxes on Shelfes“ buvo įgyvendintas JAV nacionaliniuose sveikatos institutuose 1997 m. balandžio mėn. ir yra įdomus naudojant Gigabit Ethernet technologiją kaip komunikacijos priemonę. Iš pradžių klasterį sudarė 47 mazgai su dviem Pentium Pro/200 MHz procesoriais, 128 MB RAM ir 1,2 GB vietos diske kiekviename mazge. 1998 metais jis buvo įgyvendintas

kitas projekto etapas – LoBoS2, kurio metu mazgai buvo konvertuojami į stalinius kompiuterius išlaikant klasterizavimą. Dabar LoBoS2 sudaro 100 skaičiavimo mazgų, kuriuose yra du Pentium II / 450 MHz procesoriai, 256 MB RAM ir 9 GB disko atminties. Be to, prie klasterio prijungti 4 valdymo kompiuteriai su bendru 1,2 TB talpos RAID masyvu.

Vienas iš naujausių klasterio patobulinimų buvo AMD Presto III superkompiuteris, kuris yra 78 Athlon procesorių Beowulf klasteris. Kompiuteris įdiegtas Tokijo technologijos institute. Iki šiol AMD sukūrė 8 Beowulf sugrupuotus superkompiuterius, kuriuose veikia Linux.

IBM klasteriai

IBM siūlo kelių tipų laisvai susietas, sugrupuotas RS/6000 pagrįstas sistemas, kuriose veikia High-Availability Clustered Multiprocessor/6000 (HACMP/6000) programinės įrangos produktas.

Klasterio mazgai veikia lygiagrečiai, dalijasi prieiga prie loginių ir fizinių išteklių naudodami užrakto tvarkyklės, kuri yra HACMP/6000 dalis, galimybes.

Nuo 1991 m. paskelbimo HACMP/6000 produktas buvo nuolat tobulinamas. Ji apėmė lygiagrečią išteklių tvarkyklę, paskirstytą užrakto tvarkyklę ir lygiagrečią loginio apimties tvarkyklę, pastaroji suteikia klasterio apkrovos balansavimą. Maksimalus mazgų skaičius klasteryje padidėjo iki aštuonių. Šiuo metu klasteryje yra mazgų su simetrišku kelių apdorojimu, sukurtų naudojant Data Crossbar Switch technologiją, kuri užtikrina linijinį našumo padidėjimą didėjant procesorių skaičiui.

RS/6000 klasteriai yra pagrįsti Ethernet, Token Ring arba FDDI LAN ir gali būti konfigūruojami įvairiais būdais, kad būtų užtikrintas didesnis patikimumas:

  • Karštas budėjimo režimas arba lengvas perjungimas. Šiuo režimu aktyvusis mazgas atlieka programos užduotis, o budėjimo mazgas gali atlikti nekritines užduotis, kurias galima sustabdyti, jei reikia perjungti aktyvųjį mazgą.
  • simetriškas rezervas. Panašus į karštąjį budėjimo režimą, tačiau pagrindinio ir budėjimo mazgų vaidmenys nėra fiksuoti.
  • Abipusis paėmimas arba režimas su apkrovos paskirstymu. Šiuo režimu kiekvienas klasterio mazgas gali „pasiimti“ užduotis, kurios vykdomos bet kuriame kitame klasterio mazge.

IBM SP2 pirmauja didžiausių TOP500 superkompiuterių sąraše pagal įdiegimų skaičių (pasaulyje veikia 141 instaliacija, o iš viso tokių kompiuterių veikia 8275, kurių bendras mazgų skaičius viršija 86 tūkst. Šie superkompiuteriai yra paremti klasterio metodu architektūra naudojant galingą centrinį jungiklį. IBM taiko šį metodą daugelį metų.

Bendra SP2 architektūra

1 paveiksle pateikiama bendra SP2 architektūros idėja. 1. Pagrindinis jo architektūros bruožas yra didelės spartos jungiklio su mažu vėlavimu naudojimas mazgams sujungti vienas su kitu. Ši išoriškai itin paprasta grandinė, kaip parodė patirtis, pasirodė itin lanksti. Iš pradžių SP2 mazgai buvo vienprocesoriai, vėliau atsirado mazgai su SMP architektūra.

Tiesą sakant, visos detalės yra paslėptos mazgų struktūroje. Be to, mazgai yra skirtingų tipų ir netgi kaimyninių mazgų procesoriai gali skirtis. Tai numato

didesnis konfigūracijų lankstumas. Bendras mazgų skaičius skaičiavimo sistemoje gali siekti 512. SP2 mazgai iš tikrųjų yra nepriklausomi kompiuteriai, o tiesioginius jų atitikmenis IBM parduoda nepriklausomais pavadinimais. Ryškiausias to pavyzdys – keturių procesorių RS/6000 44P-270 SMP serveris su Power3-II mikroprocesoriais, kuris pats gali būti priskiriamas vidutinės klasės kompiuteriams ar net mini superkompiuteriams.

SP2 mazguose sumontuoti mikroprocesoriai buvo sukurti pagal dvi architektūrines linijas: Power - Power2 - Power3 - Power3-II ir palei PowerPC liniją iki 604e modelio, kurio laikrodžio dažnis yra 332 MHz.

Tradiciniai SP2 yra „ploni“ (plonas mazgas) ir „platūs“ (platus mazgas) mazgai su SMP architektūra. Juos galima įdiegti kaip PowerPC 604e (nuo dviejų iki keturių procesorių) ir Power3-II (iki keturių). Mazgų RAM talpa svyruoja nuo 256 MB iki 3 GB (naudojant Power3-II – iki 8 GB). Pagrindiniai skirtumai tarp plonų ir plačių mazgų yra susiję su I/O posistemiu. Platūs mazgai skirti užduotims, kurioms reikalingos galingesnės įvesties/išvesties galimybės: juose yra dešimt PCI lizdų (įskaitant tris 64 bitų), palyginti su dviem lizdais plonuose mazguose. Atitinkamai, diskinių įrenginių tvirtinimo nišų skaičius plačiuose mazguose yra didesnis.

Jungiklio greitis pasižymi maža delsa: 1,2 ms (iki 2 ms, kai yra daugiau nei 80 mazgų). Tai yra daug geriau nei tai, ką galite gauti šiuolaikinėse „Beowulf Linux“ grupėse. Didžiausias prievado pralaidumas: 150 MB/s viena kryptimi (t. y. 300 MB/s pilnas dvipusis ryšys). Komutatorių adapteriai, esantys SP2 mazguose, turi tą patį pralaidumą. IBM taip pat praneša apie puikius delsos ir pralaidumo rezultatus.

Galingiausi SP2 mazgai yra „high“ (High Node). Aukštasis mazgas – tai kompleksas, susidedantis iš skaičiavimo mazgo su iki šešių prijungtų I/O išplėtimo įrenginių. Toks mazgas taip pat turi SMP architektūrą ir turi iki 8 Power3 procesorių, kurių taktinis dažnis yra 222 arba 375 MHz.

Be to, šio tipo mazge yra įvesties / išvesties plokštė, kuri taip pat yra prijungta prie sisteminės plokštės. Įvesties/išvesties plokštėje yra du SABRE simetriški loginiai blokai, per kuriuos duomenys perduodami į išorinius įrenginius, pvz

kaip diskai ir telekomunikacijų įranga. Įvesties / išvesties kortelė turi keturis 64 bitų PCI lizdus ir vieną 32 bitų lizdą (33 MHz) ir integruotus UltraSCSI valdiklius, 10/100 Mbps Ethernet, tris nuosekliuosius prievadus ir vieną lygiagretųjį prievadą.

Atsiradus aukštiems mazgams ir Power3-II/375 MHz mikroprocesoriams, IBM SP2 sistemos pasiekė 723,4 GFLOPS Linpack lygiagrečių testų metu. Šis rezultatas buvo pasiektas naudojant 176 mazgus (704 procesorius). Atsižvelgiant į tai, kad galima įdiegti iki 512 mazgų, šis rezultatas rodo, kad komerciniai IBM SP2 gali būti arti 1 TFLOPS ženklo.

„Sun Microsystems“ klasterių sprendimai

„Sun Microsystems“ siūlo klasterių sprendimus, pagrįstus savo SPARCcluster PDB Server produktu, kuriame kaip mazgai naudojami SPARCserver 1000 ir SPARCcenter 2000 kelių procesorių SMP serveriai. SPARCserver 1000 gali turėti iki aštuonių procesorių, o SPARCcenter 2000 – iki 20 SuperSPARC procesorių. Bazinį paketą sudaro: du SPARCserver 1000/1000E arba SPARCcenter 2000/2000E pagrįsti klasterio mazgai, du SPARCstorage masyvai ir klasterio kūrimo rinkinys, apimantis perteklinę ryšių aparatinę įrangą, klasterių valdymo konsolė, SPARCcluster PDB programinė įranga ir klasterio paslaugų paketas.

Siekiant užtikrinti aukštą našumą ir ryšio prieinamumą, klasteris palaiko visišką visų duomenų greitkelių dubliavimą. Klasterio mazgai prijungiami naudojant 100 Mbps SunFastEthernet nuorodas. Disko posistemiams sujungti naudojama 25 Mbps pralaidumo šviesolaidinė sąsaja Fibre Channel, leidžianti nuimti diskus ir mazgus vienas nuo kito iki 2 km atstumu. Visi ryšiai tarp mazgų, mazgų ir disko posistemių yra dubliuojami aparatūros lygiu. Klasterio techninė, programinė ir tinklo įranga užtikrina, kad sistemoje nebūtų tokios vietos, kurios vienas gedimas ar gedimas išvestų visą sistemą.

Universiteto projektai

Įdomi Kentukio universiteto plėtra yra KLAT2 klasteris (Kentucky Linux Athlon Testbed 2). KLAT2 sistemą sudaro 64 mazgai be diskų su AMD Athlon/700 MHz procesoriais ir po 128 MB RAM. Programinė įranga, kompiliatoriai ir matematikos bibliotekos (SCALAPACK, BLACS ir ATLAS) buvo patobulintos, kad būtų galima efektyviai naudoti 3DNow! AMD procesoriai padidina našumą. Didelį susidomėjimą kelia naudojamas tinklo sprendimas, vadinamas „Flat Neighborghood Network“ (FNN). Kiekvienas mazgas turi keturis „Smartlink“ greitojo eterneto tinklo adapterius, o mazgai sujungiami naudojant devynis 32 prievadų jungiklius. Šiuo atveju bet kuriems dviem mazgams visada yra tiesioginis ryšys per vieną iš jungiklių, tačiau nereikia jungti visų mazgų per vieną jungiklį. Optimizuodami programinę įrangą AMD architektūrai ir FNN topologijai, pasiekėme rekordinį kainos ir našumo santykį – 650 USD/GFLOPS.

Idėja padalinti klasterį į dalis buvo įdomaus įsikūnijimo projekte Chiba City, įgyvendintame Argonne nacionalinėje laboratorijoje. Pagrindiniame skaidinyje yra 256 skaičiavimo mazgai, kiekvienas

iš kurių sumontuoti du Pentium III / 500 MHz procesoriai, 512 MB RAM ir 9 GB talpos vietinis diskas. Be skaičiavimo skyriaus, sistemoje yra vizualizacijos skyrius (32 IBM Intellistation asmeniniai kompiuteriai su Matrox Millenium G400 vaizdo plokštėmis, 512 MB RAM ir 300 GB diskai), duomenų saugojimo sekcija (8 IBM Netfinity 7000 serveriai su Xeon / 500 MHz procesoriai ir 300 MHz diskai).GB) ir valdymo skaidinys (12 IBM Netfinity 500 kompiuterių). Visi jie yra sujungti Myrinet tinklu, kuris naudojamas lygiagrečioms programoms palaikyti, taip pat Gigabit Ethernet ir Fast Ethernet tinklais valdymo ir aptarnavimo tikslais. Visi skyriai yra suskirstyti į "miestą" (miestą) 32 kompiuteriams. Kiekvienas iš jų turi savo „merą“, kuris savo „miestui“ aptarnauja lokaliai, sumažindamas paslaugų tinklo apkrovą ir suteikdamas greitą prieigą prie vietinių išteklių.

Klasterių projektai Rusijoje

Rusijai visada buvo didelis didelio našumo kompiuterinių išteklių poreikis, o santykinai maža klasterių projektų kaina buvo rimtas postūmis plačiam tokių sprendimų naudojimui mūsų šalyje. Vienas pirmųjų pasirodė Paritet klasteris, surinktas IVViBD ir susidedantis iš aštuonių Pentium II procesorių, sujungtų Myrinet tinklu. 1999 m. NICEVT buvo išbandytas klasterio sprendimo variantas, pagrįstas SCI tinklu, kuris iš tikrųjų buvo SCI technologijos naudojimo pradininkas kuriant lygiagrečias sistemas Rusijoje.

Didelio našumo klasteris, pagrįstas SCI ryšio tinklu, įdiegtas Maskvos valstybinio universiteto tyrimų skaičiavimo centre. NIVC klasterį sudaro 12 „Excimer“ dviejų procesorių serverių, pagrįstų „Intel Pentium III/500 MHz“, iš viso 24 procesoriai, kurių bendras didžiausias našumas yra 12 milijardų operacijų per sekundę. Bendra sistemos kaina – apie 40 tūkstančių dolerių, arba apie 3,33 tūkst. už 1 GFLOPS.

Klasterio skaičiavimo mazgai vienakrypčiais SCI tinklo kanalais sujungti į dvimatį 3x4 torą ir tuo pačiu metu prijungti prie centrinio serverio per pagalbinį Fast Ethernet tinklą ir 3Com Superstack jungiklį. SCI tinklas yra klasterio šerdis, todėl ši sistema yra unikali superkompiuterių klasės skaičiavimo priemonė, orientuota į platų užduočių klasę. Maksimalus duomenų apsikeitimo greitis SCI tinkle vartotojų programose yra didesnis nei 80 MB / s, o delsos laikas yra apie 5,6 µs. Kuriant šį skaičiavimo klasterį buvo naudojamas „Wulfkit“ integruotas sprendimas, kurį sukūrė „Dolphin Interconnect Solutions“ ir „Scali Computer“ (Norvegija).

Pagrindinis lygiagretaus programavimo klasteryje įrankis yra MPI (Message Passing Interface) versija ScaMPI 1.9.1. Atliekant LINPACK testą, sprendžiant tiesinių lygčių sistemą su 16000x16000 matrica, faktinis našumas buvo didesnis nei 5,7 GFLOPS. Bandant NPB paketą, klasterio našumas yra panašus ir kartais viršija Cray T3E šeimos superkompiuterių su tuo pačiu procesorių skaičiumi našumą.

Pagrindinė Maskvos valstybinio universiteto Mokslinių tyrimų ir plėtros skaičiavimo centro skaičiavimo klasterio taikymo sritis yra fundamentinių mokslinių tyrimų ir ugdymo proceso palaikymas.

Be kitų įdomių projektų, pažymėtina Sankt Peterburgo universitete įdiegtas sprendimas, pagrįstas Fast Ethernet technologija: surinkti klasteriai gali būti naudojami ir kaip pilnavertės savarankiškos auditorijos, ir kaip viena kompiuterinė instaliacija, sprendžianti vieną užduotį. Samaros mokslo centre

pasuko heterogeninio skaičiavimo klasterio kūrimo keliu, į kurį įeina kompiuteriai, pagrįsti Alpha ir Pentium III procesoriais. Sankt Peterburgo technikos universitete Alpha procesoriais ir Myrinet tinklu pagrįsta instaliacija surenkama nenaudojant vietinių diskų skaičiavimo mazguose. Ufos valstijos aviacijos technikos universitetas kuria klasterį, pagrįstą dvylika Alpha stočių, Fast Ethernet tinklu ir Linux operacine sistema.

Maskvos valstybinio inžinerinės fizikos instituto (Technikos universiteto) katedra 29 "Išmaniųjų sistemų valdymas" Santrauka tema: Klasterinės sistemos
Panašūs straipsniai

2022 m. my-cross.ru. Katės ir šunys. Maži gyvūnai. Sveikata. Vaistas.