Panagiotis Katsoudas, "Extending the Spark Framework with FPGA Execution Support", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2020
https://doi.org/10.26233/heallink.tuc.84581
Στην σημερινή εποχή το περιβάλλον του Apache Spark έχει εξελιχθεί σε ένα από τα πιο βασικά cluster computing framework στον κόσμο και οι FPGAs έχουν ενσωματωθεί στα κέντρα δεδομένων. Έτσι θέσαμε ως σκοπό της παρούσας διπλωματικής εργασίας την εκτέλεση εργασιών μέσω του περιβάλλοντος Apache Spark σε FPGA.Ως εργαλείο για τον προγραμματισμό της FPGA, επιλέξαμε το περιβάλλον σύνθεσης υψηλού επιπέδου SDSoC. Δημιουργήσαμε μια καινούρια ειδική πλατφόρμα “zed” μέσα στο περιβάλλον του SDSoC.Βασισμένοι σε αυτήν την πλατφόρμα δημιουργήσαμε την εφαρμογή του πολλαπλασιασμού πινάκων και την εφαρμογή μετατροπής πίνακα με δεδομένα RGB σε πίνακα με δεδομένα HSV, με σκοπό την ταχύτερη εκτέλεσή τους. Και οι δυο εφαρμογές είναι γραμμένες σε γλώσσα υψηλού επιπέδου C++.Για να δημιουργήσουμε το λειτουργικό σύστημα της FPGA χρησιμοποιήσαμε το περιβάλλον PetaLinux 2017.4.Το λειτουργικό σύστημα είναι ειδικά σχεδιασμένο για επεξεργαστή ARM Cortex™-A9.Επιπλέον εγκαταστήσαμε το περιβάλλον του Apache Spark στα ZedBoard. Έτσι κατασκευάσαμε ένα cluster το οποίο αποτελείται από δύο ZedBoard και έναν H/Y γενικής χρήσης, για την εκτέλεση των πειραμάτων. Τέλος, επιβεβαιώσαμε την σωστή λειτουργία και αξιολογήσαμε την συγκεκριμένη αρχιτεκτονική μέσα από διάφορα πειράματα βασισμένα στις δυο εφαρμογές. Πιο συγκεκριμένα για την πρώτη εφαρμογή πετύχαμε έως περίπου 6,5 φορές χαμηλότερη κατανάλωση ενέργειας και έως 11 φορές ταχύτερη εκτέλεση από έναν Η/Υ. Αντίστοιχα για την δεύτερη εφαρμογή είχαμε έως 6,1 φορές χαμηλότερη κατανάλωση ενέργειας από έναν Η/Υ και αυξάνοντας σε δύο τα ZedBoard πετύχαμε έως περίπου 1,2 φορές ταχύτερη εκτέλεση σε σχέση με το ένα ZedBoard.Έτσι μέσα από τα πειράματα διαπιστώσαμε την ορθή λειτουργία του Apache Spark μέσω των FPGA και την πολύ καλή απόδοση ανά watt των FPGA.