Un esempio delle simulazioni che i ricercatori vorrebbero condurre con K-Athena. L'immagine mostra una sezione di un riquadro tridimensionale di una simulazione di turbolenza guidata che illustra la densità del fluido/plasma. Attestazione:Greta, Glines &O'Shea.
L'esecuzione di simulazioni su larga scala è un aspetto cruciale della moderna ricerca scientifica, tuttavia spesso richiede una grande quantità di risorse computazionali. Mentre ci avviciniamo all'era dell'exascale computing, che sarà caratterizzato dall'introduzione di supercomputer altamente performanti, i ricercatori hanno cercato di sviluppare nuove architetture e codici per soddisfare gli enormi requisiti computazionali dei nostri tempi. Una proprietà importante da considerare quando si sviluppano codici per l'era dell'exascale computing è la portabilità delle prestazioni, che impedisce il ripetuto, refactoring non banale di un codice per diverse architetture.
A tal fine, ricercatori della Michigan State University hanno recentemente sviluppato K-Athena, un codice magnetoidrodinamico portatile ad alte prestazioni (MHD). I codici magnetoidrodinamici (MHD) sono tecniche e algoritmi numerici che possono aiutare a risolvere problemi relativi ai fluidi elettricamente conduttori. Il codice dei ricercatori, presentato in un articolo pre-pubblicato su arXiv, combina Atena++, un codice MHD esistente, con Kokkos, un paradigma di programmazione parallela su nodo portatile ad alte prestazioni.
"Nel processo in corso di sviluppo dei primi supercomputer esascala è diventato chiaro che le attuali architetture hardware non sono adatte a raggiungere questo obiettivo e che sono necessarie nuove architetture, "Filippo Greta, uno dei ricercatori che ha condotto lo studio, ha detto a TechXplore. "Dal punto di vista del software, le nuove architetture di solito richiedono una riscrittura significativa del codice esistente per utilizzare in modo efficiente le nuove funzionalità hardware. La ricerca nel nostro gruppo si basa su simulazioni dettagliate su larga scala e vogliamo essere pronti a utilizzare i nuovi supercomputer al massimo delle loro potenzialità non appena saranno disponibili".
L'obiettivo alla base dello studio condotto da Grete e dai suoi colleghi era quello di rendere portatili i codici che usano spesso nelle loro prestazioni di ricerca. In altre parole, i ricercatori volevano che i loro codici funzionassero ad alta efficienza su molte architetture diverse, utilizzando un unico codice di base.
"Originariamente, K-Athena è stato progettato come un proof-of-concept combinando Kokkos (una libreria di portabilità delle prestazioni) con Athena++ (un codice CPU esistente) per consentire simulazioni accelerate dalla GPU, "Grete ha spiegato. "Tuttavia, nel corso del progetto e osservando la performance è diventato chiaro che K-Athena è diventato più di un proof-of-concept e ora è un flessibile, codice pronto per la produzione che viene eseguito su qualsiasi architettura. Con questo documento, volevamo condividere sia la nostra esperienza che il codice stesso con la comunità più ampia."
Un ulteriore esempio delle simulazioni che i ricercatori vorrebbero condurre con K-Athena. L'immagine mostra un rendering volumetrico di un vortice di Taylor-Green in decadimento (problema di transizione a turbolenza) che illustra strutture vorticose/rotazionali (superfici) e linee di campo magnetico (rosso). Attestazione:Greta, Glines &O'Shea.
K-Athena funziona astraendo i componenti computazionalmente più costosi di una determinata simulazione. In fase di compilazione (cioè quando un codice sorgente viene tradotto in codice macchina/hardware), la libreria Kokkos del codice sostituisce queste astrazioni con costrutti ottimali per la macchina o l'hardware specifici utilizzati dall'utente.
"Questo approccio è diverso da altri codici legacy che spesso mantengono più basi di codice per consentire simulazioni su diverse architetture, come CPU o GPU, " disse Grete. " In generale, il vantaggio chiave di K-Athena è che lo scienziato naturale può ora concentrarsi sul contenuto stesso della simulazione e non deve preoccuparsi dell'ottimizzazione del codice e/o della scrittura di più versioni del codice sorgente per diverse architetture. Quest'ultimo è "esternalizzato" agli scienziati informatici che lavorano su Kokkos insieme ai fornitori di hardware."
I test effettuati da Grete e dai suoi colleghi suggeriscono che la portabilità delle prestazioni di K-Athena funziona davvero. Infatti, il loro codice è stato eseguito in modo efficiente sul primo, nono, 24 ns e 33 rd tra i supercomputer più veloci al mondo, abbracciando quattro diverse architetture. I ricercatori hanno anche dimostrato la scalabilità del loro approccio applicandolo praticamente all'intero supercomputer Summit (attualmente il più veloce al mondo), solo circa due mesi dopo il suo lancio ufficiale all'inizio di quest'anno.
"Da un punto di vista generale, speriamo che i nostri risultati incoraggino altri gruppi di ricerca a esplorare anche la portabilità delle prestazioni nei loro codici aumentando eventualmente la produttività scientifica (dedicando più tempo alla scienza e meno alla riscrittura/ottimizzazione del codice) o a costruire sul codice che abbiamo pubblicato, " disse Greta.
Lo studio condotto da Grete e dai suoi colleghi offre un valido esempio di come il codice può essere adattato per soddisfare le grandi esigenze computazionali dell'era moderna. Nella loro carta, i ricercatori delineano le loro strategie di implementazione e le sfide che hanno incontrato nel tentativo di massimizzare le prestazioni computazionali. Sperano che la loro esperienza e intuizione ispiri altri team di ricerca a iniziare a preparare i loro codici e la loro architettura per l'era dell'exascala.
"Il nostro gruppo è generalmente interessato alla turbolenza magnetizzata e ai plasmi diffusi che si trovano in molti sistemi astrofisici, " ha aggiunto Grete. "Intendiamo utilizzare K-Athena per simulare quelli con dettagli senza precedenti sia per quanto riguarda la risoluzione che la fisica che possiamo includere. Questo ci permetterà di affrontare domande senza risposta che richiedono grandi scale dinamiche (ad es. rispetto ai trasferimenti di energia nei plasmi spaziali) o relativi a effetti su piccola scala come l'amplificazione del campo magnetico tramite la dinamo su piccola scala."
© 2019 Science X Network