Nahajate se tukaj

Predstavitev sestava

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.Slika HPC

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.


Programska oprema

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:

  1. Ansys Multiphysics
  2. Ansys CFX, Fluent, Maxwell, HFSS
  3. OpenFOAM CFD + extend
  4. VisIt in ParaView postprocesor
  5. Intel F90, CC
  6. TotalView, Allinea DDT
  7. Modelirnik Siemens NX in ProEngineer
  8. Octave, R, Mathematica
  9. OpenMP, OpenMPI, HPMPI, IntelMPI
  10. ATLAS, BLAS, BLACS, FFTW, GOTO, MUMPS, NetCDF, HDF5, Sparsekit, Scalapack, ...

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:

  1. C ali C++
  2. Fortran 90 ali Fortran 95

Za delo na HPC sestavu moramo uporabiti še knjižnice MPI ter s predprocesorske direktive sistema OpenMP .
 

Strojna oprema

Sestav (Cluster) vsebuje naslednje osnovne komponente:

  1. nadzorni strežniki (master and login nodes)  skrbijo za razdeljevanje nalog po delovnih rezinah
  2. delovna vozlišča (worker nodes) prevzemajo naloge in si delijo delo glede na vrsto problema
  3. datotečni strežnik (ZFS, NFS, LUSTRE) posreduje podatke in skrbi za njihovo shranjevanje
  4. omrežni del (Infiniband, Ethernet) povezuje sestav med seboj in zagotavlja komunikacijo

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.

Podrobnejša zgradba sistema

  1. Nadzorno vozlišče  z NX strežnikom DL160 G6:
    • 2x Intel Xeon X5670
    • 48GB spomina
    • 2x 500GB SAS disk (sistem, mirror)
    • remote management
  2. 25 TB NFS strežnik za $HOME
    • Ohišje DL180 G6 in D2700 za diskovno polje
    • Procesor E5504
    • 8GB spomina 3x2GB 2Rx8
    • 10 Gbit NFS
    •  50 x SFF 500GiB 2.5" SATA2 disk (data)
  3. 12 TB LUSTRE strežniki DL170  v ohišju DL1000 za $WORK
    • 6 x OSS strežniki
      • 4x SFF 500GB SATA diski v RAID5
      • E5504 procesor
      • 4GB RAM
    • MDS strežnik
      • 2x160GB SFF SATA diski  v RAID1 za sistem
      • 6xSATA 160GB diski za OST
      • E5504 procesor
      • 8GB RAM
  4. Infiniband mreža 72 port QDR - prepustnost 32Gbit/s
    • 6 x Voltaire 32port vezano v "fat-tree" topologijo z "constant bisection bandwidth"
    • 4 x 48 portna ProCurve 1Gbit stikala z 4x10Gbit uplink
  5. Delovna vozlišča SL2x170zG6 z Infinibandom 64x - 64 vozlišč x 6 jeder x 2 procesorja = 768 jeder (1536 procesnih niti)
    • 2 x Intel Xeon X5670/vozlišče
    • 48GB 2R DDR3 spomin
    • 500 GB disk
    • Infiniband QDR HBA
    • remote management
  6. VMware ESXi strežnik za delovne postaje za pripravo podatkov dostopne preko NX
    • DL180 G6
    • 2x X5670 procesorja
    • 48GB spomina 12x4GB 2Rx4
    • 6 x 500GiB 2.5" SATA diskov  v RAID10

Povezave

PriponkaVelikost
PDF icon HPC_for_dummies.pdf778.77 KB