Συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (Java, C++, Python) κάνοντας χρήση της εικονικής μηχανής GraalVM

Ο όγκος των δεδομένων αυξάνεται ραγδαία τα τελευταία χρόνια μιας και οι πηγές που τα παράγουν πολλαπλασιάζονται καθημερινά. Αυτές οι πηγές μπορεί να είναι ροές δεδομένων από αισθητήρες, δεδομένα παγκόσμιου ιστού, βιολογικά δεδομένα και άλλα. Στην τελευταία κατηγορία δεδομένων έχουμε μια ταχεία και α...

Πλήρης περιγραφή

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριος συγγραφέας: Κουτρόπουλος, Παναγιώτης
Άλλοι συγγραφείς: Koutropoulo,s Panagiotis
Γλώσσα:Greek
Έκδοση: 2022
Θέματα:
Διαθέσιμο Online:https://hdl.handle.net/10889/23573
id nemertes-10889-23573
record_format dspace
institution UPatras
collection Nemertes
language Greek
topic Αλγόριθμοι n-gram retrieval
Δομές δεδομένων
Ανεστραμμένα ευρετήρια
N-gram retrieval algorithms
GraalVM
Data structures
Inverted indexes
Java C++ Python
spellingShingle Αλγόριθμοι n-gram retrieval
Δομές δεδομένων
Ανεστραμμένα ευρετήρια
N-gram retrieval algorithms
GraalVM
Data structures
Inverted indexes
Java C++ Python
Κουτρόπουλος, Παναγιώτης
Συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (Java, C++, Python) κάνοντας χρήση της εικονικής μηχανής GraalVM
description Ο όγκος των δεδομένων αυξάνεται ραγδαία τα τελευταία χρόνια μιας και οι πηγές που τα παράγουν πολλαπλασιάζονται καθημερινά. Αυτές οι πηγές μπορεί να είναι ροές δεδομένων από αισθητήρες, δεδομένα παγκόσμιου ιστού, βιολογικά δεδομένα και άλλα. Στην τελευταία κατηγορία δεδομένων έχουμε μια ταχεία και απότομη αύξηση δεδομένων λόγω του μείζονος ενδιαφέροντος όσον αφορά την κατανόηση του ανθρώπινου γονιδιώματος αλλά και την παραγωγή φαρμακευτικών προϊόντων έπειτα και από τα τελευταία ιατροφαρμακευτικά δεδομένα. Η αποδοτική αποθήκευση βιολογικών δεδομένων είναι κάτι που συνεχώς ερευνάται και παίζει σημαντικό ρόλο βρίσκοντας ολοένα και πιο δραστικούς τρόπους για την αποθήκευση αυτών [1-2]. Η ανάλυση όμως και ο χρόνος εκτέλεσης της αποθήκευσης αυτών των δεδομένων, στην εποχή της ταχείας αναπαράστασης της πληροφορίας, είναι εξίσου σημαντική. Ο χρόνος εκτέλεσης των πειραμάτων είναι κάτι που δεν είχε μελετηθεί στη συγκεκριμένη έρευνα [1-2] και σκοπεύουμε να δώσουμε ένα ευρύ φάσμα προκειμένου να γίνει κατανοητό ποιος είναι ο βέλτιστος τρόπος τόσο να τρέξουν όσο και να μεταγλωττιστούν τα προγράμματα αποθήκευσης αυτών των δεδομένων. Οι μεταγλωττιστές από την άλλη μεριά έχουν αναπτυχθεί τα τελευταία χρόνια προσπαθώντας να προσθέσουν ακόμα περισσότερες βελτιστοποιήσεις προκειμένου να επιταχύνουν την εκτέλεση προγραμμάτων αλλά και συστημάτων. Ένα από αυτά τα συστήματα είναι και το GraalVM [3], μια εικονική μηχανή γραμμένη σε Java η οποία μπορεί να μεταγλωττίσει πολλαπλές γλώσσες είτε είναι βασισμένες στο JVM μοντέλο είτε όχι. Ανάμεσα στις γλώσσες που μπορεί να μεταγλωττίσει η συγκεκριμένη μηχανή είναι όλες όσες είναι βασισμένες στο JVM (Java, Scala κλπ), Javascript, Python, C++ και άλλες. Στην παρούσα μεταπτυχιακή διπλωματική εργασία αναλύεται ο χρόνος εκτέλεσης των πειραμάτων του [1] με σκοπό να παρουσιαστεί μια συγκριτική μελέτη μεταξύ εφαρμογών σε διαφορετικές γλώσσες αλλά και σε διαφορετικά συστήματα μεταγλώττισης. Πιο συγκεκριμένα επιχειρούμε να αναπαράγουμε το σύστημα ισάξια σε τρεις διαφορετικές γλώσσες (Java, C++, Python) και στη συνέχεια να τρέξουμε την κάθε εφαρμογή στον τρέχον state-of-the-art μεταγλωττιστή της αλλά και στην εικονική μηχανή GraalVM [3]. Αυτό θα μας δώσει μια σφαιρική εικόνα όχι μόνο για τη γλώσσα με το καλύτερο χρόνο εκτέλεσης, κάτι που περιμένουμε να επιβεβαιωθεί και για το συγκεκριμένο σύστημα, αλλά και πως η εικονική μηχανή GraalVM μπορεί να ανταγωνιστεί ή να ξεπεράσει άλλους μεταγλωττιστές.
author2 Koutropoulo,s Panagiotis
author_facet Koutropoulo,s Panagiotis
Κουτρόπουλος, Παναγιώτης
author Κουτρόπουλος, Παναγιώτης
author_sort Κουτρόπουλος, Παναγιώτης
title Συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (Java, C++, Python) κάνοντας χρήση της εικονικής μηχανής GraalVM
title_short Συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (Java, C++, Python) κάνοντας χρήση της εικονικής μηχανής GraalVM
title_full Συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (Java, C++, Python) κάνοντας χρήση της εικονικής μηχανής GraalVM
title_fullStr Συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (Java, C++, Python) κάνοντας χρήση της εικονικής μηχανής GraalVM
title_full_unstemmed Συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (Java, C++, Python) κάνοντας χρήση της εικονικής μηχανής GraalVM
title_sort συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (java, c++, python) κάνοντας χρήση της εικονικής μηχανής graalvm
publishDate 2022
url https://hdl.handle.net/10889/23573
work_keys_str_mv AT koutropoulospanagiōtēs synkritikēaxiologēsēapodosēsylopoiēsēsngramretrievalalgorithmoumechrēsēapodotikōndomōndedomenōnkaianestrammenōneuretēriōnsetreisdiaphoretikesglōssesjavacpythonkanontaschrēsētēseikonikēsmēchanēsgraalvm
AT koutropoulospanagiōtēs comparativeevaluationfortheefficiencyofngramretrievalalgorithmusingefficientdatastructuresandinvertedindexesinthreedifferentprogramminglanguagesjavacpythonunderthevirtualmachinegraalvm
_version_ 1771297125986992128
spelling nemertes-10889-235732022-11-02T04:34:20Z Συγκριτική αξιολόγηση απόδοσης υλοποίησης n-gram retrieval αλγορίθμου με χρήση αποδοτικών δομών δεδομένων και ανεστραμμένων ευρετηρίων σε τρεις διαφορετικές γλώσσες (Java, C++, Python) κάνοντας χρήση της εικονικής μηχανής GraalVM Comparative evaluation for the efficiency of n-gram retrieval algorithm using efficient data structures and inverted indexes in three different programming languages (Java, C++, Python) under the virtual machine GraalVM Κουτρόπουλος, Παναγιώτης Koutropoulo,s Panagiotis Αλγόριθμοι n-gram retrieval Δομές δεδομένων Ανεστραμμένα ευρετήρια N-gram retrieval algorithms GraalVM Data structures Inverted indexes Java C++ Python Ο όγκος των δεδομένων αυξάνεται ραγδαία τα τελευταία χρόνια μιας και οι πηγές που τα παράγουν πολλαπλασιάζονται καθημερινά. Αυτές οι πηγές μπορεί να είναι ροές δεδομένων από αισθητήρες, δεδομένα παγκόσμιου ιστού, βιολογικά δεδομένα και άλλα. Στην τελευταία κατηγορία δεδομένων έχουμε μια ταχεία και απότομη αύξηση δεδομένων λόγω του μείζονος ενδιαφέροντος όσον αφορά την κατανόηση του ανθρώπινου γονιδιώματος αλλά και την παραγωγή φαρμακευτικών προϊόντων έπειτα και από τα τελευταία ιατροφαρμακευτικά δεδομένα. Η αποδοτική αποθήκευση βιολογικών δεδομένων είναι κάτι που συνεχώς ερευνάται και παίζει σημαντικό ρόλο βρίσκοντας ολοένα και πιο δραστικούς τρόπους για την αποθήκευση αυτών [1-2]. Η ανάλυση όμως και ο χρόνος εκτέλεσης της αποθήκευσης αυτών των δεδομένων, στην εποχή της ταχείας αναπαράστασης της πληροφορίας, είναι εξίσου σημαντική. Ο χρόνος εκτέλεσης των πειραμάτων είναι κάτι που δεν είχε μελετηθεί στη συγκεκριμένη έρευνα [1-2] και σκοπεύουμε να δώσουμε ένα ευρύ φάσμα προκειμένου να γίνει κατανοητό ποιος είναι ο βέλτιστος τρόπος τόσο να τρέξουν όσο και να μεταγλωττιστούν τα προγράμματα αποθήκευσης αυτών των δεδομένων. Οι μεταγλωττιστές από την άλλη μεριά έχουν αναπτυχθεί τα τελευταία χρόνια προσπαθώντας να προσθέσουν ακόμα περισσότερες βελτιστοποιήσεις προκειμένου να επιταχύνουν την εκτέλεση προγραμμάτων αλλά και συστημάτων. Ένα από αυτά τα συστήματα είναι και το GraalVM [3], μια εικονική μηχανή γραμμένη σε Java η οποία μπορεί να μεταγλωττίσει πολλαπλές γλώσσες είτε είναι βασισμένες στο JVM μοντέλο είτε όχι. Ανάμεσα στις γλώσσες που μπορεί να μεταγλωττίσει η συγκεκριμένη μηχανή είναι όλες όσες είναι βασισμένες στο JVM (Java, Scala κλπ), Javascript, Python, C++ και άλλες. Στην παρούσα μεταπτυχιακή διπλωματική εργασία αναλύεται ο χρόνος εκτέλεσης των πειραμάτων του [1] με σκοπό να παρουσιαστεί μια συγκριτική μελέτη μεταξύ εφαρμογών σε διαφορετικές γλώσσες αλλά και σε διαφορετικά συστήματα μεταγλώττισης. Πιο συγκεκριμένα επιχειρούμε να αναπαράγουμε το σύστημα ισάξια σε τρεις διαφορετικές γλώσσες (Java, C++, Python) και στη συνέχεια να τρέξουμε την κάθε εφαρμογή στον τρέχον state-of-the-art μεταγλωττιστή της αλλά και στην εικονική μηχανή GraalVM [3]. Αυτό θα μας δώσει μια σφαιρική εικόνα όχι μόνο για τη γλώσσα με το καλύτερο χρόνο εκτέλεσης, κάτι που περιμένουμε να επιβεβαιωθεί και για το συγκεκριμένο σύστημα, αλλά και πως η εικονική μηχανή GraalVM μπορεί να ανταγωνιστεί ή να ξεπεράσει άλλους μεταγλωττιστές. The volume of the data has been rapidly increasing in the last few years, due to the advanced number of data sources. These sources could be data streaming engines, the world wide web, biological data etc. In the last category of data, we have a steep increase due to the high interest in the understanding of the human genome, as well as the production of pharmaceutical products after COVID-19. Efficient storage of biological data is a great research area and is significant, finding advantageous ways to store them [1-2]. Data analysis and the runtime performance for storing such data, in the era of fast data retrieval, is also important. The runtime performance of the experiments has not yet been analyzed in the following research [1-2] and we aim on presenting a wide variety due to the understanding which is the most efficient way to run and compile the storage of these data. The compilers have been highly developed in recent years, aiming to add more enhancements in order to accelerate the runtime performance of programs and systems. One of these compilers is the GraalVM [3], a Java-written virtual machine that can compile multiple programming languages which may be based on the JVM model but not necessarily. In this thesis, we present the runtime performance of the experiments in [1], aiming on producing a comparative study between applications in different programming languages but in different compilers and interpreters, on top of that. More specifically, we evenly produce the same program in three different languages (Java, C++, Python) and following, we run each application in the current state-of-the-art compiler or interpreter and on GraalVM [3]. This will produce a general idea not only for the best programming language for our purposes but also for the comparison of GraalVM with other compilers and interpreters. 2022-11-01T07:32:31Z 2022-11-01T07:32:31Z 2022-07-25 https://hdl.handle.net/10889/23573 el Attribution-NonCommercial-NoDerivs 3.0 United States http://creativecommons.org/licenses/by-nc-nd/3.0/us/ application/pdf