High Performance Computing (HPC) allows scientists and engineers to solve complex computation-intensive problems of disparate nature. HPC applications typically manage huge input datasets and are characterized by multiple parameters that influence their execution. The power consumed or dissipated limits modern systems performance. Approximate computing is an appealing approach to improve energy efficiency, leveraging the performance-accuracy trade-off. Autotuner frameworks are leading players in the actuation of this approach. They drive the target application by selecting the best set of application parameters according to user-set goals, expressed with respect to metrics of interest, such as execution time or power consumption. In other words, autotuners choose the best trade-off among the metrics which still satisfies the requirements. A key component of an autotuning framework is the application knowledge, which describes the application expected behavior. The autotuning framework learns this knowledge either at design time or at run-time. We will focus on the latter version. In the occurrence of a change in the application behavior, be it following a variation in the input dataset features or an alteration in the execution environment, the knowledge with which the autotuner operates becomes obsolete. This impacts negatively on the application's efficiency. Thus emerges the need to cope with such situations. In order to do so, we need to solve a problem which is composed of (i) detecting consistent discrepancies between the expected and the observed application behavior, (ii) and adapting the application knowledge accordingly. The main objective of this work is the implementation of a module to continuously monitor HPC applications distributed on multiple nodes, together with its integration in a preexisting autotuner. This new remote module is in charge of monitoring the execution and detecting anomalies by means of a two-level hierarchical Change Detecxtion Test (CDT). The first level, an ICI-based CDT, is in charge of the anomaly detection task by evaluating the collective behavior of the running nodes. The second level is a hypothesis test which works client-wise; it gauges the percentage of misbehaving nodes out of all the available and according to this it either confirms or rejects the change detected by the first level. We validated the proposed methodology on synthetic applications and on two case studies.

Il calcolo ad elevate prestazioni (High Performance Computing - HPC) consente a scienziati e ingegneri di risolvere problemi complessi, di svariata natura, che richiedono molti calcoli. Le applicazioni HPC tipicamente gestiscono enormi insiemi di dati in ingresso e sono caratterizzate da molteplici parametri che ne influenzano l'esecuzione. La potenza consumata o dissipata limita le performance dei sistemi moderni. Tecniche di calcolo approssimato che si basano su compromessi tra prestazioni e accuratezza sono interessanti approcci per migliorare l'efficienza energetica. Gli Autotuner sono protagonisti nell'implementazione di queste strategie. Gestiscono l'applicazione interessata selezionando la migliore configurazione di parametri, secondo obiettivi impostati dall'utente rispetto a metriche di interesse, come tempo di esecuzione o consumo energetico. In altre parole, un autotuner sceglie il miglior compromesso tra le metriche che soddisfa i requisiti. Componente chiave di un sistema di autotuning è una conoscenza dell'applicazione che ne descrive il comportamento atteso. Gli autotuner ricevono questa conoscenza o prima dell'esecuzione o durante la stessa. Nel caso di un cambiamento nel comportamento dell'applicazione, sia esso in seguito ad una variazione nelle caratteristiche dei dati in ingresso o ad un'alterazione nell'ambiente di esecuzione, la conoscenza con cui l'autotuner opera diventa obsoleta. Questo impatta negativamente sull'efficienza dell'applicazione. Emerge quindi la necessità di far fronte a queste evenienze. Per fare ciò, dobbiamo risolvere un problema composto dal (i) rilevare questa significativa discrepanza tra il comportamento atteso dell'applicazione e quello osservato, (ii) e adattare di conseguenza la conoscenza sull'applicazione. Il principale obiettivo di questo lavoro è l'implementazione di un modulo preposto al monitoraggio continuo di applicazioni HPC distribuite su più nodi, insieme alla sua integrazione in un preesistente autotuner. Tale nuovo modulo remoto è incaricato di monitorare l'andamento dell'esecuzione e di identificare anomalie per mezzo di un test di rilevamento di cambiamenti (Change Detection Test - CDT) gerarchico composto da due livelli. Il primo, un CDT basato sull'intersezione di intervalli di confidenza, è incaricato di rilevare l'irregolarità valutando il comportamento collettivo dei nodi in esecuzione. Il secondo livello è un test d'ipotesi che lavora su ogni singolo nodo; stima la percentuale dei client che deviano dal comportamento atteso e a seconda di questa conferma o rigetta l'anomalia rilevata dal primo livello. Abbiamo validato la metodologia proposta su applicazioni sintetiche e su due casi di studio.

Beholder : online monitoring framework for adaptive applications

BENDIN, ALBERTO
2017/2018

Abstract

High Performance Computing (HPC) allows scientists and engineers to solve complex computation-intensive problems of disparate nature. HPC applications typically manage huge input datasets and are characterized by multiple parameters that influence their execution. The power consumed or dissipated limits modern systems performance. Approximate computing is an appealing approach to improve energy efficiency, leveraging the performance-accuracy trade-off. Autotuner frameworks are leading players in the actuation of this approach. They drive the target application by selecting the best set of application parameters according to user-set goals, expressed with respect to metrics of interest, such as execution time or power consumption. In other words, autotuners choose the best trade-off among the metrics which still satisfies the requirements. A key component of an autotuning framework is the application knowledge, which describes the application expected behavior. The autotuning framework learns this knowledge either at design time or at run-time. We will focus on the latter version. In the occurrence of a change in the application behavior, be it following a variation in the input dataset features or an alteration in the execution environment, the knowledge with which the autotuner operates becomes obsolete. This impacts negatively on the application's efficiency. Thus emerges the need to cope with such situations. In order to do so, we need to solve a problem which is composed of (i) detecting consistent discrepancies between the expected and the observed application behavior, (ii) and adapting the application knowledge accordingly. The main objective of this work is the implementation of a module to continuously monitor HPC applications distributed on multiple nodes, together with its integration in a preexisting autotuner. This new remote module is in charge of monitoring the execution and detecting anomalies by means of a two-level hierarchical Change Detecxtion Test (CDT). The first level, an ICI-based CDT, is in charge of the anomaly detection task by evaluating the collective behavior of the running nodes. The second level is a hypothesis test which works client-wise; it gauges the percentage of misbehaving nodes out of all the available and according to this it either confirms or rejects the change detected by the first level. We validated the proposed methodology on synthetic applications and on two case studies.
GADIOLI, DAVIDE
ING - Scuola di Ingegneria Industriale e dell'Informazione
16-apr-2019
2017/2018
Il calcolo ad elevate prestazioni (High Performance Computing - HPC) consente a scienziati e ingegneri di risolvere problemi complessi, di svariata natura, che richiedono molti calcoli. Le applicazioni HPC tipicamente gestiscono enormi insiemi di dati in ingresso e sono caratterizzate da molteplici parametri che ne influenzano l'esecuzione. La potenza consumata o dissipata limita le performance dei sistemi moderni. Tecniche di calcolo approssimato che si basano su compromessi tra prestazioni e accuratezza sono interessanti approcci per migliorare l'efficienza energetica. Gli Autotuner sono protagonisti nell'implementazione di queste strategie. Gestiscono l'applicazione interessata selezionando la migliore configurazione di parametri, secondo obiettivi impostati dall'utente rispetto a metriche di interesse, come tempo di esecuzione o consumo energetico. In altre parole, un autotuner sceglie il miglior compromesso tra le metriche che soddisfa i requisiti. Componente chiave di un sistema di autotuning è una conoscenza dell'applicazione che ne descrive il comportamento atteso. Gli autotuner ricevono questa conoscenza o prima dell'esecuzione o durante la stessa. Nel caso di un cambiamento nel comportamento dell'applicazione, sia esso in seguito ad una variazione nelle caratteristiche dei dati in ingresso o ad un'alterazione nell'ambiente di esecuzione, la conoscenza con cui l'autotuner opera diventa obsoleta. Questo impatta negativamente sull'efficienza dell'applicazione. Emerge quindi la necessità di far fronte a queste evenienze. Per fare ciò, dobbiamo risolvere un problema composto dal (i) rilevare questa significativa discrepanza tra il comportamento atteso dell'applicazione e quello osservato, (ii) e adattare di conseguenza la conoscenza sull'applicazione. Il principale obiettivo di questo lavoro è l'implementazione di un modulo preposto al monitoraggio continuo di applicazioni HPC distribuite su più nodi, insieme alla sua integrazione in un preesistente autotuner. Tale nuovo modulo remoto è incaricato di monitorare l'andamento dell'esecuzione e di identificare anomalie per mezzo di un test di rilevamento di cambiamenti (Change Detection Test - CDT) gerarchico composto da due livelli. Il primo, un CDT basato sull'intersezione di intervalli di confidenza, è incaricato di rilevare l'irregolarità valutando il comportamento collettivo dei nodi in esecuzione. Il secondo livello è un test d'ipotesi che lavora su ogni singolo nodo; stima la percentuale dei client che deviano dal comportamento atteso e a seconda di questa conferma o rigetta l'anomalia rilevata dal primo livello. Abbiamo validato la metodologia proposta su applicazioni sintetiche e su due casi di studio.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2019_04_Bendin.pdf

accessibile in internet per tutti

Descrizione: Thesis text
Dimensione 11.63 MB
Formato Adobe PDF
11.63 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/147380