• Non ci sono risultati.

2.2 Tree Echo State Network

2.2.4 Risultati sperimentali TreeESN

La TreeESN e' stata applicata con successo a problemi real-world su domini di alberi, ad esempio nell'area di elaborazione di documenti e nella tossicologia computazionale [6].

In [6] viene studiata la relazione tra le due funzioni di state mapping, viste nei paragra precedenti, e le proprietà Markoviane. Gli eetti di tale relazione sono stati investigati attraverso esperimenti su task reali, e su task articiali creati ad-hoc. In particolare, TreeESN-R, che preserva l'organizzazione Markoviana delle dinamiche del reservoir, ha delle performance proporzionali al grado di Markovianità del task. Invece TreeESN-M raggiunge performance promettenti su task con caratterizzazione non-Markoviana, rivelandosi uno strumento utile avendo a che fare con task di cui non è chiaro il grado di Markovianità. La TreeESN è stata utilizzata in un task di regressione lineare, con l'obietti- vo di predire il tempo di completamento di applicazioni parallele implementate usando i pattern visti nel Capitolo 1 [1], i cui risultati hanno messo le basi per il lavoro descritto in questa tesi.

I risultati ottenuti sono stati confrontati con quelli del modello analitico della Sezione 1.2.1, con particolare enfasi sulle applicazioni che evidenziavano eccesso di parallelismo. Con un procedimento simile a quello che si vedrà nel Capitolo 3, è stato generato un insieme di programmi paralleli, etichettato con i target desi- derati e rappresentato in un dataset. Sempre in [1], sono state prodotte dierenti rappresentazioni del dataset originario, alcune delle quali includono informazio- ni provenienti dal modello analitico, per investigare l'inuenza di quest'ultimo sulle capacità predittive del modello. Dopo l'usuale processo di validazione e test, i risultati ottenuti dal dataset originario non erano soddisfacenti, raggiun- gendo un errore del 19%. Viceversa il dataset con le informazioni sul modello dei costi ha mostrato ottimi risultati, con un errore del 3.2% [1].

Sul dataset analizzato la TreeESN si è mostrata capace di catturare la relazione esistente tra alberi e target anche nei casi in cui il modello dei costi non poteva essere applicato.

Capitolo 3

Approccio TreeESN per

l'High Performance

Computing

In questo capitolo verrà analizzata la costruzione di un task di apprendimento automatico, dalla generazione del dataset, all'addestramento e stima del rischio del modello TreeESN. L'obiettivo è ottenere un modello predittivo di regressione lineare supervisionata, che prenda in input uno skeleton tree, predicendone il tempo di completamento oppure il consumo di energia attesi. Verranno utiliz- zati come baseline i risultati descritti nella Sezione 2.2.4, che sono stati ottenuti nella tesi in [1], la quale fornisce anche una prima implementazione della TreeE- SN, e di conseguenza delle rappresentazioni per i dati, che verranno tuttavia rigenerati. In questa sede verranno evidenziate solo le novità introdotte duran- te la costruzione del task, per una descrizione dettagliata dell'implementazione della TreeESN si veda [1].

3.1 Analisi del problema e stato dell'arte

In questa sezione verranno analizzati i motivi per cui un approccio di machine learning è interessante per il problema in esame, e citati alcuni dei risultati più rilevanti presenti in letteratura.

Per quanto riguarda il tempo di completamento, abbiamo a disposizione un modello analitico dei costi, descritto nella Sezione 1.2. Il modello non presenta riferimenti al massimo numero di risorse a disposizione nell'architettura in uso, e tutta la trattazione viene fondata sulla seguente assunzione [4]:

Assunzione 1. L'architettura sottostante soddisfa il grado di parallelismo ri- chiesto dallo skeleton tree del programma che viene eseguito. (difetto di paral- lelismo)

Il caso opposto, indicato come eccesso di parallelismo, non viene quindi preso in considerazione dal modello analitico. Per questo motivo la costruzione di un modello di apprendimento predittivo per il tempo di completamento di- venta interessante, ai ni di valutarne il comportamento nelle zone ombra, cioè i casi che non vengono trattati adeguatamente dal modello analitico.

Con riguardo allo stato dell'arte, possiamo dividere gli approcci in due macro-categorie:

• Approcci basati sulla simulazione, in cui la predizione vera e propria è preceduta da una fase di simulazione che prevede l'esecuzione (parziale) dell'applicazione in esame, o di sue congurazioni.

A tal proposito, in [14], partendo dall'idea che molti codici paralleli sono iterativi, presenta un API che permette la predizione delle performance basandosi sull'osservazione di esecuzioni parziali. Con esecuzioni brevi che impiegano al più l'1% del tempo di esecuzione totale, viene ottenuta un'accuratezza del 97%.

In [16], si utilizza un approccio basato sulla simulazione per predire il consumo di energia di applicazioni basate su MPI [19]: utilizzando e ca- librando tre modelli per rappresentare tempi di comunicazione, tempi di computazione ed energia consumata, viene dimostrato che la predizione del consumo energetico è molto vicina a quello eettivo. I modelli svilup- pati vengono poi integrati nel toolkit di simulazione SimGrid [17]. • Approcci puramente predittivi, in cui le che riguardano i programmi

e le loro caratteristiche vengono utilizzate per costruire un modello pre- dittivo, che sia in grado di stimare le performance di un programma "sco- nosciuto" senza il bisogno di eseguirlo. In [12] viene proposto un metodo basato sulla regressione lineare per determinare tempo di completamento ed energia consumata di un'applicazione (response), dato il numero di core e la loro frequenza (predictors). In particolare, viene usata l'interpolazione partendo da valori ottenuti con delle osservazioni su poche congurazioni, per costruire un modello analitico che permette di predire le performances sulle congurazioni non viste, con un'accuratezza del 96%.

Un primo esempio di approccio che fa uso di apprendimento automatico (Random Forest Modeling) è mostrato in [18], con l'obiettivo di stimare il consumo energetico di applicazioni OpenMP durante la compilazione. L'approccio è stato testato usando applicazioni OpenMP come NAS, mol- tiplicazione di matrici e computazioni basate sul pattern stencil, variando la dimensione del problema. L'approccio proposto stima l'energia consu- mata da diverse varianti della stessa applicazione con un valore del coef- ciente di determinazione R2pari a 0.998, con le variazioni di energia nel

dataset comprese tra 0.024 e 150.23 Joules.

Inne, in [15] viene proposto un approccio simile a quello di questa tesi, che fa uso di reti neurali non ricorrenti per creare un modello predittivo per il tempo di completamento di una specica applicazione (SMG2000), ottenendo un errore intorno al 5%.

Documenti correlati