With the diffusion and evolution of information technologies, a huge amount of data generated needs to be stored and processed to extract business intelligence. However, storage, access and processing are still quite challenging. In particular, the so-called “big data” requires enormous computing power to be processed. Hardware accelerators, like, Field Programmable Gate Array (FPGA) can help in improving the performance. The applications developed on FPGA are usually written in Hardware Description Language (HDL). There are tools used to convert Java code in HDL. However, the efficiency of the HDL code is not as good as the efficiency of the native code. This thesis work deals with the design and development of a platform that enables Java application development on FPGAs. The tool developed allows a Java programmer to move the computationally intensive component of an application to the FPGA. The tool enables a direct interfacing of the FPGA device from the Java application in order to exchange data between the Java virtual machine and the FPGA device as well as to start the processing. Any Java program can exchange data with programs written in HDL and perform data analysis efficiently on FPGA by maximizing at the same time the code reuse. The platform developed in this thesis work provides real-time access to stored data through PCI Express and data processing on FPGA to ensure high performance. The performance of the platform has been evaluated on big data applications dealing with sorting and filtering of large amount of data. The performance results have shown that the implementation outperforms the pure Java implementation already for data volumes of the order of 10 MB.

SVILUPPO DI UNA PIATTAFORMA JAVA PER APPLICAZIONI BIG DATA CON ARCHITETTURA HARDWARE IN REAL-TIME. Con la diffusione e l'evoluzione delle tecnologie dell'informazione, vengono generati e memorizzati grandi quantità di dati da cui si possono ottenere informazioni estremamente utili. Tuttavia, i processi di estrazione, trasformazione e caricamento dei dati sono ancora molto complessi. In particolare, il trattamento dei cosiddetti “big data” richiede una grande potenza di calcolo. Gli acceleratori hardware come Field Programmable Gate Array (FPGA) possono essere utilizzati per migliorare le prestazioni. Le applicazioni sviluppate su FPGA sono solitamente scritte in Hardware Description Language (HDL). Esistono strumenti per convertire il codice Java in HDL. Tuttavia, utilizzando questi strumenti, il codice HDL generato potrebbe non essere sufficientemente efficiente come il codice nativo, causando quindi prestazioni inadeguate. In questo lavoro di tesi è stata progettata e sviluppata una piattaforma che consente lo sviluppo di applicazioni Java su FPGA. Si è sviluppato uno strumento che consente ad un programmatore Java di spostare su FPGA la componente computazionale dell'applicazione. La piattaforma fornisce un interfacciamento diretto del dispositivo FPGA dall'applicazione Java, consente di scambiare i dati tra la macchina virtuale Java e il dispositivo FPGA e di avviare il calcolo. In questo modo, un qualsiasi programma Java può facilmente scambiare dati con programmi scritti in HDL ed eseguire l'analisi dei dati in modo efficiente su FPGA massimizzando anche il riutilizzo del codice. La piattaforma sviluppata consente di accedere in tempo reale ai dati memorizzati tramite PCI Express e di elaborarli su FPGA con elevate prestazioni. Le prestazioni della piattaforma sono state misurate su applicazioni di tipo “big data” che effettuano ordinamenti e filtraggi di grosse moli di dati. La piattaforma consente di migliorare notevolmente le prestazioni dell'implementazione Java pura già a partire da volumi di dati dell’ordine di 10 MB.

DEVELOPMENT OF THE JAVA PLATFORM FOR BIG DATA APPLICATIONS FOR REAL-TIME AWARE HARDWARE ARCHITECTURE.

ROSSO, PAOLO
2014/2015

Abstract

With the diffusion and evolution of information technologies, a huge amount of data generated needs to be stored and processed to extract business intelligence. However, storage, access and processing are still quite challenging. In particular, the so-called “big data” requires enormous computing power to be processed. Hardware accelerators, like, Field Programmable Gate Array (FPGA) can help in improving the performance. The applications developed on FPGA are usually written in Hardware Description Language (HDL). There are tools used to convert Java code in HDL. However, the efficiency of the HDL code is not as good as the efficiency of the native code. This thesis work deals with the design and development of a platform that enables Java application development on FPGAs. The tool developed allows a Java programmer to move the computationally intensive component of an application to the FPGA. The tool enables a direct interfacing of the FPGA device from the Java application in order to exchange data between the Java virtual machine and the FPGA device as well as to start the processing. Any Java program can exchange data with programs written in HDL and perform data analysis efficiently on FPGA by maximizing at the same time the code reuse. The platform developed in this thesis work provides real-time access to stored data through PCI Express and data processing on FPGA to ensure high performance. The performance of the platform has been evaluated on big data applications dealing with sorting and filtering of large amount of data. The performance results have shown that the implementation outperforms the pure Java implementation already for data volumes of the order of 10 MB.
2014
DEVELOPMENT OF THE JAVA PLATFORM FOR BIG DATA APPLICATIONS FOR REAL-TIME AWARE HARDWARE ARCHITECTURE.
SVILUPPO DI UNA PIATTAFORMA JAVA PER APPLICAZIONI BIG DATA CON ARCHITETTURA HARDWARE IN REAL-TIME. Con la diffusione e l'evoluzione delle tecnologie dell'informazione, vengono generati e memorizzati grandi quantità di dati da cui si possono ottenere informazioni estremamente utili. Tuttavia, i processi di estrazione, trasformazione e caricamento dei dati sono ancora molto complessi. In particolare, il trattamento dei cosiddetti “big data” richiede una grande potenza di calcolo. Gli acceleratori hardware come Field Programmable Gate Array (FPGA) possono essere utilizzati per migliorare le prestazioni. Le applicazioni sviluppate su FPGA sono solitamente scritte in Hardware Description Language (HDL). Esistono strumenti per convertire il codice Java in HDL. Tuttavia, utilizzando questi strumenti, il codice HDL generato potrebbe non essere sufficientemente efficiente come il codice nativo, causando quindi prestazioni inadeguate. In questo lavoro di tesi è stata progettata e sviluppata una piattaforma che consente lo sviluppo di applicazioni Java su FPGA. Si è sviluppato uno strumento che consente ad un programmatore Java di spostare su FPGA la componente computazionale dell'applicazione. La piattaforma fornisce un interfacciamento diretto del dispositivo FPGA dall'applicazione Java, consente di scambiare i dati tra la macchina virtuale Java e il dispositivo FPGA e di avviare il calcolo. In questo modo, un qualsiasi programma Java può facilmente scambiare dati con programmi scritti in HDL ed eseguire l'analisi dei dati in modo efficiente su FPGA massimizzando anche il riutilizzo del codice. La piattaforma sviluppata consente di accedere in tempo reale ai dati memorizzati tramite PCI Express e di elaborarli su FPGA con elevate prestazioni. Le prestazioni della piattaforma sono state misurate su applicazioni di tipo “big data” che effettuano ordinamenti e filtraggi di grosse moli di dati. La piattaforma consente di migliorare notevolmente le prestazioni dell'implementazione Java pura già a partire da volumi di dati dell’ordine di 10 MB.
File in questo prodotto:
Non ci sono file associati a questo prodotto.

È consentito all'utente scaricare e condividere i documenti disponibili a testo pieno in UNITESI UNIPV nel rispetto della licenza Creative Commons del tipo CC BY NC ND.
Per maggiori informazioni e per verifiche sull'eventuale disponibilità del file scrivere a: unitesi@unipv.it.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14239/20418