• Home
  • Chimica
  • Astronomia
  • Energia
  • Natura
  • Biologia
  • Fisica
  • Elettronica
  • Software riutilizzabile per l'elaborazione ad alte prestazioni

    Sunita Chandrasekaran, un assistente professore di informatica e scienze dell'informazione, sta progettando framework per adattare il codice a sistemi informatici sempre più potenti. Sta lavorando con schemi complessi noti come fronti d'onda, che sono raffigurati sullo sfondo di questa immagine. Credito:Joy Smoker

    Il supercomputer più veloce del mondo ora può eseguire 200, 000 trilioni di calcoli al secondo, e diverse aziende e agenzie governative in tutto il mondo sono in competizione per costruire una macchina che avrà la potenza del computer per simulare reti sulla scala del cervello umano. Questo hardware estremamente potente richiede un software estremamente potente, quindi il codice software esistente deve essere continuamente aggiornato per stare al passo.

    Sunita Chandrasekaran, un assistente professore di informatica e scienze dell'informazione presso l'Università del Delaware, è perfettamente adatto per questa sfida. Con una nuova sovvenzione della National Science Foundation, sta progettando framework per adattare il codice a sistemi sempre più potenti. Sta lavorando con schemi complessi noti come fronti d'onda, che si trovano comunemente nei codici scientifici utilizzati nell'analisi del flusso di neutroni in un reattore nucleare, estrarre modelli da dati biomedici o prevedere modelli atmosferici.

    Chandrasekaran è un esperto di programmazione parallela, ovvero la scrittura di codice software che può essere eseguito contemporaneamente su molti processori multi-core. La programmazione parallela è una disciplina sempre più importante nell'ambito dell'informatica, poiché sempre più università e aziende utilizzano potenti supercomputer per analizzare ampie porzioni di dati, dai risultati scientifici agli approfondimenti sul comportamento dei consumatori e altro ancora.

    Chandrasekaran sta esaminando le applicazioni scientifiche per vedere come sono state scritte, come si sono comportati su architetture obsolete, che tipo di modelli di programmazione sono stati utilizzati, e quali sfide sono sorte.

    "Il più delle volte i modelli di programmazione sono creati in modo ampio, " ha detto. "Poiché sono generalizzati per affrontare un ampio pool di modelli paralleli comunemente trovati, spesso i modelli mancano di creare funzionalità per alcuni modelli paralleli complessi, come i fronti d'onda, che sono nascosti in alcune applicazioni scientifiche."

    Un fronte d'onda consente l'analisi dei modelli in meno passaggi. La domanda è:come si ottiene il modello di programmazione per farlo?

    Un esempio è Minisweep, una miniapp che modella scenari all'interno di un reattore nucleare "spazzando" attraverso una griglia con quadrati che rappresentano punti nello spazio e vengono utilizzati per calcolare le posizioni, energie, e flussi di neutroni. Questa applicazione madre di Minisweep viene utilizzata per ridurre le probabilità di una fusione e per salvaguardare gli ingegneri che lavorano intorno al reattore nucleare dall'esposizione alle radiazioni. All'inizio di quest'anno, Chandrasekaran e il dottorando Robert Searles hanno dimostrato come hanno modificato la miniapp per eseguire 85,06 volte più velocemente del codice che non è stato parallelizzato. Questo lavoro è stato recentemente presentato alla conferenza Platform for Advanced Scientific Computing (PASC) 2018 e pubblicato dall'Association for Computing Machinery (ACM).

    "Ci siamo chiesti:questo modello è specifico di Minisweep?, " ha detto. "O esisterà in altri codici? Ci sono altri codici che potrebbero trarre vantaggio se dovessi inserire questo tipo di pattern in un modello di programmazione e creare un'implementazione e valutarla?"

    Per esempio, Chandrasekaran ha scoperto che alcuni algoritmi in bioinformatica, lo studio di grandi insiemi di dati biologici, conteneva modelli simili. Sospetta che adattando il software scritto per Minisweep, può fare grandi passi avanti verso il miglioramento del codice. Ci proverà con i dati di Erez Lieberman Aiden, assistente professore di genetica molecolare e umana al Baylor College of Medicine e assistente professore di informatica alla Rice University. Chandrasekaran ha incontrato Aiden quando ha visitato UD per tenere un discorso intitolato "Elaborazione parallela dei genomi, dai Genomi e per i Genomi."

    Chandrasekaran è stato ispirato dal lavoro di Aiden con le sequenze di DNA. Usa uno strumento informatico per trovare interazioni a lungo raggio tra due elementi qualsiasi sullo stesso cromosoma, a sua volta, mostrando le basi genetiche delle malattie. Chandrasekaran sospettava di poter utilizzare i modelli esistenti e aggiornare il codice, consentendo un'analisi più rapida di questi importanti dati biologici.

    "L'obiettivo non è semplicemente creare uno strumento software, " ha detto. "L'obiettivo è costruire casi di studio reali in cui ciò che creerò avrà importanza in termini di semplificazione della scienza".

    A tal fine verranno esplorati modelli di programmazione parallela basati su direttive come OpenACC e OpenMP.

    Chandrasekaran mira a mantenere prestazioni e portabilità mentre ridisegna gli algoritmi. Terrà a mente anche gli scienziati che usano gli algoritmi.

    "Non puoi creare un modello di programmazione guardando solo l'applicazione o guardando solo l'architettura, " ha detto. "Ci deve essere un po' di equilibrio."

    Questo progetto andrà a beneficio degli sviluppatori di applicazioni scientifiche che non sono necessariamente informatici. "Possono concentrarsi di più sulla scienza e meno sul software, " ha detto Chandrasekaran. Gli scienziati vengono da lei con set di dati e problemi che richiedono ore, giorni, a volte mesi per calcolare, e lei scopre come farli correre più veloci, consentendo così una nuova scienza.

    Chandrasekaran analizzerà i dati forniti da Aiden al Baylor e dai fisici dell'Oak Ridge National Lab. Searles lavorerà anche al progetto, e Chandrasekaran sta cercando un ulteriore studente laureato con un'attitudine alla programmazione parallela per aiutare con questo progetto.


    © Scienza https://it.scienceaq.com