Reikia mašinos, kuri per sekundę galėtų atlikti trilijonus slankiojo kablelio skaičiavimų? O gal jums reikia šaunios istorijos apie asmeninį superkompiuterį, kuris išjungė jūsų kaimo šviesas? Sukurti superkompiuterį yra įdomus iššūkis, jei esate turtingas genijus, turintis laisvo laiko. Techniškai daugiaprocesorius superkompiuteris yra kompiuterių tinklas, kuris kartu sprendžia problemą. Šiame straipsnyje trumpai aptarsime kiekvieną jo kūrimo etapą, daugiausia dėmesio skiriant aparatinei ir programinei įrangai.
Žingsnis
1 žingsnis. Pirmiausia išsiaiškinkite, kokių aparatinės įrangos komponentų jums reikės
Vienas pagrindinis mazgas, bent keliolika vienodų skaičiavimo mazgų, eterneto jungiklis, maitinimo paskirstymo įrenginys (PDU) ir serverio stovas. Taip pat sužinokite apie elektros energiją, aušinimą ir erdvės poreikius. Nurodykite privataus tinklo IP adresą, mazgų pavadinimus, programinės įrangos paketus, kuriuos norite įdiegti, ir kokią technologiją norite naudoti, kad jie visi veiktų kartu ir atliktų lygiagrečius skaičiavimus (daugiau apie tai žemiau).
- Nors jums reikalinga techninė įranga yra brangi, šiame vadove esanti programinė įranga yra nemokama ir dauguma jos yra atvirojo kodo.
- Jei norite pamatyti, kaip greitai bus jūsų superkompiuteris (teoriškai), naudokite tai:
Žingsnis 2. Sukurkite skaičiavimo mazgus
Galite patys surinkti reikalingus skaičiavimo mazgus arba naudoti paruoštą serverį.
- Pasirinkite kompiuterio serverio sistemą, kuri maksimaliai padidina erdvę, aušinimą ir energijos vartojimo efektyvumą.
- Arba galite naudoti maždaug tuziną pasenusių serverių. Kai jie naudojami kartu, jie yra daug naudingesni nei naudojant atskirai, ir jūs galite sutaupyti nemažai. Visi procesoriai, tinklo adapteriai ir pagrindinės plokštės turi būti vienodi, kad sistema veiktų sklandžiai. Žinoma, nepamirškite kiekvieno mazgo RAM ir atminties talpos bei bent vieno pagrindinio mazgo optinio įrenginio.
Žingsnis 3. Įdėkite serverį, kurį sukūrėte, į serverio stovą
Pradėkite nuo apačios, kad išvengtumėte prieštaravimų viršuje. Pakvieskite draugą padėti, nes perkrauti serverių rinkiniai gali tapti tokie sunkūs, kad sunku juos sutalpinti į stalčius.
Žingsnis 4. Įdėkite eterneto jungiklį ant serverio rėmo
Pasinaudokite šia galimybe ir sukonfigūruokite: suteikite jam 9000 baitų kadro dydį, nustatykite IP adresą į statinį adresą, kurį nurodėte atlikdami 1 veiksmą, ir išjunkite nereikalingus maršrutizavimo protokolus, tokius kaip SMTP šnipinėjimas.
5 žingsnis. Įdiekite maitinimo paskirstymo įrenginį
Didelio našumo skaičiavimui jums gali prireikti 220 voltų, priklausomai nuo to, kiek srovės reikia mazgui esant maksimaliai apkrovai.
Žingsnis 6. Kai viskas bus įdiegta, galite pradėti konfigūravimo procesą
„Linux“yra būtina operacinė sistema, skirta didelio našumo skaičiavimo grupėms, nes ji ne tik idealiai tinka moksliniams skaičiavimams, bet ir yra 100% nemokama. Jei mazgai pasiekia šimtus ar net tūkstančius, tai tikrai bus labai brangu, jei naudosite „Windows“!
- Pradėkite diegdami naujausią pagrindinės plokštės BIOS versiją ir programinę -aparatinę įrangą. Įdiegta versija turi būti vienoda visiems mazgams. Pradėkite diegti naujausią pagrindinės plokštės BIOS versiją ir programinę -aparatinę įrangą, kuri visuose mazguose turėtų būti vienoda.
- Įdiekite norimą „Linux“distribuciją kiekviename mazge su grafine sąsaja pagrindiniame mazge. Populiariausi pasirinkimai yra „CentOS“, „OpenSuse“, „Scientific Linux“, „RedHat“ir SLES.
- Autorius primygtinai rekomenduoja naudoti „Rocks Cluster Distribution“. „Rocks“akimirksniu įdiegs visas jūsų superkompiuteriui reikalingas programas ir panaudos puikų būdą „pasidalyti“visuose esamuose mazguose, naudodamas „Red Hat“PXE įkrovos ir „Kick Start“procedūrą.
Žingsnis 7. Įdiekite pranešimų sąsają, išteklių valdymą ir kitas svarbias programinės įrangos bibliotekas
Jei anksčiau neįdiegėte „Rocks“, turėsite patys paruošti programinę įrangą, reikalingą lygiagretaus skaičiavimo mechanizmui įjungti.
- Pirma, jums reikės nešiojamos „bash“valdymo sistemos, tokios kaip „Torque Resource Manager“, kuri dalinsis darbais tarp mašinų.
- Susiekite sukimo momentą su „Maui Cluster Scheduler“, kad užbaigtumėte sąranką.
- Tada turite įdiegti pranešimų sąsają, kuri reikalinga tam, kad atskiri skaičiavimo mazgai dalintųsi tais pačiais duomenimis. „OpenMP“yra tikras pasirinkimas.
- Nepamirškite kelių gijų matematikos bibliotekų ir kompiliatorių, kad sukurtumėte jums reikalingas lygiagrečias skaičiavimo programas. Arba tiesiog įdiekite „Rocks“, kad būtų dar lengviau.
8. Sujunkite visus skaičiavimo mazgus į tinklą
Pagrindinis mazgas nusiųs skaičiavimo užduotis skaičiavimo mazgui, kuris tada turi atsiųsti rezultatus, keisdamasis pranešimais. Kuo greičiau, tuo geriau.
- Naudokite privatų eterneto tinklą, kad prijungtumėte visus savo superkompiuterių grupės mazgus.
- Pagrindinis mazgas gali būti NFS, PXE, DHCP, TFTP ir NTP serveris eterneto tinkle.
- Turite atskirti šį tinklą nuo viešojo tinklo, kad įsitikintumėte, jog siunčiami paketai netrukdo kitiems vietinio tinklo tinklams.
Žingsnis 9. Išbandykite sukurtą superkompiuterį
Prieš naudodamiesi kitais, rekomenduojame pirmiausia išbandyti savo superkompiuterio našumą. HPL (High Performance Linpack) yra populiarus superkompiuterių skaičiavimo greičio matavimo etalonas. Turėsite kompiliuoti iš šaltinio, naudodami visas optimizavimo parinktis, kurias siūlo kompiliatorius, kurį naudojate pasirinktai architektūrai.
- Žinoma, turite surinkti iš šaltinio visas galimas savo platformos optimizavimo parinktis. Pavyzdžiui, jei naudojate AMD procesorių, sukompiliuokite jį naudodami „Open64“su optimizavimo lygiu -0 Fast.
- Palyginkite savo testų rezultatus svetainėje TOP500.org ir palyginkite savo superkompiuterį su 500 greičiausių superkompiuterių pasaulyje!
Patarimai
- Jei norite pasiekti didelį tinklo greitį, pažvelkite į „InfiniBand“tinklo sąsają. Žinoma, jūs turite būti pasirengę sumokėti papildomą kainą.
- IPMI gali supaprastinti didelių superkompiuterių grupių administravimą, suteikdamas KVM per IP, nuotolinio maitinimo ciklo valdymą ir kitas funkcijas.
- Naudokite „Ganglia“, kad stebėtumėte mazgų apkrovą.