Riassunto analitico
Il mondo odierno sta attraversando gli ultimi passaggi del processo di integrazione tecnologico informatica e, da quest'ultimo, ne esce profondamente mutata. Ogni giorno vengono inviati mezzo miliardo di tweets e quotidianamente più di un miliardo di utenti Facebook creano nuovi contenuti; inoltre è previsto che nel 2020 il traffico IP supererà lo Zettabyte (> 1000 Exabyte) ed il traffico mobile supererà quello da PC. In questo contesto dove l'umanità e le aziende producono enormi quantitativi di dati e si confrontano ogni giorno con quello definito oggi come IoE, si instaura il concetto delle decisioni data-driven; una ricerca Gartner ha dimostrato che il 75% delle aziende hanno investito nel 2015 nella ricerca sui big data e il 37% di queste prendono decisioni in conseguenza dei dati. Se fino a due anni fa la memorizzazione e la leggibilità delle informazioni richiedeva lo sforzo maggiore, oggi le parti interessate investono al fine di ricavare un ritorno economico maggiore dai dati, applicando le moderne strategie di analisi come gli approcci di Machine Learning. Da un punto di vista accademico, è stato necessario superare il paradigma MapReduce e le sue lacune al fine di creare una seconda generazione di sistemi in grado di rispondere alle nuove esigenze data-driven. Così nascono tecnologie che consentono computazioni intrinsicamente distribuite ed in memoria su larga scala, che supportano nativamente l'eterogeneità dei dati e idonee al calcolo iterativo, tipico degli algoritmi moderni. Queste nuove tecnologie al contempo sono difficili da utilizzare ed è complesso sfruttarne il pieno potenziale; inoltre tali sistemi sono numerosi ed è complesso identificare quali di questi rispondano al meglio a determinate applicazioni. Il lavoro qui presentato esamina esattamente questi problemi: l'obiettivo è stato fornire un benchmark rappresentativo di alcuni dei sistemi descritti, Apache Spark e Apache Flink, sottoposti ad applicazioni di Machine Learning distribuito, al contempo garantendo e dimostrando l'imparzialità e l'equità di confronto per ogni passo che questo progetto ha compiuto. Quattro applicazioni di Machine Learning sono state sviluppate, le quali ricadono in quattro differenti approcci della disciplina, precisamente machine learning supervisionato, non supervisionato, regressori e sistemi di raccomandazione. Sono state impiegate le migliori tecnologie di benchmark come il software Peel Framework ed in caso di necessità è stato progettato e sviluppato nuovo software che soddisfacesse al meglio le esigenze di progetto; è questo il caso di shee, un'applicazione per l'analisi e la visualizzazione dei dati sviluppata in Python, che ha integrato il software di benchmark riducendo di diversi fattori i tempi di analisi. Le applicazioni create sono stato eseguite su conglomerazioni di macchine fisiche ad alte prestazioni e i risultati di benchmarking sono stati analizzati e discussi secondo le moderne chiavi di valutazione. In conclusione, sono state rilevati i pregi ed i difetti di entrambi i sistemi e sono stati ipotizzati imparzialmente quelli più adatti a risolvere i casi visionati; a questo sono state tratte considerazioni su eventuali miglioramenti futuri per i sistemi stessi.
|
Abstract
Nowadays humanity walks through the final stages of the wide technology integration process in the human being; from that it is emerging deeply mutated: each day, half a Billion of tweets are sent, more than one Billion of users are active on Facebook; moreover in 2020 the IP traffic will push beyond the Zettabyte (>1000 Exabyte), and mobile traffic will exceed the PC traffic. In this light, where people and companies produce huge sized data flows and handle with a IoE 1 universe, the world get familiar with the data-driven concept: a Gartner survey in September 2015 showed more that 75% of companies are investing or planning to invest in big data in the next two years, and 37% of those projects are being driven from board level. If until two years ago the major effort was collecting the data and make that processable, nowadays these investments are focused to yield increasing ROI from big data analysis, applying modern mining strategies like Distributed Machine Learning applications. From a research-wide point of view, pushing beyond the MapReduce paradigm has been necessary in order to build modern systems capable to manage with data-driven challenges. Then, a second generation
systems have been developed providing in-memory large-scale parallel computation engines which are intrinsically distributed, natively supporting data heterogeneity and suitable to execute iterative logic. Side
effects of these new frameworks are that they require high programming skills and a deep knowledge of the several policies employed; furthermore they are numerous, hence, it’s hard to establish which is the best-fitting system for a custom distributed application. The work here presented is exactly based on these issues: the main goal was to benchmark representative large-scale processing engines, Apache Spark and Apache Flink, on distributed Machine Learning workloads; moreover, the entire project relies on the fairness constraint, i.e. the capability to prove the equity and neutrality for each pursued step. Four main topic-wide distributed machine learning applications were built aimed to cover a large broad of approaches, namely unsupervised and supervised learning, regression and recommendation systems. Alongside, the best distributed benchmarking technologies were employed as Peel Framework, and in some cases brand-new targeted software was realized; e.g. shee, a simple and fast data visualization application has been designed and developed in Python in order to integrate data analysis alongside the benchmark and to keep experiment analysis so far faster. The machine learning applications has been executed on high-performance clusters of physical machines and the benchmarking results have been analyzed and discussed with the most modern policies. Finally strengths and weakness of both systems has been identified and presented, aiming to fairly describe which are the fitting applications for these engines and which features are suitable for improvements.
|