In the last two decades, computer hardware has substantially evolved and heterogeneous architectures — systems featuring asymmetric multicore CPUs and specialised hardware accelerators — are now pervasive. These systems provide significant performance boosts, but leveraging their increased complexity presents challenges for both system and application software. The system must dynamically allocate its resources to the applications while ensuring adherence to its constraints and the applications' demands — a problem known as Run-Time Resource Management. Furthermore, to achieve maximum performance, the applications must dynamically tune their algorithms based on the current system state — a problem known as Autotuning. Extensive literature is available on both domains individually, but few works address the problems holistically as facets of a self-optimisation discipline. In this work, we propose an integrated framework that coordinates the two optimisation processes. Given a heterogeneous system — comprising a multicore CPU and a GPU — and a variable multi-programmed workload — with applications supporting multithreading, execution on the GPU, and approximate execution — our system seeks the optimal configuration of resources and application knobs. This configuration must satisfy the applications' throughput and precision demands while maximising the total precision and minimising the power draw. We implement this framework by combining two components selected from our literature review: the mARGOt autotuner and a resource controller. The latter is customised to leverage the autotuner's design-time application knowledge, achieving an implicit coordination between the components. Furthermore, we examine existing performance and power models for CPU and GPU, and when they are not satisfactory, we introduce new ones. We focus on models for application colocation on GPU. Finally, we provide a resource management policy to accomplish our objective. We validate the models and policy with experiments comparing our results with other approaches.

Negli ultimi due decenni, l'hardware ha subito una considerevole evoluzione e le architetture eterogenee, ovvero sistemi contenenti CPU multicore asimmetriche e acceleratori specializzati, sono ormai diffuse. Tali sistemi offrono maggiori prestazioni, ma sfruttare la loro complessità rappresenta una sfida per i software di sistema e applicativi. I sistemi devono distribuire le loro risorse alle applicazioni, rispettando i propri vincoli e le richieste le applicazioni; un problema noto come Run-Time Resource Management. Inoltre, per raggiungere le massime prestazioni, le applicazioni devono regolare dinamicamente i propri algoritmi in base allo stato del sistema; un problema noto come Autotuning. È presente un'ampia letteratura sui singoli campi, ma pochi lavori affrontano i problemi come due aspetti di un'unica disciplina di auto-ottimizzazione. In questo lavoro, proponiamo un framework integrato che coordina i due processi di ottimizzazione. Dato un sistema eterogeneo, con una CPU multiprocessore e una GPU, e sottoposto a un carico variabile e multiprogrammato, con applicazioni supportanti multithreading, esecuzione sulla GPU ed esecuzione approssimata, il nostro sistema cerca la configurazione ottimale. Essa deve soddisfare i requisiti di throughput e precisione delle applicazioni, massimizzando la precisione totale e minimizzando la potenza. Implementiamo questo framework tramite l'unione di due componenti selezionati dalla letteratura: l'autotuner mARGOt e un controllore dinamico di risorse. Il secondo è stato modificato per sfruttare la conoscenza statica dell'autotuner, ottenendo così una coordinazione implicita tra i componenti. Inoltre, esaminiamo i modelli esistenti di performance e potenza per CPU e GPU e, se non soddisfacenti, ne introduciamo di nuovi. Ci concentriamo su un modello di colocazione delle applicazioni su GPU. Infine, offriamo una politica di controllo delle risorse che realizza l'obiettivo del framework. Convalidiamo il nostro lavoro con esperimenti che comparamo i nostri risultati ad approcci esistenti.

A combined approach for run-time resource management and application autotuning in multiprogrammed CPU-GPU Systems

Rolle, Guido
2023/2024

Abstract

In the last two decades, computer hardware has substantially evolved and heterogeneous architectures — systems featuring asymmetric multicore CPUs and specialised hardware accelerators — are now pervasive. These systems provide significant performance boosts, but leveraging their increased complexity presents challenges for both system and application software. The system must dynamically allocate its resources to the applications while ensuring adherence to its constraints and the applications' demands — a problem known as Run-Time Resource Management. Furthermore, to achieve maximum performance, the applications must dynamically tune their algorithms based on the current system state — a problem known as Autotuning. Extensive literature is available on both domains individually, but few works address the problems holistically as facets of a self-optimisation discipline. In this work, we propose an integrated framework that coordinates the two optimisation processes. Given a heterogeneous system — comprising a multicore CPU and a GPU — and a variable multi-programmed workload — with applications supporting multithreading, execution on the GPU, and approximate execution — our system seeks the optimal configuration of resources and application knobs. This configuration must satisfy the applications' throughput and precision demands while maximising the total precision and minimising the power draw. We implement this framework by combining two components selected from our literature review: the mARGOt autotuner and a resource controller. The latter is customised to leverage the autotuner's design-time application knowledge, achieving an implicit coordination between the components. Furthermore, we examine existing performance and power models for CPU and GPU, and when they are not satisfactory, we introduce new ones. We focus on models for application colocation on GPU. Finally, we provide a resource management policy to accomplish our objective. We validate the models and policy with experiments comparing our results with other approaches.
ROCCO, ROBERTO
ING - Scuola di Ingegneria Industriale e dell'Informazione
16-lug-2024
2023/2024
Negli ultimi due decenni, l'hardware ha subito una considerevole evoluzione e le architetture eterogenee, ovvero sistemi contenenti CPU multicore asimmetriche e acceleratori specializzati, sono ormai diffuse. Tali sistemi offrono maggiori prestazioni, ma sfruttare la loro complessità rappresenta una sfida per i software di sistema e applicativi. I sistemi devono distribuire le loro risorse alle applicazioni, rispettando i propri vincoli e le richieste le applicazioni; un problema noto come Run-Time Resource Management. Inoltre, per raggiungere le massime prestazioni, le applicazioni devono regolare dinamicamente i propri algoritmi in base allo stato del sistema; un problema noto come Autotuning. È presente un'ampia letteratura sui singoli campi, ma pochi lavori affrontano i problemi come due aspetti di un'unica disciplina di auto-ottimizzazione. In questo lavoro, proponiamo un framework integrato che coordina i due processi di ottimizzazione. Dato un sistema eterogeneo, con una CPU multiprocessore e una GPU, e sottoposto a un carico variabile e multiprogrammato, con applicazioni supportanti multithreading, esecuzione sulla GPU ed esecuzione approssimata, il nostro sistema cerca la configurazione ottimale. Essa deve soddisfare i requisiti di throughput e precisione delle applicazioni, massimizzando la precisione totale e minimizzando la potenza. Implementiamo questo framework tramite l'unione di due componenti selezionati dalla letteratura: l'autotuner mARGOt e un controllore dinamico di risorse. Il secondo è stato modificato per sfruttare la conoscenza statica dell'autotuner, ottenendo così una coordinazione implicita tra i componenti. Inoltre, esaminiamo i modelli esistenti di performance e potenza per CPU e GPU e, se non soddisfacenti, ne introduciamo di nuovi. Ci concentriamo su un modello di colocazione delle applicazioni su GPU. Infine, offriamo una politica di controllo delle risorse che realizza l'obiettivo del framework. Convalidiamo il nostro lavoro con esperimenti che comparamo i nostri risultati ad approcci esistenti.
File allegati
File Dimensione Formato  
2024_07_Rolle.pdf

accessibile in internet per tutti

Descrizione: Testo della Tesi
Dimensione 3 MB
Formato Adobe PDF
3 MB Adobe PDF Visualizza/Apri
2024_07_Rolle_Executive Summary.pdf

accessibile in internet per tutti

Descrizione: Executive Summary della Tesi
Dimensione 1.08 MB
Formato Adobe PDF
1.08 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/222638