Skip to main content

An Exascale Programming, Multi-objective Optimisation and Resilience Management Environment Based on Nested Recursive Parallelism

Article Category

Article available in the folowing languages:

La nuova catena di strumenti HPC offre un compromesso ottimale tra prestazioni ed efficienza nell’uso delle risorse

Il progetto AllScale assegna ai programmatori HPC una catena di strumenti per incrementare la produttività, la portabilità e l’efficienza di runtime nello sviluppo di applicazioni parallele. I prototipi sono già stati applicati con successo alle simulazioni di meteorologia spaziale, pericolosità ambientale e fluidodinamica.

Economia digitale

Il mercato del calcolo ad alte prestazioni (HPC) è in costante crescita. E questa nuova era dell’informatica non riguarda solo l’hardware: affinché l’HPC risponda alle aspettative del settore, il suo potenziale di calcolo parallelo dovrà essere realizzato in una nuova generazione di applicazioni parallele. Queste dovranno bilanciare un aumento delle prestazioni con un consumo energetico ridotto. Un compito non facile, soprattutto se si considera che gli ultimi miglioramenti delle prestazioni del 5 o 10 % richiesti dai programmatori per la loro applicazione possono aumentare il consumo di energia del 30 % o più. Nell’HPC, l’ottimizzazione ruota essenzialmente attorno ai compromessi tra questi due obiettivi. Il progetto AllScale fornisce l’anello mancante. Si prevede che la sua catena di strumenti aumenti la produttività, la portabilità e l’efficienza di runtime dello sviluppo, migliorando al contempo l’efficienza nell’uso delle risorse dei sistemi paralleli su piccola e massima scala. «Il nostro ambiente di programmazione si basa su uno standard ampiamente utilizzato (C++) che consente l’espressione del parallelismo ad un alto livello di astrazione. Invece di accoppiare paradigmi di programmazione diversi, che tendono a perdere informazioni e quindi a ridurre le prestazioni, sfruttiamo i parallelismi ricorsivi per ridurre la sincronizzazione globale». Ciò consente un numero estremamente elevato di attività parallele per le applicazioni che devono mantenere le architetture parallele su vasta scala occupate attraverso tutti i processori», spiega il prof. Thomas Fahringer, coordinatore del progetto per conto dell’Università di Innsbruck. L’ambiente AllScale può gestire gli errori hardware e il suo sistema di runtime sottostante può essere ottimizzato per molteplici obiettivi tra cui runtime, efficienza nell’uso delle risorse e consumo energetico. A differenza dei tradizionali approcci di programmazione parallela, che accoppiano paradigmi di programmazione esistenti come MPI e OpenMP, AllScale enfatizza un ambiente di sviluppo da sorgente unica a qualsiasi scala. Fornisce ai programmatori un’API unificata per esprimere il parallelismo a un livello elevato di astrazione utilizzando modelli standard di C++. Un altro importante miglioramento è l’uso del parallelismo ricorsivo nidificato per ridurre la comunicazione e la sincronizzazione globali, in quanto quest’ultima di solito causa gravi problemi di scalabilità per il sistema HPC su larga scala. Infine, mentre l’ottimizzazione delle applicazioni e l’autotaratura dei programmi paralleli si basavano quasi esclusivamente sulla riduzione dei tempi di esecuzione, AllScale si concentra sull’esigenza delle architetture moderne di gestione in maniera intelligente i bilanci energetici e gli inviluppi di potenza. «AllScale offre una componente di pianificazione e ottimizzazione multi-obiettivo in grado di indirizzare l’esecuzione verso soddisfacenti compromessi di ottimizzazione dinamici controllati dall’utente tra runtime, consumo di energia ed efficienza delle risorse», spiega il prof. Fahringer. AllScale è stato ampiamente testato e applicato a prove pilota nei campi della meteorologia spaziale, della pericolosità ambientale (come la fuoriuscita di petrolio dalla Deepwater) e della fluidodinamica. Queste tre applicazioni sono note per i complessi sistemi HPC, sia in termini di complessità computazionale che di produttività. «Nella simulazione meteorologica spaziale, AllScale ha ottenuto risultati eccellenti per la formazione di dipoli magnetici terrestri su sistemi HPC di memoria condivisa e distribuita su nuclei di grandi dimensioni», afferma il prof. Fahringer. «Per il codice fluidodinamico, potremmo ridurre sostanzialmente il tempo di esecuzione seriale, con una scalabilità della memoria condivisa simile all’implementazione di MPI. Infine, per l’applicazione di pericolosità ambientale, abbiamo dimostrato la capacità di AllScale di scalare per sistemi su petascala. In tutte e tre le applicazioni potremmo fornire un’efficienza molto maggiore in termini di time-to-solution, aumentando così la produttività». Anche se il progetto si è ora concluso, tutte le applicazioni pilota continueranno a utilizzare la tecnologia AllScale per migliorare ulteriormente le prestazioni. La catena di strumenti di AllScale è stata rilasciata con una licenza open source e diversi gruppi continuano a estendere e migliorare ulteriormente il software nell’ambito di nuovi progetti e collaborazioni in tutta Europa.

Parole chiave

AllScale, HPC, calcolo ad alte prestazioni, software, applicazioni, efficienza, parallelismo, programmazione parallela, runtime, meteo spaziale, deepwater, fluidodinamica

Scopri altri articoli nello stesso settore di applicazione