Μια ενιαία διεπαφή του προγραμματιστικού μοντέλου των "futures" για κοινόχρηστη και κατανεμημένη μνήμη.
A unified futures interface for shared and distributed memory
Χασάπης, Δημήτριος Γ.
Μπίλας, Άγγελος
Falcou, Joel
Σε αυτή την εργασία παρουσιάζουμε την υλοποίηση μιας βιβλιοθήκης C++ του προγραμματιστικού μοντέλου των ϕυτυρες για Distributed Memory περιβάλλοντα. Η υλοποίησή μας χρησιμοποιεί ένα interface παρόμοιο με αυτό της C++ standard library. Ο χρήστης μπορεί να χρησιμοποιήσει το interface των futures για να εκφράσει παραλληλισμό και να συγχρονίσει την εφαρμογή του, ενώ το υποκείμενο σύστημα runtime μας είναι υπεύθυνο για τον καταμερισμό της εργασίας και συγχρονισμό των διαφορετικών διεργασιών. Το σύστημα μας βασίζεται στην one-sided communication βιβλιοθήκη του MPI, για την επίτευξη ασύγχρονης επικοινωνίας. Αξιολογώντας τις επιδόσεις του runtime μας, καταλήγουμε στο συμπέρασμα ότι η τρέχουσα υλοποίηση είναι κατάλληλη μόνο για τον χειρισμό coarse-grain εργασιών. Επιπλέον, αξιολογούμε την χρηστικότητα του MPI one-sided communication interface χρησιμοποιώντας το για την υλοποίηση ενός runtime συστήματος υψηλών επιδόσεων.
(EL)
In this work we present a C++11 library implementation of the futures programming
model for distributed memory. Our implementation uses an interface similar
to the C++11 standard library's one. The user can use the futures interface to
express parallelism and synchronize his code, while the underlying runtime system
schedules the functions the user issues to be run in parallel. Our runtime currently
uses the MPI one-sided communication interface, to achieve asynchronous
communication. We evaluate our runtime's performance and conclude that, in it's
current state, it is only suitable for handling coarse grain tasks. We also share our
experience using the MPI one-sided communication interface for implementing a
high-performance runtime.
(EN)