W}{ith} the beginning of the dark silicon era, application optimization, even with the exploitation of heterogeneity, has become an important topic of research. One methodology to obtain optimized applications for different architectures is application autotuning. Indeed, applications can obtain the same result with different codes. However, different codes have different extra-functional properties, such as execution time or energy consumption which may change across different architectures. To obtain the best, application autotuning techniques have been proposed in literature. It is very difficult for the original application developer to select the best configuration that can enforce the constraints across different machines, with unknown input and varying configurations. Given this background, I envision future applications not as monolithic code but as a sequence of modules that are capable of autotuning themselves and can exploit platform heterogeneity. This thesis consists of a collection of methodologies that were developed during my Ph.D. which aim at giving the programmers ways to create these self-tuning modules. I divided my Ph.D. thesis into two sections, the first one is dedicated to general application autotuning techniques, while the second will be focused on a single application, GeoDock, which has been an industrial use case that I used to develop and validate the proposed techniques. In the first half, we will see the benefit that can be introduced by run-time dynamic autotuning focusing on the condition of the machine, constraints given to the application, or characteristics of the input data. In the second half, we will see the developement of GeoDock from a monolithic non tunable application to an heterogeneous and tunable one, and we will see how this has dramatically improved its performances (from tens of ligands per second processed on a single node to thousands).

Con l'avvento dell'era del dark silicon, l'ottimizzazione delle applicazioni, sfruttando l'eterogeneità delle piattaforme, è diventata un importante argomento di ricerca. L'application autotuning è una delle metodologie proposte per ottenere sempre il meglio dall'applicazione su differenti architetture. Il punto di partenza è che le applicazioni moderne infatti sono in grado di ottenere lo stesso risultato con diversi codici sorgenti, tuttavia, a diversi codici corrispondono diverse proprietà extra-funzionali, come il tempo di esecuzione o il consumo energetico. Infatti, è molto difficile per lo sviluppatore scegliere la configurazione ottima su diversi computer, con input ignoti e configurazioni mutabili. Per questo motivo si è proposto in letteratura l'approccio dell'autotuning, che permette allo sviluppatore di esporre dei parametri e all'applicazione stessa di scegliere i migliori in base alle caratteristiche dell'architettura e ai requisiti di quando viene eseguita. Dato questo background, le applicazioni future saranno strutturate come sequenza di moduli che saranno in grado di adattarsi automaticamente e sfruttare l'eterogeneità della piattaforma sottostante. Questa tesi consiste in una collezione di metodologie sviluppate durante il mio dottorato che vogliono proporre ai programmatori modi di creare questi moduli. Questa tesi è divisa in due sezioni: nella prima, alcune metolodogie generali vengono proposte e validate su differenti applicazioni, mentre nella seconda metà della tesi ci si focalizza su una singola applicazione, GeoDock, che è un'importante applicazione industriale che ho usato per sviluppare e validare tecniche di autotuning. In particolare, si mostrerà che grazie all'autotuning e allo sfruttamento dell'eterogeneità delle architetture questa applicazione migliora drasticamente le sue performances (da decine a migliaia di ligandi processati al secondo su un singolo nodo) permettendo di svolgere campagne di virtual screening mai fatte prima.

A holistic approach towards future self-tuning applications in homogeneous and heterogeneous architectures

Vitali, Emanuele
2020/2021

Abstract

W}{ith} the beginning of the dark silicon era, application optimization, even with the exploitation of heterogeneity, has become an important topic of research. One methodology to obtain optimized applications for different architectures is application autotuning. Indeed, applications can obtain the same result with different codes. However, different codes have different extra-functional properties, such as execution time or energy consumption which may change across different architectures. To obtain the best, application autotuning techniques have been proposed in literature. It is very difficult for the original application developer to select the best configuration that can enforce the constraints across different machines, with unknown input and varying configurations. Given this background, I envision future applications not as monolithic code but as a sequence of modules that are capable of autotuning themselves and can exploit platform heterogeneity. This thesis consists of a collection of methodologies that were developed during my Ph.D. which aim at giving the programmers ways to create these self-tuning modules. I divided my Ph.D. thesis into two sections, the first one is dedicated to general application autotuning techniques, while the second will be focused on a single application, GeoDock, which has been an industrial use case that I used to develop and validate the proposed techniques. In the first half, we will see the benefit that can be introduced by run-time dynamic autotuning focusing on the condition of the machine, constraints given to the application, or characteristics of the input data. In the second half, we will see the developement of GeoDock from a monolithic non tunable application to an heterogeneous and tunable one, and we will see how this has dramatically improved its performances (from tens of ligands per second processed on a single node to thousands).
PERNICI, BARBARA
SILVANO, CRISTINA
30-giu-2021
Con l'avvento dell'era del dark silicon, l'ottimizzazione delle applicazioni, sfruttando l'eterogeneità delle piattaforme, è diventata un importante argomento di ricerca. L'application autotuning è una delle metodologie proposte per ottenere sempre il meglio dall'applicazione su differenti architetture. Il punto di partenza è che le applicazioni moderne infatti sono in grado di ottenere lo stesso risultato con diversi codici sorgenti, tuttavia, a diversi codici corrispondono diverse proprietà extra-funzionali, come il tempo di esecuzione o il consumo energetico. Infatti, è molto difficile per lo sviluppatore scegliere la configurazione ottima su diversi computer, con input ignoti e configurazioni mutabili. Per questo motivo si è proposto in letteratura l'approccio dell'autotuning, che permette allo sviluppatore di esporre dei parametri e all'applicazione stessa di scegliere i migliori in base alle caratteristiche dell'architettura e ai requisiti di quando viene eseguita. Dato questo background, le applicazioni future saranno strutturate come sequenza di moduli che saranno in grado di adattarsi automaticamente e sfruttare l'eterogeneità della piattaforma sottostante. Questa tesi consiste in una collezione di metodologie sviluppate durante il mio dottorato che vogliono proporre ai programmatori modi di creare questi moduli. Questa tesi è divisa in due sezioni: nella prima, alcune metolodogie generali vengono proposte e validate su differenti applicazioni, mentre nella seconda metà della tesi ci si focalizza su una singola applicazione, GeoDock, che è un'importante applicazione industriale che ho usato per sviluppare e validare tecniche di autotuning. In particolare, si mostrerà che grazie all'autotuning e allo sfruttamento dell'eterogeneità delle architetture questa applicazione migliora drasticamente le sue performances (da decine a migliaia di ligandi processati al secondo su un singolo nodo) permettendo di svolgere campagne di virtual screening mai fatte prima.
File allegati
File Dimensione Formato  
main.pdf

accessibile in internet per tutti

Descrizione: tesi in pdf
Dimensione 6.72 MB
Formato Adobe PDF
6.72 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/177125