Approximate Computing (AC) is a computing paradigm that trades the output accuracy for energy and computing time. The research on this paradigm roughly started at the beginning of the last decade, and, during the mid of the current one, it gained popularity. AC targets computing-intensive applications that do not require an accurate result, allowing an increase of performance. In parallel, during this decade, the Internet of Things (IoT) systems gained momentum, and today we can experience how pervasive they are. Nowadays, there is a new class of green and eco-friendly IoT devices that operate without batteries or tethered power line. This reduces the costs of maintenance and allows implementations or architectures that were considered to be unfeasible due to battery limitations. These devices rely on energy harvested from the environment, which is unpredictable and results in frequent power failures. These kind of devices, are characterized by small form factor, low computational power, low power consumption, and contained costs. For these reasons, the deployment of an Operating System (OS) which has all the features of a mainstream OS, such as the management of power failures, is not possible; then when a power failure happens all the computations progress are lost. Therefore, the literature describes two kinds of solutions to ensure the program forward across power failures. Checkpoint-based solutions, that save the program state into a Non Volatile Memory (NVM) space, to make it persistence across power failures. Task-based solutions, that require the programmer to divide the program into atomic tasks. Each task is re-executed from the beginning upon a power failure, and saves its result only when the computation completes and that ensures a transactional semantic. Both solutions guarantee the forward execution of an application in presence of power failures, we call this new paradigm of computation the intermittent computing. Both solutions introduce an overhead: checkpoints are costly operations in terms of energy for the operations on the NVM and time for collecting the program state data; tasks, instead, can be re-executed if interrupted from power failures. Thus, both solutions and Transiently Powered Computers (TPCs) in general may benefit from energy saving opportunities that arise from AC. In this document, we propose AMNESIA, an approximate energy-aware framework to support intermittent computing. AMNESIA exploits the Loop Perforation technique of AC, which consists of skipping some loop iterations to reduce energy consumption at the expense of results quality. AMNESIA allows the user to specify energy boundaries and uses it to select the approximation that results in the best trade-off between performance and quality. The framework, starting from a set of possible approximations of an application, is able, by performing an offline exploration, to select the set of the most promising approximation of the application in terms of performance and quality of the results. Then, the runtime component of the framework, when required, runs the approximated version of the application that is compliant with the external-provided energy boundaries. AMNESIA reaches its goal and it guarantees the execution of an application within the provided energy budget. In addition, since there are different ways to approximate an application, AMNESIA selects approximations of the application that are better than the 80% of the total available approximation for that application.

Il calcolo approssimato è un paradigma di calcolo che sacrificando parte della qualità di un risultato, ottiene in cambio un aumento prestazionale come, ad esempio, l'utilizzo di minor risorse energetiche. Il calcolo approssimato si adatta tutti quei processi che richiedono un'elevata potenza computazionale, ma che al contempo non sempre richiedono un’estrema precisione del risultato. In contemporanea, la diffusione dell'Internet of Things (IoT) ha fatto emergere l'esigenza di dispositivi sempre più piccoli, più economici e con minor impatto ambientale, portando alla nascita di una nuova classe di dispositivi: i dispositivi con alimentazione ad intermittenza. Essi sono alimentati con l'energia raccolta dall'ambiente che carica un piccolo condensatore che funge da magazzino di energia. L'assenza di batterie riduce i costi di manutenzione, che diventano quasi nulli, e abilita nuove possibilità e servizi che erano prima impraticabili. Purtroppo, il comportamento dell'energia ambientale non è prevedibile, quindi questa tipologia di dispositivi è soggetta a continui spegnimenti. Uno spegnimento improvviso non è un problema per un dispositivo moderno, come potrebbe essere il nostro laptop, infatti esso ha a disposizione un Sistema Operativo (SO) che si occupa della gestione di vari malfunzionamenti, tra cui uno spegnimento improvviso. I dispositivi con alimentazione ad intermittenza, sono contraddistinti da un fattore di forma ridotto, una bassa potenza computazionale, un basso consumo energetico e da dei costi contenuti. Per queste ragioni, l'utilizzo di un sistema operativo, come può essere quello presente sul nostro laptop, non è possibile; quindi non vi è nulla per mitigare i problemi legati ad uno spegnimento improvviso. Ciò si traduce nel fatto che, ogni volta che vi è uno spegnimento, tutto il progresso computazionale è perso. La ricerca si è concentrata per risolvere questo problema e consentire il progresso di un'esecuzione anche a fronte di uno spegnimento improvviso, in letteratura sono presentate due soluzioni possibili. Soluzioni basate sul meccanismo dei checkpoint, esse salvano lo stato di esecuzione del programma in una memoria non volatile così da garantire l'esecuzione attraverso spegnimenti improvvisi. Soluzioni basate sui task, queste soluzioni richiedono al programmatore di dividere il proprio programma in task atomici, ossia funzioni che devono essere eseguite atomicamente senza spegnimenti durante la loro esecuzione. Il task, una volta completato, salva il suo risultato in una memoria non volatile; se uno spegnimento avviene durante l'esecuzione del task, il task è rieseguito da capo. Questo assicura una semantica transazionale. Queste due soluzioni, che consentono l'esecuzione nonostante spegnimenti frequenti, danno vita ad un nuovo paradigma computazionale: la computazione ad intermittenza. Entrambe le soluzioni, però, introducono un overhead: i checkpoint sono operazioni costose in termini di energia spesa per le operazioni in memoria non volatile e di tempo per raccogliere lo stato di esecuzione; i task possono non completare a causa di spegnimenti improvvisi. Quindi, entrambe le soluzioni e in generale i dispositivi alimentati ad intermittenza possono beneficiare delle opportunità di risparmio energetico offerte dalla computazione approssimata. In questo documento, proponiamo AMNESIA un framework di calcolo approssimato per dispositivi alimentati ad intermittenza. AMNESIA produce un risparmio energetico sfruttando il calcolo approssimato e in particolare la tecnica della Loop Perforation. Questo offre la possibilità di eseguire un'applicazione rispettando un limite di consumo. Il framework, partendo da un set di possibili approssimazioni di un'applicazione, è capace di selezionare il sottoinsieme che offre il miglior compromesso tra performace e qualità del risultato, mediante una procedura di esplorazione offline. Quindi, durante l'esecuzione, il framework sceglie l'approssimazione corretta, a fronte di una richiesta di computazione e di un limite di consumo energetico da dover rispettare. AMNESIA riesce a raggiungere gli obbiettivi prefissati di risparmio energetico, garantendo l'esecuzione di un'applicazione all'interno del budget energetico prefissato. In più, AMNESIA seleziona un sottoinsieme di approssimazioni che si rivelano essere meglio dell'80% delle approssimazioni totali prese in considerazione per un'applicazione.

Approximate energy-aware framework to support intermittent computing

CERIZZI, FRANCESCO
2018/2019

Abstract

Approximate Computing (AC) is a computing paradigm that trades the output accuracy for energy and computing time. The research on this paradigm roughly started at the beginning of the last decade, and, during the mid of the current one, it gained popularity. AC targets computing-intensive applications that do not require an accurate result, allowing an increase of performance. In parallel, during this decade, the Internet of Things (IoT) systems gained momentum, and today we can experience how pervasive they are. Nowadays, there is a new class of green and eco-friendly IoT devices that operate without batteries or tethered power line. This reduces the costs of maintenance and allows implementations or architectures that were considered to be unfeasible due to battery limitations. These devices rely on energy harvested from the environment, which is unpredictable and results in frequent power failures. These kind of devices, are characterized by small form factor, low computational power, low power consumption, and contained costs. For these reasons, the deployment of an Operating System (OS) which has all the features of a mainstream OS, such as the management of power failures, is not possible; then when a power failure happens all the computations progress are lost. Therefore, the literature describes two kinds of solutions to ensure the program forward across power failures. Checkpoint-based solutions, that save the program state into a Non Volatile Memory (NVM) space, to make it persistence across power failures. Task-based solutions, that require the programmer to divide the program into atomic tasks. Each task is re-executed from the beginning upon a power failure, and saves its result only when the computation completes and that ensures a transactional semantic. Both solutions guarantee the forward execution of an application in presence of power failures, we call this new paradigm of computation the intermittent computing. Both solutions introduce an overhead: checkpoints are costly operations in terms of energy for the operations on the NVM and time for collecting the program state data; tasks, instead, can be re-executed if interrupted from power failures. Thus, both solutions and Transiently Powered Computers (TPCs) in general may benefit from energy saving opportunities that arise from AC. In this document, we propose AMNESIA, an approximate energy-aware framework to support intermittent computing. AMNESIA exploits the Loop Perforation technique of AC, which consists of skipping some loop iterations to reduce energy consumption at the expense of results quality. AMNESIA allows the user to specify energy boundaries and uses it to select the approximation that results in the best trade-off between performance and quality. The framework, starting from a set of possible approximations of an application, is able, by performing an offline exploration, to select the set of the most promising approximation of the application in terms of performance and quality of the results. Then, the runtime component of the framework, when required, runs the approximated version of the application that is compliant with the external-provided energy boundaries. AMNESIA reaches its goal and it guarantees the execution of an application within the provided energy budget. In addition, since there are different ways to approximate an application, AMNESIA selects approximations of the application that are better than the 80% of the total available approximation for that application.
ING - Scuola di Ingegneria Industriale e dell'Informazione
29-apr-2020
2018/2019
Il calcolo approssimato è un paradigma di calcolo che sacrificando parte della qualità di un risultato, ottiene in cambio un aumento prestazionale come, ad esempio, l'utilizzo di minor risorse energetiche. Il calcolo approssimato si adatta tutti quei processi che richiedono un'elevata potenza computazionale, ma che al contempo non sempre richiedono un’estrema precisione del risultato. In contemporanea, la diffusione dell'Internet of Things (IoT) ha fatto emergere l'esigenza di dispositivi sempre più piccoli, più economici e con minor impatto ambientale, portando alla nascita di una nuova classe di dispositivi: i dispositivi con alimentazione ad intermittenza. Essi sono alimentati con l'energia raccolta dall'ambiente che carica un piccolo condensatore che funge da magazzino di energia. L'assenza di batterie riduce i costi di manutenzione, che diventano quasi nulli, e abilita nuove possibilità e servizi che erano prima impraticabili. Purtroppo, il comportamento dell'energia ambientale non è prevedibile, quindi questa tipologia di dispositivi è soggetta a continui spegnimenti. Uno spegnimento improvviso non è un problema per un dispositivo moderno, come potrebbe essere il nostro laptop, infatti esso ha a disposizione un Sistema Operativo (SO) che si occupa della gestione di vari malfunzionamenti, tra cui uno spegnimento improvviso. I dispositivi con alimentazione ad intermittenza, sono contraddistinti da un fattore di forma ridotto, una bassa potenza computazionale, un basso consumo energetico e da dei costi contenuti. Per queste ragioni, l'utilizzo di un sistema operativo, come può essere quello presente sul nostro laptop, non è possibile; quindi non vi è nulla per mitigare i problemi legati ad uno spegnimento improvviso. Ciò si traduce nel fatto che, ogni volta che vi è uno spegnimento, tutto il progresso computazionale è perso. La ricerca si è concentrata per risolvere questo problema e consentire il progresso di un'esecuzione anche a fronte di uno spegnimento improvviso, in letteratura sono presentate due soluzioni possibili. Soluzioni basate sul meccanismo dei checkpoint, esse salvano lo stato di esecuzione del programma in una memoria non volatile così da garantire l'esecuzione attraverso spegnimenti improvvisi. Soluzioni basate sui task, queste soluzioni richiedono al programmatore di dividere il proprio programma in task atomici, ossia funzioni che devono essere eseguite atomicamente senza spegnimenti durante la loro esecuzione. Il task, una volta completato, salva il suo risultato in una memoria non volatile; se uno spegnimento avviene durante l'esecuzione del task, il task è rieseguito da capo. Questo assicura una semantica transazionale. Queste due soluzioni, che consentono l'esecuzione nonostante spegnimenti frequenti, danno vita ad un nuovo paradigma computazionale: la computazione ad intermittenza. Entrambe le soluzioni, però, introducono un overhead: i checkpoint sono operazioni costose in termini di energia spesa per le operazioni in memoria non volatile e di tempo per raccogliere lo stato di esecuzione; i task possono non completare a causa di spegnimenti improvvisi. Quindi, entrambe le soluzioni e in generale i dispositivi alimentati ad intermittenza possono beneficiare delle opportunità di risparmio energetico offerte dalla computazione approssimata. In questo documento, proponiamo AMNESIA un framework di calcolo approssimato per dispositivi alimentati ad intermittenza. AMNESIA produce un risparmio energetico sfruttando il calcolo approssimato e in particolare la tecnica della Loop Perforation. Questo offre la possibilità di eseguire un'applicazione rispettando un limite di consumo. Il framework, partendo da un set di possibili approssimazioni di un'applicazione, è capace di selezionare il sottoinsieme che offre il miglior compromesso tra performace e qualità del risultato, mediante una procedura di esplorazione offline. Quindi, durante l'esecuzione, il framework sceglie l'approssimazione corretta, a fronte di una richiesta di computazione e di un limite di consumo energetico da dover rispettare. AMNESIA riesce a raggiungere gli obbiettivi prefissati di risparmio energetico, garantendo l'esecuzione di un'applicazione all'interno del budget energetico prefissato. In più, AMNESIA seleziona un sottoinsieme di approssimazioni che si rivelano essere meglio dell'80% delle approssimazioni totali prese in considerazione per un'applicazione.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2020_04_Cerizzi.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 20.04 MB
Formato Adobe PDF
20.04 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/165326