• Home
  • Chimica
  • Astronomia
  • Energia
  • Natura
  • Biologia
  • Fisica
  • Elettronica
  • Preparazione di applicazioni scientifiche per il calcolo exascale

    I computer Exascale verranno utilizzati per risolvere problemi in un'ampia gamma di applicazioni scientifiche, anche per simulare le operazioni di vita di piccoli reattori nucleari modulari (a sinistra) e per comprendere la complessa relazione tra i processi di stampa 3D e le proprietà dei materiali (a destra). Credito:Oak Ridge National Lab

    I computer Exascale dovrebbero presto debuttare, tra cui Frontier presso l'Oak Ridge Leadership Computing Facility (OLCF) del Dipartimento dell'Energia degli Stati Uniti (DOE) e Aurora presso l'Argonne Leadership Computing Facility (ALCF), sia DOE Office of Science User Facilities, nel 2021. Si prevede che questi sistemi informatici di nuova generazione supereranno da cinque a dieci volte la velocità dei supercomputer più potenti di oggi. Questo aumento delle prestazioni consentirà agli scienziati di affrontare problemi altrimenti irrisolvibili in termini di complessità e tempo di calcolo.

    Ma raggiungere un livello di prestazioni così elevato richiederà adattamenti del software. Per esempio, OpenMP:le interfacce di programmazione delle applicazioni standard per il calcolo parallelo a memoria condivisa, o l'uso di più processori per completare un'attività, dovrà evolversi per supportare la stratificazione di memorie diverse, acceleratori hardware come unità di elaborazione grafica (GPU), varie architetture di calcolo exascale, e gli ultimi standard per C++ e altri linguaggi di programmazione.

    Evolvere OpenMP verso exascale con il progetto SOLVE

    A settembre 2016, il DOE Exascale Computing Project (ECP) ha finanziato un progetto di sviluppo software chiamato SOLLVE (for Scaling OpenMP via Low-Level Virtual Machine for Exascale Performance and Portability) per aiutare in questa transizione. Il team del progetto SOLLVE, guidato dal Brookhaven National Laboratory del DOE e composto da collaboratori dell'Argonne del DOE, Lawrence Livermore, e laboratori nazionali di Oak Ridge, e Georgia Tech—ha progettato, attuazione, e standardizzare le funzionalità chiave di OpenMP che gli sviluppatori di applicazioni ECP hanno identificato come importanti.

    Guidato da SOLVE e sponsorizzato da ECP, La Computational Science Initiative (CSI) di Brookhaven Lab ha ospitato un hackathon OpenMP di quattro giorni dal 29 aprile al 2 maggio, organizzato congiuntamente con Oak Ridge e IBM. L'hackathon OpenMP è l'ultimo di una serie di hackathon offerti da CSI, compresi quelli incentrati sulle GPU NVIDIA e sui processori multi-core Intel Xeon Phi.

    "OpenMP sta subendo cambiamenti sostanziali per soddisfare i requisiti dei prossimi sistemi di elaborazione exascale, " ha affermato il coordinatore locale dell'evento Martin Kong, uno scienziato computazionale nel Computer Science and Mathematics Group di CSI e il rappresentante del Brookhaven Lab nell'OpenMP Architecture Review Board, che sovrintende alle specifiche dello standard OpenMP. "Portare codici scientifici sul nuovo hardware e architetture exascale sarà una grande sfida. La motivazione principale di questo hackathon è il coinvolgimento delle applicazioni:interagire più profondamente con diversi utenti, specialmente quelli dei laboratori DOE, e renderli consapevoli dei cambiamenti che dovrebbero aspettarsi in OpenMP e di come questi cambiamenti possono avvantaggiare le loro applicazioni scientifiche."

    Il supercomputer Summit. Credito:Oak Ridge National Lab

    Gettare le basi per la portabilità delle prestazioni delle applicazioni

    Scienziati computazionali e di dominio, sviluppatori di codice, ed esperti di hardware informatico di Brookhaven, Argonne, Lawrence Berkeley, Lawrence Livermore, Cresta della quercia, Georgia Tech, Università dell'Indiana, Università del riso, Università dell'Illinois a Urbana-Champaign, IBM, e la National Aeronautics and Space Administration (NASA) hanno partecipato all'hackathon. Le otto squadre sono state guidate dal National Lab, Università, e mentori del settore che sono stati selezionati in base alla loro vasta esperienza nella programmazione di GPU, partecipando all'OpenMP Language Committee, e conducendo ricerca e sviluppo in strumenti che supportano le ultime specifiche OpenMP.

    Durante la settimana, i team hanno lavorato al porting delle loro applicazioni scientifiche dalle unità di elaborazione centrale (CPU) alle GPU e all'ottimizzazione utilizzando l'ultima versione di OpenMP (4.5+). Tra le sessioni di hacking, i team avevano tutorial su varie funzionalità OpenMP avanzate, compresa la programmazione dell'acceleratore, strumenti di profilazione per valutare le prestazioni, e strategie di ottimizzazione delle applicazioni.

    Alcuni team hanno anche utilizzato le ultime funzionalità OpenMP per programmare le CPU IBM Power9 accelerate con le GPU NDIVIA. Il supercomputer più veloce del mondo, il supercomputer Summit dell'OLCF, si basa su questa nuova architettura, con più di 9000 CPU IBM Power9 e più di 27, 000 GPU NVIDIA.

    Fare passi verso l'esascala

    Le applicazioni dei team hanno abbracciato molte aree, compresa la fisica nucleare e delle alte energie, laser e ottica, scienza dei materiali, sistemi autonomi, e meccanica dei fluidi.

    Uno schema del reticolo per i calcoli della cromodinamica quantistica. I punti di intersezione sulla griglia rappresentano i valori dei quark, mentre le linee tra di loro rappresentano i valori dei gluoni. Credito:Brookhaven National Laboratory

    Il partecipante David Wagner del Langley Research Center della NASA High Performance Computing Incubator e i colleghi Gabriele Jost e Daniel Kokron del NASA Ames Research Center hanno fornito un codice per simulare l'elasticità. Il loro obiettivo all'hackathon era aumentare l'istruzione singola, Parallelismo di dati multipli (SIMD), un tipo di elaborazione in cui più processori eseguono la stessa operazione su più punti dati contemporaneamente e ottimizzano la velocità con cui i dati possono essere letti e archiviati in memoria.

    "Gli scienziati della NASA stanno cercando di capire come e perché i materiali degli aerei e dei veicoli spaziali falliscono, " ha detto Wagner. "Dobbiamo assicurarci che questi materiali siano abbastanza resistenti da resistere a tutte le forze che sono presenti nell'uso normale durante il servizio. All'hackathon, stiamo lavorando a una mini app rappresentativa delle parti più complesse dal punto di vista computazionale del programma più ampio per modellare ciò che accade fisicamente quando i materiali vengono caricati, piegato, e allungato. Il nostro codice ha molte piccole formule che devono essere eseguite miliardi di volte. La sfida è eseguire tutti i calcoli molto velocemente".

    Secondo Wagner, uno dei motivi per cui la NASA sta spingendo per questa capacità computazionale ora è comprendere i processi utilizzati per generare parti prodotte in modo additivo (stampate in 3-D) e le diverse proprietà dei materiali di queste parti, che sono sempre più utilizzati negli aerei. La conoscenza di queste informazioni è importante per garantire la sicurezza, affidabilità, e la durata dei materiali durante la loro vita operativa.

    "L'hackathon è stato un successo per noi, " ha detto Wagner. "Abbiamo impostato il nostro codice per l'esecuzione massicciamente parallela e per funzionare correttamente sull'hardware della GPU. Continueremo con il debug e l'ottimizzazione delle prestazioni parallele, poiché ci aspettiamo di avere presto disponibili hardware e software della NASA adeguati."

    Un altro team ha adottato un approccio simile nel tentativo di far funzionare OpenMP per una piccola parte del proprio codice, un codice di cromodinamica quantistica reticolare (QCD) che è al centro di un progetto ECP chiamato Lattice QCD:Lattice Quantum Chromodynamics for Exascale. Lattice QCD è un framework numerico per simulare le interazioni forti tra particelle elementari chiamate quark e gluoni. Tali simulazioni sono importanti per molti problemi di fisica nucleare e ad alta energia. Le simulazioni tipiche richiedono mesi di esecuzione su supercomputer.

    "Vorremmo che il nostro codice fosse eseguito su diverse architetture exascale, " ha detto il membro del team e scienziato computazionale Meifeng Lin, vice capogruppo del nuovo Quantum Computing Group di CSI e coordinatore locale dei precedenti hackathon. "Proprio adesso, il codice viene eseguito su GPU NVIDIA, ma si prevede che i prossimi computer exascale avranno almeno due architetture diverse. Ci auguriamo che utilizzando OpenMP, che è supportato dai principali fornitori di hardware, saremo in grado di portare più facilmente il nostro codice su queste piattaforme emergenti. Abbiamo trascorso i primi due giorni dell'hackathon cercando di far scaricare a OpenMP il codice dalla CPU alla GPU attraverso l'intera libreria, senza molto successo».

    John Mellor-Crummey fa una presentazione su HPCToolkit, una suite integrata di strumenti per misurare e analizzare le prestazioni del programma su sistemi che vanno dai desktop ai supercomputer. Credito:Brookhaven National Laboratory

    Mentore Lingda Li, un ricercatore associato CSI e un membro del progetto SOLVE, ha aiutato Lin e il compagno di squadra Chulwoo Jung, un fisico nel gruppo di teoria delle alte energie di Brookhaven, con l'offload di OpenMP.

    Sebbene il team sia riuscito a far funzionare OpenMP con poche centinaia di righe di codice, le sue prestazioni iniziali erano scarse. Hanno utilizzato vari strumenti di profilazione delle prestazioni per determinare cosa stava causando il rallentamento. Con queste informazioni, sono stati in grado di compiere progressi fondamentali nella loro strategia di ottimizzazione complessiva, inclusa la risoluzione dei problemi relativi all'offload iniziale della GPU e la semplificazione della mappatura dei dati.

    Tra gli strumenti di profilazione a disposizione dei team dell'hackathon ce n'era uno sviluppato dalla Rice University e dall'Università del Wisconsin.

    "Il nostro strumento misura le prestazioni dei codici accelerati dalla GPU sia sull'host che sulla GPU, " disse John Mellor-Crummey, professore di informatica e ingegneria elettrica e informatica presso la Rice University e ricercatore principale del corrispondente progetto ECP Extending HPCToolkit per misurare e analizzare le prestazioni del codice su piattaforme Exascale. "L'abbiamo usato su diversi codici di simulazione questa settimana per esaminare le prestazioni relative del calcolo e del movimento dei dati dentro e fuori le GPU. Possiamo dire non solo per quanto tempo un codice è in esecuzione, ma anche quante istruzioni sono state eseguite e se l'esecuzione è avvenuta a pieno regime o in fase di stallo, e se in stallo, perché. Abbiamo anche identificato problemi di mappatura con le informazioni del compilatore che associano il codice macchina e il codice sorgente".

    Altri mentori di IBM erano a disposizione per mostrare ai team come utilizzare i compilatori IBM XL, progettati per sfruttare tutta la potenza dei processori IBM Power, e aiutarli a risolvere qualsiasi problema riscontrato.

    "I compilatori sono strumenti che gli scienziati usano per tradurre il loro software scientifico in codice che può essere letto dall'hardware, dai più grandi supercomputer del mondo:Summit e Sierra [a Lawrence Livermore], " disse Doru Bercea, un membro dello staff di ricerca nell'Advanced Compiler Technologies Group presso l'IBM TJ Watson Research Center. "L'hackathon ci offre l'opportunità di discutere le decisioni di progettazione del compilatore per far funzionare meglio OpenMP per gli scienziati".

    QMCPack può essere utilizzato per calcolare le energie dello stato fondamentale ed eccitato di difetti localizzati in isolanti e semiconduttori, ad esempio, nel manganese (Mn) 4+ -fosfori drogati, che sono materiali promettenti per migliorare la qualità del colore e la luminosità dei diodi a emissione di luce bianca. Credito:Brookhaven National Laboratory

    Secondo il mentore Johannes Doerfert, uno studioso post-dottorato presso ALCF, le applicazioni che i team hanno portato all'hackathon erano in varie fasi in termini di preparazione per i prossimi sistemi informatici.

    "Alcune squadre stanno affrontando problemi di porting, alcuni stanno lottando con i compilatori, e alcuni hanno problemi di prestazioni delle applicazioni, " ha spiegato Doerfert. "Come mentori, riceviamo domande provenienti da qualsiasi parte di questo ampio spettro".

    Alcune delle altre applicazioni scientifiche portate dai team includono un codice (pf3d) per simulare le interazioni tra laser ad alta intensità e plasma (gas ionizzato) negli esperimenti presso la National Ignition Facility di Lawrence Livermore, e un codice per calcolare la struttura elettronica degli atomi, molecole, e solidi (QMCPack, anche un progetto ECP). Un altro team ECP ha portato un ambiente di programmazione portatile (RAJA) per il linguaggio di programmazione C++.

    "Stiamo sviluppando un'astrazione di alto livello chiamata RAJA in modo che le persone possano utilizzare qualsiasi framework hardware o software disponibile sul backend dei loro sistemi informatici, " ha detto il mentore Tom Scogland, uno studioso post-dottorato presso il Center for Applied Scientific Computing di Lawrence Livermore. "RAJA si rivolge principalmente a OpenMP sull'host e CUDA [un altro modello di programmazione di calcolo parallelo] sul back-end. Ma vogliamo che RAJA funzioni con altri modelli di programmazione sul back-end, compreso OpenMP."

    "Il tema dell'hackathon era OpenMP 4.5+, una versione in evoluzione e non del tutto matura, " ha spiegato Kong. "I team sono partiti con una migliore comprensione delle nuove funzionalità di OpenMP, conoscenza dei nuovi strumenti che stanno diventando disponibili su Summit, e una tabella di marcia da seguire a lungo termine".

    "Ho imparato molte cose su OpenMP 4.5, " ha detto Steve Langer, membro del team pf3d, un fisico computazionale a Lawrence Livermore. "Il più grande vantaggio sono state le discussioni con mentori e dipendenti IBM. Ora so come impacchettare le mie direttive di offload OpenMP per utilizzare le GPU NVIDIA senza incorrere in limitazioni di memoria".


    © Scienza https://it.scienceaq.com