Resource allocation is a well-known problem, with a large number of research contributions towards efficient utilisation of the massive hardware parallelism using various exact and heuristic approaches. Nevertheless, memory management for heterogeneous systems is still a challenge, as these systems often feature separate physical spaces for the general-purpose part of the system and for the heterogeneous accelerators. Recent advances in memory allocation for homogeneous multicore architectures have focused on removing the need for application-specific allocators and improving scalability and allocation speed. Moreover, in many kinds of heterogeneous or accelerator-based systems, there is no dynamic memory allocation at all, with each accelerator endowed with its local memory. Thus, taking into account the difference between typical and deeply heterogeneous High Performance Computing (HPC) systems, memory management is becoming an essential part of resource management tools and requires novel algorithms to be developed. This work explores the most recent state-of-art memory management techniques for HPC and Cloud Computing. A significant part of the memory optimisation research both in HPC and Clouds domain is focused on resource management techniques. However, the degree of memory involvement in the provisioning and scheduling techniques is not very high, especially concerning the memory-processor interaction. A problem to solve is the resource allocation optimisation in complex heterogeneous architectures taking into account memory utilisation. Memory-centric Prediction-based Resource Allocation approach is addressed to solve this problem. The goal of the proposed approach is to manage the partitioning within a single heterogeneous node. This node is composed of a set of programmable accelerators (units) with different features along with several memory banks, all connected through a network-on-chip (NoC). Here, multiple accelerators coexist within a single node and can cooperate for a single application composed of multiple kernels, or they can be partitioned among different applications. For choosing the optimal memory module in NUMA architecture regarding the multiple criteria, the multi-criteria memory analysis with fuzzy pairwise comparison is applied for overcoming the subjectivity of criteria comparisons. Another topic close to this research line is resource utilisation prediction. Recent studies in resource utilisation prediction have focused on scheduling web services and resources optimisation in cloud architectures. Resources utilisation prediction is used to optimise the resource allocation in heterogeneous systems, taking into account the restrictions imposed by the runtime environment, such as the need for a fast short-term prediction with the minimal use of computational resources. In the target architecture, memory buffers from different applications could be allocated on the same memory module - this could cause unpredictable interference of concurrent applications on shared memory and routing bandwidth. The target scenario requires the management and allocation of resources across different applications in a way that maximises resource usage while preserving the predictable execution time of critical applications. For ensuring that the bus access requests always are provided immediately, particular implementation with resource separation within one heterogeneous node is proposed. It allows for reducing the stochastic influence of independent applications. A comprehensive evaluation has been carried out using a workload simulation along with platform emulation library libGN. It shows the overall feasibility of the approach, as well as performance and scalability. The proposed approach allows serving up to 53% of the high priority requests with respect to the baseline of 32% without prediction. Moreover, two real applications have been executed on the heterogeneous platform prototype for exploring the mapping options provided by the proposed approach. In general, the proposed approach shows the feasibility for optimal memory utilisation in the target deeply heterogeneous platform.

L'allocazione delle risorse è un problema ben noto, su cui è stato prodotto un gran numero di contributi di ricerca volti a rendere efficiente, attraverso metodi esatti o euristici, l'impiego di risorse di calcolo parallelo di grandi dimensioni. Ciononostante, la gestione della memoria in sistemi eterogenei rimane una sfida da affrontare, in quanto questi sistemi impiegano spazi di memoria separati per la memoria principale del sistema e per gli acceleratori. Recenti sviluppi nell'allocazione della memoria per sistemi omogenei multicore si sono concentrati sull'evitare la necessità di allocatori dedicati per specifiche applicazioni, sulla scalabilità e sulla velocità dell'allocazione. Inoltre, in molti tipi di sistemi eterogenei o basati su acceleratori, non è prevista alcuna memoria dinamica, e al contrario ogni acceleratore ha a disposizione una sua memoria locale. Pertanto, tenendo conto delle differenze fra sistemi ad alte prestazioni (HPC) tradizionali ed eterogenei, la gesione della memoria sta diventando una parte essenziale degli strumenti di gestione delle risorse, e richiede lo sviluppo di algoritmi ad essa dedicati. Questo lavoro esplora lo stato dell'arte nella gestione della memoria per sistemi HPC e di Cloud Computing. Una parte significativa della ricerca sull'ottimizzazione della memoria in entrambi i campi è orientata allo sviluppo di tecniche di gestione delle risorse. Al contrario, la memoria è spesso poco considerata nelle tecniche di schedulazione e allocazione delle risorse, e raramente ci si preoccupa di coordinare correttamente l'allocazione dei processori e delle memorie. Un problema da risolvere è, pertanto, l'ottimizzazione dell'allocazione delle risorse in architetture di elaborazione complesse ed eterogenee, tenendo conto dell'uso della memoria. L'approccio proposto in questo lavoro, denominato "allocazione predittiva delle risorse focalizzata sulla memoria", tenta di risolve questo problema. L'obiettivo dell'approccio è la gestione ed il partizionamento delle risorse all'interno del singolo nodo eterogeneo di un sistema HPC. Il nodo è composto da un insieme di acceleratori programmabili (unità) con differenti caratteristiche, nonché di un certo numero di banchi di memoria, connessi attraverso una network-on-chip (NoC). I diversi acceleratori che coesistono nello stesso nodo possono cooperare nell'esecuzione di una applicazione composta da diversi kernel computazionali, oppure essere ripartiti fra applicazioni diverse. Considerando una architettura di memoria a tempo di accesso variabile (NUMA), per la scelta della allocazione ottima della memoria si è optato per l'impiego di una analisi multi-criterio della memoria con confronti fuzzy a coppie, per ridurre l'impatto della soggettività dei criteri di confronto. Un secondo argomento collegato a questa linea di ricerca è la predizione dell'utilizzo delle risorse. Studi recenti su questo tema si sono concentrati su sistemi Cloud, per la gestione di servizi web e delle risorse associate. La predizione è usata per ottimizzare l'allocazione delle risorse in sistemi eterogenei, tenendo conto delle restrizioni imposte dall'ambiente di esecuzione, come la necessità di predizioni rapide a breve termine che facciano uso di bassissime risorse. Nella architettura oggetto di questo lavoro, blocchi di memoria associati ad applicazioni diverse possono essere allocati sullo stesso banco fisico, causando imprevedibili interferenze fra applicazioni che concorrono per l'accesso alla medesima risorsa, in particolare alla banda verso la memoria. Lo scenario applicativo richiede la gestione delle risorse su più applicazioni, massimizzando l'uso delle risorse ma preservando al contempo la predicibilità dei tempi di esecuzione di applicazioni critiche. Per garantire che le richieste di accesso vengano servite immediatamente, una implementazione dedicata con garanzia di separazione delle risorse è proposta nel lavoro. Questa versione permette di ridurre l'interferenza di applicazioni indipendenti sui relativi tempi di esecuzione. Una campagna di valutazione è stata condotta su carichi di lavoro simulati, sviluppando allo scopo una libreria di emulazione della piattaforma hardware eterogenea (libGN). I risultati dimostrano la fattibilità dell'approccio proposto, le sue buone prestazioni e le caratteristiche di scalabilità. L'approccio proposto infatti consente di servire fino al 53% di richieste ad alta priorità rispetto alla versione senza predizione, che si limita al 32%. Inoltre, due applicazioni reali sono state impiegate sul prototipo della piattaforma eterogenea per esplorare le opzioni di allocazione della memoria fornite dall'approccio proposto. In generale, l'approccio proposto dimostra di essere adatto per una allocazione ottimale delle risorse di memoria nella piattaforma fortemente eterogenea obiettivo del lavoro.

Memory management techniques for deeply heterogeneous HPC architectures

Pupykina, Anna
2019/2020

Abstract

Resource allocation is a well-known problem, with a large number of research contributions towards efficient utilisation of the massive hardware parallelism using various exact and heuristic approaches. Nevertheless, memory management for heterogeneous systems is still a challenge, as these systems often feature separate physical spaces for the general-purpose part of the system and for the heterogeneous accelerators. Recent advances in memory allocation for homogeneous multicore architectures have focused on removing the need for application-specific allocators and improving scalability and allocation speed. Moreover, in many kinds of heterogeneous or accelerator-based systems, there is no dynamic memory allocation at all, with each accelerator endowed with its local memory. Thus, taking into account the difference between typical and deeply heterogeneous High Performance Computing (HPC) systems, memory management is becoming an essential part of resource management tools and requires novel algorithms to be developed. This work explores the most recent state-of-art memory management techniques for HPC and Cloud Computing. A significant part of the memory optimisation research both in HPC and Clouds domain is focused on resource management techniques. However, the degree of memory involvement in the provisioning and scheduling techniques is not very high, especially concerning the memory-processor interaction. A problem to solve is the resource allocation optimisation in complex heterogeneous architectures taking into account memory utilisation. Memory-centric Prediction-based Resource Allocation approach is addressed to solve this problem. The goal of the proposed approach is to manage the partitioning within a single heterogeneous node. This node is composed of a set of programmable accelerators (units) with different features along with several memory banks, all connected through a network-on-chip (NoC). Here, multiple accelerators coexist within a single node and can cooperate for a single application composed of multiple kernels, or they can be partitioned among different applications. For choosing the optimal memory module in NUMA architecture regarding the multiple criteria, the multi-criteria memory analysis with fuzzy pairwise comparison is applied for overcoming the subjectivity of criteria comparisons. Another topic close to this research line is resource utilisation prediction. Recent studies in resource utilisation prediction have focused on scheduling web services and resources optimisation in cloud architectures. Resources utilisation prediction is used to optimise the resource allocation in heterogeneous systems, taking into account the restrictions imposed by the runtime environment, such as the need for a fast short-term prediction with the minimal use of computational resources. In the target architecture, memory buffers from different applications could be allocated on the same memory module - this could cause unpredictable interference of concurrent applications on shared memory and routing bandwidth. The target scenario requires the management and allocation of resources across different applications in a way that maximises resource usage while preserving the predictable execution time of critical applications. For ensuring that the bus access requests always are provided immediately, particular implementation with resource separation within one heterogeneous node is proposed. It allows for reducing the stochastic influence of independent applications. A comprehensive evaluation has been carried out using a workload simulation along with platform emulation library libGN. It shows the overall feasibility of the approach, as well as performance and scalability. The proposed approach allows serving up to 53% of the high priority requests with respect to the baseline of 32% without prediction. Moreover, two real applications have been executed on the heterogeneous platform prototype for exploring the mapping options provided by the proposed approach. In general, the proposed approach shows the feasibility for optimal memory utilisation in the target deeply heterogeneous platform.
PERNICI, BARBARA
SILVANO, CRISTINA
20-lug-2020
Memory management techniques for deeply heterogeneous HPC architectures
L'allocazione delle risorse è un problema ben noto, su cui è stato prodotto un gran numero di contributi di ricerca volti a rendere efficiente, attraverso metodi esatti o euristici, l'impiego di risorse di calcolo parallelo di grandi dimensioni. Ciononostante, la gestione della memoria in sistemi eterogenei rimane una sfida da affrontare, in quanto questi sistemi impiegano spazi di memoria separati per la memoria principale del sistema e per gli acceleratori. Recenti sviluppi nell'allocazione della memoria per sistemi omogenei multicore si sono concentrati sull'evitare la necessità di allocatori dedicati per specifiche applicazioni, sulla scalabilità e sulla velocità dell'allocazione. Inoltre, in molti tipi di sistemi eterogenei o basati su acceleratori, non è prevista alcuna memoria dinamica, e al contrario ogni acceleratore ha a disposizione una sua memoria locale. Pertanto, tenendo conto delle differenze fra sistemi ad alte prestazioni (HPC) tradizionali ed eterogenei, la gesione della memoria sta diventando una parte essenziale degli strumenti di gestione delle risorse, e richiede lo sviluppo di algoritmi ad essa dedicati. Questo lavoro esplora lo stato dell'arte nella gestione della memoria per sistemi HPC e di Cloud Computing. Una parte significativa della ricerca sull'ottimizzazione della memoria in entrambi i campi è orientata allo sviluppo di tecniche di gestione delle risorse. Al contrario, la memoria è spesso poco considerata nelle tecniche di schedulazione e allocazione delle risorse, e raramente ci si preoccupa di coordinare correttamente l'allocazione dei processori e delle memorie. Un problema da risolvere è, pertanto, l'ottimizzazione dell'allocazione delle risorse in architetture di elaborazione complesse ed eterogenee, tenendo conto dell'uso della memoria. L'approccio proposto in questo lavoro, denominato "allocazione predittiva delle risorse focalizzata sulla memoria", tenta di risolve questo problema. L'obiettivo dell'approccio è la gestione ed il partizionamento delle risorse all'interno del singolo nodo eterogeneo di un sistema HPC. Il nodo è composto da un insieme di acceleratori programmabili (unità) con differenti caratteristiche, nonché di un certo numero di banchi di memoria, connessi attraverso una network-on-chip (NoC). I diversi acceleratori che coesistono nello stesso nodo possono cooperare nell'esecuzione di una applicazione composta da diversi kernel computazionali, oppure essere ripartiti fra applicazioni diverse. Considerando una architettura di memoria a tempo di accesso variabile (NUMA), per la scelta della allocazione ottima della memoria si è optato per l'impiego di una analisi multi-criterio della memoria con confronti fuzzy a coppie, per ridurre l'impatto della soggettività dei criteri di confronto. Un secondo argomento collegato a questa linea di ricerca è la predizione dell'utilizzo delle risorse. Studi recenti su questo tema si sono concentrati su sistemi Cloud, per la gestione di servizi web e delle risorse associate. La predizione è usata per ottimizzare l'allocazione delle risorse in sistemi eterogenei, tenendo conto delle restrizioni imposte dall'ambiente di esecuzione, come la necessità di predizioni rapide a breve termine che facciano uso di bassissime risorse. Nella architettura oggetto di questo lavoro, blocchi di memoria associati ad applicazioni diverse possono essere allocati sullo stesso banco fisico, causando imprevedibili interferenze fra applicazioni che concorrono per l'accesso alla medesima risorsa, in particolare alla banda verso la memoria. Lo scenario applicativo richiede la gestione delle risorse su più applicazioni, massimizzando l'uso delle risorse ma preservando al contempo la predicibilità dei tempi di esecuzione di applicazioni critiche. Per garantire che le richieste di accesso vengano servite immediatamente, una implementazione dedicata con garanzia di separazione delle risorse è proposta nel lavoro. Questa versione permette di ridurre l'interferenza di applicazioni indipendenti sui relativi tempi di esecuzione. Una campagna di valutazione è stata condotta su carichi di lavoro simulati, sviluppando allo scopo una libreria di emulazione della piattaforma hardware eterogenea (libGN). I risultati dimostrano la fattibilità dell'approccio proposto, le sue buone prestazioni e le caratteristiche di scalabilità. L'approccio proposto infatti consente di servire fino al 53% di richieste ad alta priorità rispetto alla versione senza predizione, che si limita al 32%. Inoltre, due applicazioni reali sono state impiegate sul prototipo della piattaforma eterogenea per esplorare le opzioni di allocazione della memoria fornite dall'approccio proposto. In generale, l'approccio proposto dimostra di essere adatto per una allocazione ottimale delle risorse di memoria nella piattaforma fortemente eterogenea obiettivo del lavoro.
File allegati
File Dimensione Formato  
thesis_pupykina.pdf

accessibile in internet solo dagli utenti autorizzati

Dimensione 5.8 MB
Formato Adobe PDF
5.8 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/164564