Scalable Heterogeneous Supercomputing: Programming Methodologies and Automated Code Generation
Mohammed Sourouri · NORA - Norwegian Open Research Archives · 2015
Flerkjerne-prosessorer som grafikkprosessorer (GPUer) og Xeon Phi leverer enorm beregningskraft med et lavt effektforbruk. Denne egenskapen har ført til at slike prosesseringsenheter på kort tid har blitt svært populære til bruk i vitenskapelig tungregning. Stadig flere moderne superdatamaskiner og tungregningsklyng er utstyres med slike prosesseringsenheter i tillegg til tradisjonelle prosessorer (CPUer). Utfordringen med flerkjerne-prosessorer er imidlertid at de er betydelig vanskeligere å programmere enn CPUer, og det mangler gode tilpassede programmeringsspråk og modeller – noe som fører til at store deler av maskinvaren forblir ubenyttet. Ringvirkningene er aller mest synlige i de største klyngene der lav ytelse og dårlig skalering setter en stopper for utviklingen av mer kompliserte simuleringer. Målet med denne avhandlingen er å bidra til nye og mer effektive programmeringsmetoder som forbedrer ressursutnyttelsen i superdatamaskiner utstyrt med GPUer. Ved å fordele beregninger mellom GPU og CPU viser vi at slike heterogene beregninger er vesentlig mer effektive sammenliknet med mer etablerte beregningsmodeller der beregningene foregår utelukkende på GPU eller CPU. For å redusere kompleksiteten som kommer med heterogene beregninger, har vi utviklet et rammeverk bestående av en programmeringsmodell og en kompilator som gjør det enkelt å oversette sekvensielle beregninger til distribuerte og parallelle heterogene beregninger som kan kjøres på en superdatamaskin utstyrt med både GPU-og CPU-er.