Περίληψη
Η διαχείριση μνήμης σε σύγχρονα υπολογιστικά συστήματα αναφέρεται στη διαδικασία ελέγχου, συντονισμού και οργάνωσης των κυρίων πόρων μνήμης υπολογιστικών πλατφορμών. Ο βασικός και κύριος στόχος της διαχείρισης μνήμης είναι η αποδοτική και αποτελεσματική χρήση της μνήμης των υπολογιστικών πλατφορμών, επιτρέποντας σε προγράμματα και δεδομένα να αποθηκεύονται, να έχουν πρόσβαση και να υποβάλλονται σε επεξεργασία μέσω ενός συστηματικού επεξεργαστικού. Ωστόσο, οι προόδοι στις τεχνολογίες επεξεργασίας, μνήμης και διασύνδεσης της τελευταίας δεκαετίας συνεχίζουν να αυξάνουν τη διαφορά στην απόδοση μεταξύ των διαφορετικών πυρήνων επεξεργασίας, όπως οι μονάδες επεξεργασίας υπολογισμού (CPUs), μονάδες επεξεργασίας γραφικών (GPUs), πυρήνες RISC-V και ARM και μονάδες επεξεργασίας τανυστικών μονάδων (TPUs) και οι τεχνολογίες μνήμης και πρωτόκολλα διασύνδεσης, γνωστά ως "Memory Wall" και "Interconnection Wall". Επιπλέον, η αυξανόμενη ποσότητα και δυναμικότητα των παραγόμενων δεδομένων, σε συνδυασμό μ ...
Η διαχείριση μνήμης σε σύγχρονα υπολογιστικά συστήματα αναφέρεται στη διαδικασία ελέγχου, συντονισμού και οργάνωσης των κυρίων πόρων μνήμης υπολογιστικών πλατφορμών. Ο βασικός και κύριος στόχος της διαχείρισης μνήμης είναι η αποδοτική και αποτελεσματική χρήση της μνήμης των υπολογιστικών πλατφορμών, επιτρέποντας σε προγράμματα και δεδομένα να αποθηκεύονται, να έχουν πρόσβαση και να υποβάλλονται σε επεξεργασία μέσω ενός συστηματικού επεξεργαστικού. Ωστόσο, οι προόδοι στις τεχνολογίες επεξεργασίας, μνήμης και διασύνδεσης της τελευταίας δεκαετίας συνεχίζουν να αυξάνουν τη διαφορά στην απόδοση μεταξύ των διαφορετικών πυρήνων επεξεργασίας, όπως οι μονάδες επεξεργασίας υπολογισμού (CPUs), μονάδες επεξεργασίας γραφικών (GPUs), πυρήνες RISC-V και ARM και μονάδες επεξεργασίας τανυστικών μονάδων (TPUs) και οι τεχνολογίες μνήμης και πρωτόκολλα διασύνδεσης, γνωστά ως "Memory Wall" και "Interconnection Wall". Επιπλέον, η αυξανόμενη ποσότητα και δυναμικότητα των παραγόμενων δεδομένων, σε συνδυασμό με την ολοκλήρωση νέων τεχνολογιών μνήμης, δημιουργούν ένα πολύπλοκο παράδειγμα παραλληλισμού. Σε αυτό το πλαίσιο, η δυναμική διαχείριση μνήμης διαδραματίζει σημαντικό ρόλο στα μοντέρνα υπολογιστικά συστήματα, επιτρέποντας την αποτελεσματική κατανομή και αποδέσμευση πόρων μνήμης κατά τη διάρκεια εκτέλεσης. Η δυναμική διαχείριση μνήμης περιλαμβάνει μια ποικιλία τεχνικών και αλγορίθμων που στοχεύουν στη βελτιστοποίηση της χρήσης της μνήμης και στη βελτίωση της συνολικής απόδοσης του συστήματος, της βιωσιμότητας και της φθοράς του υλικού. Με στόχο την ικανοποίηση των παραπάνω κριτηρίων, οι λύσεις δυναμικής διαχείρισης μνήμης απαιτούν αποτελεσματική συνδυαστική σχεδίαση πολλαπλών στοιχείων της ιεραρχίας του εύρους της υπολογιστικής συνέχειας, δηλαδή από το επίπεδο εφαρμογής έως τις λύσεις που βασίζονται στο υλικό. Σε αυτή τη διατριβή εξετάζουμε την εφαρμοσιμότητα τεχνικών δυναμικής διαχείρισης μνήμης σε διαφορετικά επίπεδα στο εύρος του υλικού-λογισμικού, με στόχο τη βελτιστοποίηση της απόδοσης, της ενέργειας και των πόρων μνήμης. Πιο συγκεκριμένα, οι νέες συνεισφορές αυτής της διατριβής επικεντρώνονται στα εξής επίπεδα βελτιστοποίησης: i) βελτιστοποιήσεις στο επίπεδο εφαρμογής, ii) υποστήριξη λειτουργικού συστήματος, βιβλιοθήκες και βελτιστοποιήσεις τοποθέτησης, και iii) βελτιστοποιήσεις στο επίπεδο σχεδιαστικών αποφάσεων του υλικού. Δεδομένης της αναπόσπαστης και ισχυρής σχέσης μεταξύ των υλικών και λογισμικών στοιχείων μνήμης, στοχεύουμε στη βελτίωση της συμβατότητας των διαφορετικών επιπέδων βελτιστοποίησης και στην παροχή μιας συνολικής διαδικασίας εργασίας και μεθοδολογίας. Συνοψίζοντας, οι κύριες συνεισφορές αυτής της διατριβής διατυπώνονται ως εξής: (i) παρουσιάζουμε μια εκτενή ανάλυση, ταξινόμηση και παρέχουμε οδηγίες για το σχεδιασμό τοποθέτησης δεδομένων για ετερογενή συστήματα μνήμης (ii) προτείνουμε μια νέα λύση για την εφαρμογή μετασχηματισμών κώδικα για εφαρμογές Python με στόχο την υποστήριξη βελτιστοποίησης της επίδοσης μνήμης, εκμεταλλευόμενη ένα σύνολο από βελτιστοποιήσεις στατικών και δυναμικών τεχνικών ανάλυσης, (iii) σχεδιάζουμε μια λύση διαμόρφωσης, εξερεύνησης και τοποθέτησης δυναμικών δομών δεδομένων σε ετερογενή συ- στήματα μνήμης DRAM/NVM με στόχο τη βελτιστοποίηση και την εύρεση ισορροπιών μεταξύ απόδοσης, κατανάλωσης ενέργειας και φθοράς υλικού και (iv) προτείνουμε λύσεις για τοποθέτηση σελιδών που βασίζεται σε LSTMs σε ετερογενή συστήματα, καθώς επίσης και για την ενίσχυση της δυναμικής διαχείρισης μνήμης μέσω αποτελεσματικής διαμόρφωσης cache.
περισσότερα
Περίληψη σε άλλη γλώσσα
Memory management in recent systems refers to the process of controlling, coordinating, and organizing computing platforms main memory resources. The primary and major goal of memory management is to provide efficient and effective utilization of the computing platforms memory, enabling programs and data to be stored, accessed, and manipulated through a systematic process. However, the advances in processing, memory and interconnection technologies over the last decade keep increasing the disparity of performance among the diverse processing cores, e.g. Compute Processing Units (CPUs), Graphics Processing Units (GPUs), RISC-V and ARM cores and Tensor Processing Units (TPUs) and the memory technologies and interconnection protocols, known as the "Memory Wall" and the "Interconnection Wall". Furthermore, in addition the ever-increasing amount and dynamicity of data produced, alongside with the integration of emerging memory technologies compose a complex heterogeneous paradigm. In this c ...
Memory management in recent systems refers to the process of controlling, coordinating, and organizing computing platforms main memory resources. The primary and major goal of memory management is to provide efficient and effective utilization of the computing platforms memory, enabling programs and data to be stored, accessed, and manipulated through a systematic process. However, the advances in processing, memory and interconnection technologies over the last decade keep increasing the disparity of performance among the diverse processing cores, e.g. Compute Processing Units (CPUs), Graphics Processing Units (GPUs), RISC-V and ARM cores and Tensor Processing Units (TPUs) and the memory technologies and interconnection protocols, known as the "Memory Wall" and the "Interconnection Wall". Furthermore, in addition the ever-increasing amount and dynamicity of data produced, alongside with the integration of emerging memory technologies compose a complex heterogeneous paradigm. In this context, dynamic memory management plays a significant role in modern computing systems, allowing efficient allocation and deallocation of memory resources at runtime. In the state-of-the-art, dynamic memory management encompasses a variety of techniques and algorithms aimed at optimizing memory usage and improving overall system performance, sustainability and hardware wear. Aiming to satisfy the aforementioned criteria, dynamic memory management solutions require an effective co-design of multiple components of the hierarchy of the computing continuum, i.e. varying from application level to hardware-based solutions. In this dissertation we examine the applicability of dynamic memory management techniques over distinct levels across the hardware-software continuum, aiming to provide performance, energy, and memory resources Pareto-tradeoff optimizations. More specifically, the novel contributions of this thesis focus on the following optimization levels: i) application-level optimizations, ii) OS support, libraries and placement optimizations, and iii) hardware-level mapping optimizations. Given the inseparable and strong relationship between hardware and software memory components, we aim to enhance the interoperability of different optimization layers and provide an end-to-end workflow and methodology. In summary, the major contributions of this PhD thesis are the following: (i) we present an extensive analysis, classification and we provide guidelines for data placement design for heterogeneous memory systems, (ii) we propose a novel solution for applying source-to-source transformations for Python applications aiming to support memory footprint optimization, leveraging a set of static (offline) and dynamic (online) analysis optimizations, (iii) we design a dynamic data structure refinement, exploration and placement solution over heterogeneous DRAM/NVM Memory systems aiming to optimize and derive trade-offs among performance, energy consumption, and hardware wear and (iv) we propose near-hardware page placement solution which relies on LSTMs and the boosting of dynamic memory management through effective cache configuration.
περισσότερα