Στην εργασία αυτή παρουσιάζουμε τον DRASync, έναν δεσμευτή μνήμης βασισμένο σε περιοχές, ο οποίος υλοποιεί ένα "αφηρημένο", ενοποιημένο συστήμα διευθύνσεων για MPI προγράμματα τα οποία κάνουν εκτενή χρήση δομών δεδομένων με πολλούς δείκτες, όπως π.χ. γράφοι ή δέντρα. Ο δεσμευτής, αυτός, αποσβένει την επικοινωνία μεταξύ των κόμβων επιτρέποντας μια αποδοτική, παράλληλη δέσμευση μνήμης στον καθολικό χώρο διευθύνσεων. Ταυτόχρονα, αξιοποιεί τα οφέλη που προσφέρουν οι δεσμευτές που βασίζονται σε περιοχές, όπως τη μαζική απελευθέρωση μνήμης και την καλή τοπικότητα, ακόμα και σε δομές δεδομένων με πολλούς δείκτες. Επιπλέον, υλοποιούμε μια σημασιολογία ιδιοκτησίας των περιοχών από τους κόμβους του συστήματος, παρόμοια με reader-writer locks. Ο τρόπος αυτός δημιουργεί ένα διαισθητικό εργαλείο συγχονισμού υψηλού επιπέδου στα MPI προγράμματα, χωρίς όμως να θυσιάζεται η απόδοση της διανομής μηνυμάτων. Αξιολογούμε τον DRASync με δύο εφαρμογές και συγκρίνουμε τα αποτελέσματα με έναν κατανεμημένο δεσμευτή μνήμης τελευταίας τεχνολογίας. Βλεπουμε ότι ο DRASync είναι εξίσου αποτελεσματικός, ενω παράλληλα προσφέρει ένα υψηλού επιπέδου abstraction στους προγραμματιστές.
(EL)
This thesis presents DRASync, a region-based allocator that implements a
global address space abstraction for MPI programs with pointer-based data structures.
The allocator amortizes communication among nodes to allow efficient parallel
allocation in a global address space and takes advantage of other region-based
allocation benefits, such as bulk deallocation and good locality even in pointerbased
data structures. Moreover, we implement ownership semantics of regions by
nodes akin to reader-writer locks, which makes for a high-level, intuitive synchronization
tool in MPI programs, without sacrificing message-passing performance.
We evaluate our allocator on two application-like benchmarks and compare the
results against a state-of-the-art distributed allocator. We find it is as efficient,
while offering a higher level abstraction to programmers.
(EN)