20
Ιουλ

20/07/2026 12:00 - 13:00
Σύνδεσμος τηλεδιάσκεψης: https://tuc-gr.zoom.us/j/92145341424?pwd=O17AGpoaWIWnPnHSGiw6Hbog4HR8yj.1ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ
Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Πρόγραμμα Προπτυχιακών Σπουδών
ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ
Αρτεμίου Τριανταφύλλου
με θέμα
Μελέτη Αλγορίθμων GPU στο Σύστημα DuckDB στη Γλώσσα Futhark
Study of GPU Algorithms on DuckDB Using the Futhark Programming Language
Εξεταστική Επιτροπή
Αναπληρωτής Καθηγητής Βασίλειος Σαμολαδάς (επιβλέπων)
Επίκουρος Καθηγητής Νικόλαος Γιατράκος
Καθηγητής Σωτήριος Ιωαννίδης
Περίληψη
Η γλώσσα Futhark είναι μία συναρτησιακή γλώσσα προγραμματισμού πινάκων, σχεδιασμένη για παραλληλισμό GPU, και για την οποία διεξάγεται έρευνα ως προς την υλοποίηση μη-τετριμμένων αλγορίθμων. Αυτή η εργασία εξετάζει τη σχεδίαση και επίδοση αλγορίθμων επεξεργασίας δεδομένων, όπως της Σχεσιακής Συνένωσης (Relational Join) και του DBSCAN, προσαρμόζοντας έννοιες από παραδοσιακές υλοποιήσεις χρησιμοποιώντας τις βασικές ρουτίνες της Futhark. Επιπλέον, διερευνάει την ένωση Futhark-παραγόμενου κώδικα σε συνδυασμό με τη φόρτωση δεδομένων από μία αναλυτική βάση δεδομένων, συγκεκριμένα την DuckDB.
Τα αποτελέσματα δείχνουν ότι μπορούν να υλοποιηθούν μέσω της Futhark ευέλικτες θεμελιώδεις ρουτίνες, οι οποίες εκμεταλλεύονται τον παραλληλισμό GPU. Ακόμα, εντοπίζονται ορισμένοι περιορισμοί ως προς την επίδοση, κυρίως λόγω έλλειψης ελέγχου παραμέτρων στο επίπεδο υλικού.
Abstract
The Futhark Programming Language (Futhark) is a functional array-programming language designed for GPU-parallelism, with ongoing research with regards to the implementation of non-trivial algorithms. This thesis examines the design and performance of certain data-processing algorithms, namely relational Joins and DBSCAN, adapting concepts from traditional implementations using the primitives provided by Futhark. Furthermore, it investigates the integration of Futhark-generated code in conjunction with data loaded from an analytical database, namely DuckDB.
The results show that Futhark can be used to implement versatile primitive routines exploiting GPU parallelism. Also, certain limitations with regards to performance, caused mainly by a lack of leveraging hardware-level parameters, are identified.