Modern computing systems strive to provide ever increasing performance levels despite increasingly strict system-wide optimization objectives. This is a vast problem that spans over a wide variety of architectures: due to the wild technological development caused by the spread of devices such as Smartphones, high-end embedded systems are quickly closing the gap with desktop computers; similarly, high performance and cloud-based systems are scaling up towards exascale to serve increasingly demanding workloads. Indeed, this technological trend poses several, nontrivial problems: embedded systems are usually subject to thermal and energy constraints in order to maximize battery life, to minimize faults and, at least in the case of hand-held devices, to provide a comfortable user experience (users want to hold a long lasting, ever charged and cold device), while bigger systems are typically subject to thermal and power constraints in order to minimize supplying/cooling costs and, again, to prevent faults. On the other hand, users do not care about system optimization objectives: they just want their applications to comply with some Quality of Service requirement. This problem does not have a simple solution, because system and user goals are orthogonal and increasingly demanding; however, it can be addressed by employing resource managers, which are software layers that act as brokers between computing systems and applications. Resource managers decide which and how many resources will be allocated to each application so that, whenever it is possible, both system-wide and user goals are complied with. This dissertation explores the problem of resource management from a horizontal perspective. That is, we analyze the problem of CPU resource management spanning from high-end embedded to High Performance Computing systems. For each of those architectures, we try to understand what is yet missing to obtain an optimal resource management and how we can fill some of those gaps.

Gli odierni sistemi di calcolo mirano ad offire prestazioni sempre più aggressive nonostante sempre più stringenti vincoli di ottimizzazione di sistema. Tale problema è complesso e riguarda una vasta gamma di architetture: a causa del selvaggio sviluppo tecnologico causato dalla diffusione di dispositivi come gli Smartphone, ad esempio, i circuiti integrati di fascia alta stanno rapidamente colmando il divario con i dispositivi desktop, in termini sia di prestazioni sia di complessità. Allo stesso modo, i sistemi ad alte prestazioni (supercomputer, cloud ...) stanno cercando di raggiungere potenze computazionali nell’ordine dell’exa-FLOP (10 18 operazioni in virgola mobile al secondo), in modo da poter servire carichi di lavoro sempre più esigenti. Ciò comporta problemi non banali: i circuiti integrati sono solitamente soggetti a vincoli termici ed energetici per massimizzare la durata della batteria (ove presente), minimizzare i guasti e, per lo meno nel caso di dispositivi palmari, garantirne un comodo uso (l’utente vuole un dispositivo che duri anni, che abbia una batteria costantemente carica e che non sia bollente al tocco), mentre i grandi sistemi di calcolo sono soggetti a vincoli termici e di potenza onde minimizzare i costi di energia elettrica e raffreddamento e, anche in questo caso, per minimizzare la probabilità di guasto. Purtroppo, gli utenti non sono assolutamente interessati all’ottimizzazione del sistema; al contrario, vogliono soltanto ottenere le migliori prestazioni possibili dalle proprie applicazioni. L’evidente ortogonalità tra gli obiettivi di utenti e amministratori di sistema fa sì che questo problema non sia facilmente risolvibile; tuttavia, esso può essere affrontato mediante l’uso di gestori di risorse, ovvero programmi che agiscono da mediatori tra sistema operativo e applicazioni. Più nel dettaglio, i gestori di risorse decidono quante e quali risorse di calcolo allocare a ogni applicazione in modo tale da soddisfare, ove possibile, sia i requisiti dell’utente sia quelli di sistema. Questa tesi espora il problema della gestione di risorse seguendo un approccio orizzontale. Nel dettaglio, analizziamo il problema dell’allocazione di elementi processanti—cores, in questo caso—dai circuiti integrati fino ai sistemi ad alte prestazioni. Per ognuna di queste categorie, cercheremo di capire i requisiti fondamentali per una allocazione ottima delle risorse, i maggiori problemi ancora da affrontare e cosa possiamo fare per risolverli.

Multicore resource management: a horizontal perspective

LIBUTTI, SIMONE

Abstract

Modern computing systems strive to provide ever increasing performance levels despite increasingly strict system-wide optimization objectives. This is a vast problem that spans over a wide variety of architectures: due to the wild technological development caused by the spread of devices such as Smartphones, high-end embedded systems are quickly closing the gap with desktop computers; similarly, high performance and cloud-based systems are scaling up towards exascale to serve increasingly demanding workloads. Indeed, this technological trend poses several, nontrivial problems: embedded systems are usually subject to thermal and energy constraints in order to maximize battery life, to minimize faults and, at least in the case of hand-held devices, to provide a comfortable user experience (users want to hold a long lasting, ever charged and cold device), while bigger systems are typically subject to thermal and power constraints in order to minimize supplying/cooling costs and, again, to prevent faults. On the other hand, users do not care about system optimization objectives: they just want their applications to comply with some Quality of Service requirement. This problem does not have a simple solution, because system and user goals are orthogonal and increasingly demanding; however, it can be addressed by employing resource managers, which are software layers that act as brokers between computing systems and applications. Resource managers decide which and how many resources will be allocated to each application so that, whenever it is possible, both system-wide and user goals are complied with. This dissertation explores the problem of resource management from a horizontal perspective. That is, we analyze the problem of CPU resource management spanning from high-end embedded to High Performance Computing systems. For each of those architectures, we try to understand what is yet missing to obtain an optimal resource management and how we can fill some of those gaps.
BONARINI, ANDREA
BONARINI, ANDREA
29-mar-2018
Gli odierni sistemi di calcolo mirano ad offire prestazioni sempre più aggressive nonostante sempre più stringenti vincoli di ottimizzazione di sistema. Tale problema è complesso e riguarda una vasta gamma di architetture: a causa del selvaggio sviluppo tecnologico causato dalla diffusione di dispositivi come gli Smartphone, ad esempio, i circuiti integrati di fascia alta stanno rapidamente colmando il divario con i dispositivi desktop, in termini sia di prestazioni sia di complessità. Allo stesso modo, i sistemi ad alte prestazioni (supercomputer, cloud ...) stanno cercando di raggiungere potenze computazionali nell’ordine dell’exa-FLOP (10 18 operazioni in virgola mobile al secondo), in modo da poter servire carichi di lavoro sempre più esigenti. Ciò comporta problemi non banali: i circuiti integrati sono solitamente soggetti a vincoli termici ed energetici per massimizzare la durata della batteria (ove presente), minimizzare i guasti e, per lo meno nel caso di dispositivi palmari, garantirne un comodo uso (l’utente vuole un dispositivo che duri anni, che abbia una batteria costantemente carica e che non sia bollente al tocco), mentre i grandi sistemi di calcolo sono soggetti a vincoli termici e di potenza onde minimizzare i costi di energia elettrica e raffreddamento e, anche in questo caso, per minimizzare la probabilità di guasto. Purtroppo, gli utenti non sono assolutamente interessati all’ottimizzazione del sistema; al contrario, vogliono soltanto ottenere le migliori prestazioni possibili dalle proprie applicazioni. L’evidente ortogonalità tra gli obiettivi di utenti e amministratori di sistema fa sì che questo problema non sia facilmente risolvibile; tuttavia, esso può essere affrontato mediante l’uso di gestori di risorse, ovvero programmi che agiscono da mediatori tra sistema operativo e applicazioni. Più nel dettaglio, i gestori di risorse decidono quante e quali risorse di calcolo allocare a ogni applicazione in modo tale da soddisfare, ove possibile, sia i requisiti dell’utente sia quelli di sistema. Questa tesi espora il problema della gestione di risorse seguendo un approccio orizzontale. Nel dettaglio, analizziamo il problema dell’allocazione di elementi processanti—cores, in questo caso—dai circuiti integrati fino ai sistemi ad alte prestazioni. Per ognuna di queste categorie, cercheremo di capire i requisiti fondamentali per una allocazione ottima delle risorse, i maggiori problemi ancora da affrontare e cosa possiamo fare per risolverli.
Tesi di dottorato
File allegati
File Dimensione Formato  
main.pdf

accessibile in internet per tutti

Descrizione: The thesis itself, in PDF format
Dimensione 7.87 MB
Formato Adobe PDF
7.87 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/139252