With the introduction of multicore CPUs, systems began to exploit the parallelism to achieve never seen before performance and concurrency. Moreover, the miniaturization of increasingly powerful and less energy systems led to the proliferation of embedded devices in many contexts. New computing paradigms began exploring the possibility of exploiting idle resources of mobile devices and smart objects connected through a network, by offloading to them parts of a complex computation. This approach introduced new challenges in terms of resource management of heterogeneous systems, and the need of a common programming model suitable for distributed computing. This thesis presents a framework for distributed computation on embedded systems called BeeR, which integrates into the MANGO project providing a framework for High Performance Computing applications. By leveraging the MANGO programming model, BeeR allows a client application running on a General Purpose CPU-based node to offload part of its tasks and data buffers to a remote device, where an instance of the daemon is running, perform operation like reading and writing buffers, waiting for specific events and running the computation. Moreover, experimental evaluation was carried out by implementing a test application from a suite of parallel benchmarks, and running it considering different configurations of devices and levels of parallelism.

Con l'introduzione di processori multicore, i sistemi hanno cominciato a sfruttare questo parallelismo per raggiungere livelli di prestazione sempre più elevati. Inoltre la creazione di dispositivi sempre più potenti ma allo stesso tempo più piccoli ha portato alla proliferazione di dispositivi embedded in molti contesti. Nuovi paradigmi di computazione hanno permesso di sfruttare le risorse inutilizzate di questi dispositivi interconnessi in una rete per poter eseguire piccole parti di computazioni lunghe e complesse, in modo da dividere il carico di lavoro su più dispositivi invece che una singola macchina. Questo approccio ha portato con se nuove sfide nel campo della gestione delle risorse e soprattutto il bisogno di un modello di programmazione adatto per il calcolo distribuito. Questa tesi propone un framework per la computazione distribuita su sistemi embedded chiamato BeeR, che va ad integrarsi con il progetto MANGO, il quale fornisce un framework per applicazioni in ambito High Performance Computing. Sfruttando il modello di programmazione di MANGO, BeeR permette ad una applicazione client in esecuzione su un nodo General Purpose di un sistema basato su microprocessore di affidare parte dei task che compongono un applicazione e dei buffer di dati a dispositivi remoti, ed effettuare operazioni quali leggere e scrivere buffer, rimanere in ascolto di particolari eventi e di avviare la computazione. Inoltre, è stato possibile valutare sperimentalmente il progetto implementando un test da una suite di benchmark paralleli, e facendo prove sperimentali con differenti configurazioni di dispositivi e livelli di parallelismo.

BeeR : an unified programming approach for distributed embedded platform

IEZZI, DOMENICO
2017/2018

Abstract

With the introduction of multicore CPUs, systems began to exploit the parallelism to achieve never seen before performance and concurrency. Moreover, the miniaturization of increasingly powerful and less energy systems led to the proliferation of embedded devices in many contexts. New computing paradigms began exploring the possibility of exploiting idle resources of mobile devices and smart objects connected through a network, by offloading to them parts of a complex computation. This approach introduced new challenges in terms of resource management of heterogeneous systems, and the need of a common programming model suitable for distributed computing. This thesis presents a framework for distributed computation on embedded systems called BeeR, which integrates into the MANGO project providing a framework for High Performance Computing applications. By leveraging the MANGO programming model, BeeR allows a client application running on a General Purpose CPU-based node to offload part of its tasks and data buffers to a remote device, where an instance of the daemon is running, perform operation like reading and writing buffers, waiting for specific events and running the computation. Moreover, experimental evaluation was carried out by implementing a test application from a suite of parallel benchmarks, and running it considering different configurations of devices and levels of parallelism.
MASSARI, GIUSEPPE
ING - Scuola di Ingegneria Industriale e dell'Informazione
3-ott-2018
2017/2018
Con l'introduzione di processori multicore, i sistemi hanno cominciato a sfruttare questo parallelismo per raggiungere livelli di prestazione sempre più elevati. Inoltre la creazione di dispositivi sempre più potenti ma allo stesso tempo più piccoli ha portato alla proliferazione di dispositivi embedded in molti contesti. Nuovi paradigmi di computazione hanno permesso di sfruttare le risorse inutilizzate di questi dispositivi interconnessi in una rete per poter eseguire piccole parti di computazioni lunghe e complesse, in modo da dividere il carico di lavoro su più dispositivi invece che una singola macchina. Questo approccio ha portato con se nuove sfide nel campo della gestione delle risorse e soprattutto il bisogno di un modello di programmazione adatto per il calcolo distribuito. Questa tesi propone un framework per la computazione distribuita su sistemi embedded chiamato BeeR, che va ad integrarsi con il progetto MANGO, il quale fornisce un framework per applicazioni in ambito High Performance Computing. Sfruttando il modello di programmazione di MANGO, BeeR permette ad una applicazione client in esecuzione su un nodo General Purpose di un sistema basato su microprocessore di affidare parte dei task che compongono un applicazione e dei buffer di dati a dispositivi remoti, ed effettuare operazioni quali leggere e scrivere buffer, rimanere in ascolto di particolari eventi e di avviare la computazione. Inoltre, è stato possibile valutare sperimentalmente il progetto implementando un test da una suite di benchmark paralleli, e facendo prove sperimentali con differenti configurazioni di dispositivi e livelli di parallelismo.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
thesis.pdf

accessibile in internet per tutti

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