The serverless computing paradigm has experienced a crucial growth in the past few years. It is an event-driven cloud execution model that allows developers to split applications at function level, treating them as independent units. This novel paradigm came along with the need to continue to guarantee Service Level Agreements (SLAs) in increasingly complex cloud infrastructures. To address the growing interest in developing compute-intensive workloads, heterogeneous computing platforms - such as the ones composed of CPUs and Field Programmable Gate Arrays (FPGAs) - emerged as a valuable solution to effectively respond to heavy computations and accelerate them. Within this context, one of the main challenges lies in the capability of the cloud system to adapt its resource allocation autonomously according to traffic variations, while trying to minimize the wastage of computational power. The main orchestration tools available at commercial level adopt threshold-based approaches to scale the resources in and out, but they are purely reactive methods that lack flexibility. On the other hand, predictive approaches are the subject of the latest research but show performance limitations in large state spaces, and usually need a heavy computational effort during the learning phase. Moreover, none of these approaches are built to work efficiently within heterogeneous platforms composed of CPUs and FPGAs. In this thesis, we propose two solutions to address the scaling problem in FPGA-based heterogeneous serverless environments. The first one is PLUTO, a novel autoscaler for FPGA-as-a-Service accelerated functions based on a Partially Observable Markov Decision Process (POMDP). PLUTO is a decision agent that works as a decentralized per-application autoscaler, which allows achieving a compromise between proactivity and reactivity thanks to the POMDP logic. The second proposed solution is a hybrid approach that combines PLUTO's benefits with a reactive mechanism that emulates the behavior of a popular threshold-based approach. The integration of these two models not only further reduces the application response time in presence of heavy traffic, but also achieves higher flexibility in the management of different workload trends. Both the approaches were tested on an FPGA-based serverless infrastructure, comparing the results with two popular autoscalers. PLUTO performs a more accurate resource scaling w.r.t. the commercial schemes, avoiding both wastage and overloading of resources while maintaining the service latency in the desired range. Moreover, thanks to its enhanced flexibility, the hybrid solution is able to achieve improved adaptability to the workload trend, while guaranteeing a better service with no latency violations during heavy traffic.

Il paradigma serverless ha visto una crescita cruciale negli ultimi anni. Si tratta di un modello cloud a eventi che permette agli sviluppatori di suddividere le applicazioni a livello delle singole funzioni, trattandole come unità indipendenti. Questo nuovo schema di esecuzione è sorto insieme alla necessita di continuare a garantire i Service Level Agreement (SLA) di infrastrutture cloud sempre più complesse. In risposta al crescente interesse nel deployare sul cloud carichi di lavoro sempre più ad alta intensità, le piattaforme eterogenee – ad esempio quelle composte da CPU e Field Programmable Gate Array (FPGA) – si sono rivelate una valida soluzione per sostenere ed accelerare computazioni onerose. In questo contesto, una delle sfide principali risiede nella capacità del sistema cloud di adattare autonomamente la sua allocazione di risorse in base alle variazioni del traffico, cercando di minimizzare lo spreco di potenza di calcolo. I principali tool di orchestrazione disponibili a livello commerciale adottano approcci basati su soglia per scalare le risorse allocate, ma sono metodi puramente reattivi che mancano di flessibilità. Soluzioni predittive sono invece oggetto delle ricerche più recenti, tuttavia mostrano limitazioni di performance in state space molto estesi, e spesso richiedono computazioni onerose durante la fase di learning. Inoltre, nessuno di questi approcci è stato ideato per lavorare in modo efficiente all’interno di piattaforme eterogenee composte da CPU e FPGA. In questa tesi, proponiamo due soluzioni per affrontare il problema dello scaling di risorse in contesti serverless eterogenei basati su FPGA. Il primo è PLUTO, un autoscaler innovativo per funzioni serverless accelerate da FPGA basato su un Partially Observable Markov Decision Process (POMDP). PLUTO è un agente decisionale che funziona da autoscaler decentralizzato per singola applicazione, che permette di raggiungere un compromesso tra proattività e reattività grazie alla logica del POMDP. La seconda soluzione proposta è un approccio ibrido che combina i benefici di PLUTO con un meccanismo reattivo che emula il comportamento di un popolare autoscaler. L’integrazione di questi due modelli non solo va ulteriormente a ridurre il tempo di risposta dell’applicazione in condizioni di traffico elevato, ma è anche in grado di ottenere una maggiore flessibilità nella gestione di diversi andamenti del carico computazionale. Entrambi gli approcci sono stati testati su un’infrastruttura serverless basata su FPGA, confrontandone i risultati con due popolari autoscaler. PLUTO esegue uno scaling più accurato rispetto alle soluzioni commerciali, evitando sia spreco che sovraccarico di risorse e mantenendo la latenza del servizio nell’intervallo desiderato. Inoltre, grazie alla sua flessibilità, l’approccio ibrido è in grado di ottenere una maggiore adattabilità all’andamento del carico computazionale, garantendo un servizio migliore e senza violazioni di latenza durante condizioni di traffico elevato.

Bridging reactivity and proactivity for efficient resource scaling of FPGA-based serverless environments

Fiscaletti, Giorgia
2019/2020

Abstract

The serverless computing paradigm has experienced a crucial growth in the past few years. It is an event-driven cloud execution model that allows developers to split applications at function level, treating them as independent units. This novel paradigm came along with the need to continue to guarantee Service Level Agreements (SLAs) in increasingly complex cloud infrastructures. To address the growing interest in developing compute-intensive workloads, heterogeneous computing platforms - such as the ones composed of CPUs and Field Programmable Gate Arrays (FPGAs) - emerged as a valuable solution to effectively respond to heavy computations and accelerate them. Within this context, one of the main challenges lies in the capability of the cloud system to adapt its resource allocation autonomously according to traffic variations, while trying to minimize the wastage of computational power. The main orchestration tools available at commercial level adopt threshold-based approaches to scale the resources in and out, but they are purely reactive methods that lack flexibility. On the other hand, predictive approaches are the subject of the latest research but show performance limitations in large state spaces, and usually need a heavy computational effort during the learning phase. Moreover, none of these approaches are built to work efficiently within heterogeneous platforms composed of CPUs and FPGAs. In this thesis, we propose two solutions to address the scaling problem in FPGA-based heterogeneous serverless environments. The first one is PLUTO, a novel autoscaler for FPGA-as-a-Service accelerated functions based on a Partially Observable Markov Decision Process (POMDP). PLUTO is a decision agent that works as a decentralized per-application autoscaler, which allows achieving a compromise between proactivity and reactivity thanks to the POMDP logic. The second proposed solution is a hybrid approach that combines PLUTO's benefits with a reactive mechanism that emulates the behavior of a popular threshold-based approach. The integration of these two models not only further reduces the application response time in presence of heavy traffic, but also achieves higher flexibility in the management of different workload trends. Both the approaches were tested on an FPGA-based serverless infrastructure, comparing the results with two popular autoscalers. PLUTO performs a more accurate resource scaling w.r.t. the commercial schemes, avoiding both wastage and overloading of resources while maintaining the service latency in the desired range. Moreover, thanks to its enhanced flexibility, the hybrid solution is able to achieve improved adaptability to the workload trend, while guaranteeing a better service with no latency violations during heavy traffic.
BRONDOLIN, ROLANDO
ING - Scuola di Ingegneria Industriale e dell'Informazione
28-apr-2021
2019/2020
Il paradigma serverless ha visto una crescita cruciale negli ultimi anni. Si tratta di un modello cloud a eventi che permette agli sviluppatori di suddividere le applicazioni a livello delle singole funzioni, trattandole come unità indipendenti. Questo nuovo schema di esecuzione è sorto insieme alla necessita di continuare a garantire i Service Level Agreement (SLA) di infrastrutture cloud sempre più complesse. In risposta al crescente interesse nel deployare sul cloud carichi di lavoro sempre più ad alta intensità, le piattaforme eterogenee – ad esempio quelle composte da CPU e Field Programmable Gate Array (FPGA) – si sono rivelate una valida soluzione per sostenere ed accelerare computazioni onerose. In questo contesto, una delle sfide principali risiede nella capacità del sistema cloud di adattare autonomamente la sua allocazione di risorse in base alle variazioni del traffico, cercando di minimizzare lo spreco di potenza di calcolo. I principali tool di orchestrazione disponibili a livello commerciale adottano approcci basati su soglia per scalare le risorse allocate, ma sono metodi puramente reattivi che mancano di flessibilità. Soluzioni predittive sono invece oggetto delle ricerche più recenti, tuttavia mostrano limitazioni di performance in state space molto estesi, e spesso richiedono computazioni onerose durante la fase di learning. Inoltre, nessuno di questi approcci è stato ideato per lavorare in modo efficiente all’interno di piattaforme eterogenee composte da CPU e FPGA. In questa tesi, proponiamo due soluzioni per affrontare il problema dello scaling di risorse in contesti serverless eterogenei basati su FPGA. Il primo è PLUTO, un autoscaler innovativo per funzioni serverless accelerate da FPGA basato su un Partially Observable Markov Decision Process (POMDP). PLUTO è un agente decisionale che funziona da autoscaler decentralizzato per singola applicazione, che permette di raggiungere un compromesso tra proattività e reattività grazie alla logica del POMDP. La seconda soluzione proposta è un approccio ibrido che combina i benefici di PLUTO con un meccanismo reattivo che emula il comportamento di un popolare autoscaler. L’integrazione di questi due modelli non solo va ulteriormente a ridurre il tempo di risposta dell’applicazione in condizioni di traffico elevato, ma è anche in grado di ottenere una maggiore flessibilità nella gestione di diversi andamenti del carico computazionale. Entrambi gli approcci sono stati testati su un’infrastruttura serverless basata su FPGA, confrontandone i risultati con due popolari autoscaler. PLUTO esegue uno scaling più accurato rispetto alle soluzioni commerciali, evitando sia spreco che sovraccarico di risorse e mantenendo la latenza del servizio nell’intervallo desiderato. Inoltre, grazie alla sua flessibilità, l’approccio ibrido è in grado di ottenere una maggiore adattabilità all’andamento del carico computazionale, garantendo un servizio migliore e senza violazioni di latenza durante condizioni di traffico elevato.
File allegati
File Dimensione Formato  
tesi.pdf

non accessibile

Descrizione: Prima submission
Dimensione 2.01 MB
Formato Adobe PDF
2.01 MB Adobe PDF   Visualizza/Apri
tesi-finale.pdf

non accessibile

Descrizione: Submission finale
Dimensione 2.01 MB
Formato Adobe PDF
2.01 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/174385