Zahtevni inženirski raziskovalni problemi potrebujejo razporeditev računskih operacij in vzporedno reševanje na več procesih. Sestav računalnikov (cluster) lahko s porazdelitvijo na več vzporednih procesov rešuje probleme, ki bi zahtevali tedne, mesec ali celo leto pri dveh, treh ali štirih procesorskih enotah. S sestavom, ki ima 500 ali več procesorskih enot se ta čas bistveno skrajša in predvsem omogoča pospešen vpogled v rezultate. Tako dosežemo hitrejše iskanje rešitve, ki je na namiznem računalniku celo nemogoča. Na področju simulacij tehničnih sistemov je uporaba takih super-računalnikov samoumevna.
Računalniško podprte simulacije realnih problemov so postale osnovna podpora eksperimentom in teoriji. V prihodnosti bo znanstvene probleme mogoče reševati bolj ali manj s pomočjo super-računalnikov. Uporabniki in proizvajalci takšne opreme so že pred časom spoznali prednosti, ki jo nudijo računski sestavi, če temeljijo na standardnih komponentah.
Glavni namen HPC sestava je razširitev računskih zmogljivosti. Obsežne računske naloge so razdeljene hkrati na več računskih vozlišč, ki skupaj računajo večji problem. Povezave med vozlišči s hitro InfiniBand mrežo omogočajo boljšo povezavo med glavnim procesom in delovnimi procesi. Istočasno lahko hkrati obravnavamo en sam problem z različnimi parametri in tako dobimo v zelo kratkem času celoten spekter rešitev.
Z porazdeljenim in vzporednim računanjem lahko torej dobimo povsem nove možnosti in predvsem pomembno boljši vpogled na vseh področjih raziskovalnega dela. Prednost in upravičenost investicije v tak računski sestav je torej že v realni možnosti za vse raziskovalce, ki do sedaj niso imeli dostopa ali pa so morali iskali vire drugod.
Na sestavu se praviloma razvijajo lastni programski paketi. Obstajajo tudi komercialni programski paketi, ki zmorejo izkoriščati takšne vire porazdeljenega računanja z OpenMPI in OpenMP protokolom, ki sta osnova tudi za razvoj novih programov. Del sestava je predviden za nezahtevno porazdeljeno računanje s tehnologijo GRID. GRID je računski sestav, ki pa ima manjše mrežne zmogljivosti. GRID sestavi lahko dopolnjujejo cluster ali pa služijo kot računski deli programov z MPI protokolom. Vključitev sicer »majhnega« GRID sestava v evropski skupek, kot je www.eu-egee.org omogoča sodelovanje in vstop v panevropski konzorcij GRID sestavov. Konzorcij omogoča dostop do veliko večjih zmogljivosti v kolikor bi se za to pokazale potrebe na projektih. Način GRID v osnovi ni tehnologija vzporednega izvajanja programov pač pa filozofija porazdeljenega računanja na abstraktni računski platformi. GRID poleg zaporednega računanja omogoča oba načina (MPI in OpenMP) vzporednega izvajanja programov. Programi ki se izvajajo v okolju GRID pa običajno nimajo velikih potreb po komunikaciji. Programi so tako običajno manj zahtevni, kar se tiče kominiciranja. Imajo pa večje potrebe po številu nalog s krajšim računskim časom (do enega fneva). Tako je za GRID računanje običajno, da obstaja veliko število nalog, ki jih je potrebno porazdeliti na vse razpoložljive računske vire. Primarna naloga GRID računanja je torej razporeditev na razpoložljive vire tudi izven raziskovalne organizacije. Za dostop do GRID računskih zmogljivosti je potrebna včlanitev v eno od virtualnih organizacij, v katero so vključene organizacije, ki računske vire dajejo na voljo tudi drugim organizacijam s skupnim interesom. Virtualne organizacije se ustanavljajo na pobudo za delo na skupnih projektih ali s ciljem optimiranja stroškov opreme. Organizacija vključena v eno od virtualnih organizacij ima tako na voljo veliko večje računske kapacitete, kot če bi za nje skrbela sama! Poleg virtualnih organizacij obstajajo še nacionalne GRID iniciative s podobnimi cilji optimiranja izkoristka virov in znanja.
Operacijski sistem sestava je Linux, kot je to praksa na praktično vseh zmogljivejših sestavih. Zaradi kompatibilnosti sestava HPCFS je izbrana distribucija CentOS, ki je kompatibilna z distribucijo eminentnejšega komercialnega ponudnika. Plačljiva programska oprema običajno zahteva RHEL ali SLES distribucijo operacijskega sistema. Oba sistema temeljita na RPM sistemu pakiranja programske opreme.
Operacijski sistem Linux je na vsakem vozlišču enako nastavljen. V novembru 2014 je bil sistem nadgrajen na zadnjo različico CentOS 6.6. Poleg računskih vozlišč je uporabnikom na voljo nadzorno vozlišče prelog, ki skrbi za zaslonske seje in omogoča podporo za računska vozlišča. Uporabnik s svojega računalnika dostop do sestava HPCFS prek mreže ARNES z uporabo NX klienta ali varne ssh povezave nameščene lokalno. Ko se uporabnik se prijavi v nadzorno vozlišče ima nato na volje lokalo omrežje HPCFS, ki omogoča povezavo z računskimi vozlišči s pomočjo zasebnega IP-naslovnega prostora preko 10GiBit omrežne strojne opreme in Infiniband omrežja. Taka shema omogoča da so računska vozlišča "navidezni" vir, ki se upravlja s programsko opremo za čakalne vrste LSF. Tak pristop omogoča da je sestavu veliko število vozlišč in osnovo za prihodnjo rast sestava. Prijavno vozlišče sestava je namenjeno za uporabo prevajalnikov, ki se poganjajo v ukazni lupini terminala, poganjanje in pošiljanje programov na računska vozlišča. Nadzorno vozlišče ni namenjeno poganjaju računsko zahtevnih programov. Vsi računsko zahtevni programi in splošno programi se morajo poganjati na računskih vozliščih z uporabo ukaza bsub preko različnih čakalnih vrst LSF.
Pri konfiguriranju primernega sestava je bistveno poznavanje aplikacij in uporabnikov, ki tak HPC in GRID sestav uporablja. Na sestavu je nameščena naslednja programska oprema:
Na osnovi znanja o HPC sestavih smo ugotovili , da inženirski problemi zahtevajo „fat“ node. To pomeni da moramo imeti veliko RAM-a in hitre procesorje. Določena programska oprema zahteva celo „scratch“ disk (npr.: LUSTRE (Ansys sparse solver). Aplikacije se običajno izvajajo paralelno na osnovi MPI in manj na sistemu OpenMP (SMP) zaradi enostavnejše skalabilnosti. Pristopi in uporaba pa je odvisno tudi od velikosti problemov, ki jih rešujemo na HPC sestavu. Samostojno napisani programski paketi so v manjših raziskovalnih skupinah le želja, saj je za vsakega potrebno vložiti precej truda in financ. Pri tem imamo v mislih program , ki je dolgoročno učinkovit oz. uporaben. Razvoj lastnih programov je možen predvsem v dveh programskih jezikih:
Za delo na HPC sestavu moramo uporabiti še knjižnice MPI ter s predprocesorske direktive sistema OpenMP .
Sestav (Cluster) vsebuje naslednje osnovne komponente:
Vsa vozlišča na sestavu HPCFS so v SMT (Hyper-Threading) z vklopljenim Turbo načinom in upravljanje s frekvenco procesorjev "ondemand governor". Na ta način lahko serijske aplikacije, ki izkoriščajo le eno do dva jedra na vozlišče, pohitrimo za 10%. Takrat je namreč frekvenca procesorjev do 3.3HGz namesto nominalne 2.933GHz. Če je procesov tja do šest pa je lahko pospešek lahko do 3.2GHz. Upravljanje nad Turbo frekvenco je v domeni procesorjev samih in je odvisno tudi od drugih faktorjev, kot je npr. temperatura. Pri naših (enostavnih) meritvah na enem jedru smo dosegli 9% pospešek. SMT pa omogoča, da na enem vozlišču vidite 24 procesorjev in ne samo 12. Prednost teh "senčnih" jeder se pokaže predvsem v večnitnih programih, kot je večina OpenMP in hibridnih MPI+OpenMP. Po nekaterih naših meritvah je pospešek okoli 30%. Klasični MPI programi, ki ne nitkajo, seveda ne morejo pridobiti na hitrosti. Zato je Load Sharing Facility (LSF), kaže 12 jeder za MPI procese s tem, da je možno 24 niti. Izguba na hitrosti zaradi vklopljenega SMT je manj kot 1%. Upravljanje s frekvenco smo prepustili "ondemand" upravitelju v jedru, ki neizrabljena jedra upočasni na 1.6GHz, ter tako varčuje z energijo.
Priponka | Velikost |
---|---|
HPC_for_dummies.pdf | 778.77 KB |