11.07.2015 Views

Methods and Techniques for the Automatic Parallel Code ...

Methods and Techniques for the Automatic Parallel Code ...

Methods and Techniques for the Automatic Parallel Code ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝΜέθοδοι και Τεχνικές Αυτόµατης Παραγωγής Παράλληλου Κώδικαγια Αλγοριθµικές Περιγραϕές Φωλιασµένων Βρόχων∆Ι∆ΑΚΤΟΡΙΚΗ ∆ΙΑΤΡΙΒΗΝικόλαος ∆ροσινόςΑθήνα, Ιούλιος 2006


ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝΜέθοδοι και Τεχνικές Αυτόµατης Παραγωγής Παράλληλου Κώδικαγια Αλγοριθµικές Περιγραϕές Φωλιασµένων Βρόχων∆Ι∆ΑΚΤΟΡΙΚΗ ∆ΙΑΤΡΙΒΗτουΝικολάου ∆ροσινού∆ιπλωµατούχου Ηλεκτρολόγου Μηχανικού και Μηχανικού Υπολογιστών Ε.Μ.Π. (2001)Συµβουλευτική Επιτροπή:Νεκτάριος Γ. ΚοζύρηςΓεώργιος Κ. ΠαπακωνσταντίνουΠαναγιώτης ∆. ΤσανάκαςΕγκρίθηκε από την επταµελή εξεταστική επιτροπή την 21η Ιουλίου 2006................................... .................................. ..................................Ν. Κοζύρης Γ. Παπακωνσταντίνου Π. ΤσανάκαςΕπίκ. Καθηγητής Ε.Μ.Π. Καθηγητής Ε.Μ.Π. Καθηγητής Ε.Μ.Π................................... .................................. ..................................Α. Σταϕυλοπάτης Κ. Χιτζανίδης Τ. ΣελλήςΚαθηγητής Ε.Μ.Π. Καθηγητής Ε.Μ.Π. Καθηγητής Ε.Μ.Π...................................Α. ΜπουντουβήςΚαθηγητής Ε.Μ.Π.Αθήνα, Ιούλιος 2006


................................Νικόλαος ∆ροσινός∆ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Ε.Μ.Π.Copyright c○ Νικόλαος ∆ροσινός, 2006Με επιϕύλαξη παντός δικαιώµατος – All rights reservedΑπαγορεύεται η αντιγραϕή, αποθήκευση και διανοµή της παρούσας εργασίας, εξ ολοκλήρου ή τµήµατος αυτής,για εµπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανοµή για σκοπό µη κερδοσκοπικό, εκπαιδευτικήςή ερευνητικής ϕύσης, υπό την προϋπόθεση να αναϕέρεται η πηγή προέλευσης και να διατηρείται το παρόνµήνυµα. Ερωτήµατα που αϕορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προςτο συγγραϕέα.Οι απόψεις και τα συµπεράσµατα που περιέχονται σε αυτό το έγγραϕο εκϕράζουν τον συγγραϕέα και δεν πρέπεινα ερµηνευθεί ότι αντιπροσωπεύουν τις επίσηµες θέσεις του Εθνικού Μετσόβιου Πολυτεχνείου.


óôç ìçôÝñá ìïõ ¼ëãáêáé ôçí áäåñöÞ ìïõ ËÞäá


ΠερίληψηΗ Παράλληλη Επεξεργασία αποτελεί κλάδο της επιστήµης των υπολογιστών, που τυγχάνει ολοένα καιπερισσότερης προσοχής σε διεπιστηµονικό επίπεδο. Το γεγονός αυτό µπορεί να αποδοθεί πρωτίστωςστο ότι η Παράλληλη Επεξεργασία παρέχει µια ελκυστική προοπτική για την αποτελεσµατικότερη αντι-µετώπιση προβληµάτων αυξηµένης χωρικής ή/και υπολογιστικής πολυπλοκότητας υπό την παραδοχήτων δεδοµένων τεχνολογικών περιορισµών αναϕορικά µε τις δυνατότητες τόσο του υλικού όσο καιτου λογισµικού/µεσισµικού. Τα τελευταία χρόνια, οι συστοιχίες πολυεπεξεργαστικών στοιχείων έχουναποδειχθεί εµπράκτως µια ιδιαίτερα ισχυρή, επεκτάσιµη και αξιόπιστη αρχιτεκτονική, στην οποία ο προγραµµατιστήςµπορεί να επιλύσει ένα σύνθετο αλγόριθµο σε υποπολλαπλάσιο του αρχικού χρόνου καιµε καλύτερη αξιοποίηση των πόρων του συστήµατος για αντιµετώπιση ακόµα µεγαλύτερων προβληµάτων.Ταυτόχρονα, η προτυποποίηση και ευρύτατη αποδοχή εργαλείων παράλληλου προγραµµατισµούσύγχρονων αρχιτεκτονικών υψηλών επιδόσεων, όπως η βιβλιοθήκη ανταλλαγής µηνυµάτων MPI και ηδιεπαϕή πολυνηµατικής επεξεργασίας OpenMP, αποτελούν ισχυρούς συµµάχους στην κατεύθυνση τουαποδοτικού προγραµµατισµού και της αξιοποίησης σε µεγάλη κλίµακα των αρχιτεκτονικών αυτών.Ουσιαστικά, σε αρκετά µεγάλο βαθµό το επιστηµονικό ενδιαϕέρον έχει πλέον µετατοπιστεί στοχώρο των Εϕαρµογών. Έτσι, σε διεπιστηµονικό επίπεδο δίνεται ιδιαίτερη έµϕαση στη γεϕύρωση τωντεχνολογικών και αρχιτεκτονικών εξελίξεων µε τις ανάγκες και τις ιδιοµορϕίες των υπολογιστικά απαιτητικώνεϕαρµογών. Βασική κατηγορία τέτοιων εϕαρµογών αποτελούν οι αλγόριθµοι ϕωλιασµένωνβρόχων, που βρίσκονται στην καρδιά πληθώρας απαιτητικών αλγορίθµων, χαρακτηρίζονται δε συχνάαπό υψηλή πολυπλοκότητα και οδηγούν στον υπολογισµό µεγάλου όγκου δεδοµένων. Απόρροια τηςκεντρικής θέσης που κατέχουν οι αλγόριθµοι ϕωλιασµένων βρόχων στην οικογένεια των εϕαρµογώντων υψηλών επιδόσεων αποτελεί η εκτεταµένη µελέτη και διερεύνησή τους στη διεθνή βιβλιογραϕία.Έτσι, έχουν προταθεί διάϕορες µέθοδοι τόσο για την παραλληλοποίηση τέτοιων αλγορίθµων όσο καιγια την απεικόνισή τους σε κατανεµηµένα συστήµατα µνήµης, όπως οι συστοιχίες υπολογιστών. Προςτην κατεύθυνση αυτή, ξεχωριστή αναϕορά θα πρέπει να γίνει στο µετασχηµατισµό υπερκόµβων, ένα


viΠερίληψηδηµοϕιλή µη γραµµικό µετασχηµατισµό που χρησιµοποιείται για τη διαµέριση των δεδοµένων και τωνυπολογισµών του αρχικού προβλήµατος και διευκολύνει την περαιτέρω κατανοµή τους στις διαθέσιµεςµονάδες εκτέλεσης του παράλληλου προγράµµατος.Η παραλληλοποίηση µιας γενικής ϕύσεως εϕαρµογής ϕωλιασµένων βρόχων είναι σύνθετη και µητετριµµένη διαδικασία. Το γεγονός αυτό αποδίδεται στην ποικιλοµορϕία των εϕαρµογών αυτών, πουανάλογα µε το ϕυσικό τους περιεχόµενο επιβάλλουν διαϕορετικές σηµασιολογικές εξαρτήσεις και καταπιάνονταιµε ϕυσικά χωρία ποικίλων γεωµετρικών συσχετισµών. Επιπλέον, η εξέλιξη των παράλληλωναρχιτεκτονικών οδηγεί συχνά στην εισαγωγή καινοτόµων προγραµµατιστικών τεχνικών ή ακόµακαι στην ανακύκλωση παλιότερων αρχών και προσεγγίσεων. Η τρέχουσα επικρατούσα αρχιτεκτονικήτάση στην Παράλληλη Επεξεργασία, ήτοι οι αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης, χαρακτηρίζεταιαπό µια διεπίπεδη αρχιτεκτονική ιεραρχία, που δεν διατηρείται στα συνήθη µονολιθικάµοντέλα παράλληλου προγραµµατισµού µέσω ανταλλαγής µηνυµάτων.Στο πλαίσιο της παρούσας διατριβής µας απασχόλησαν κυρίως δύο ζητήµατα: κατά πρώτο λόγο,επιχειρήσαµε να αξιοποιήσουµε τη σηµασιολογία ενός αλγορίθµου ϕωλιασµένων βρόχων, έστω σε επίπεδοτου χώρου επαναλήψεων και των εξαρτήσεων δεδοµένων, κατά την απεικόνιση του παράλληλουαλγορίθµου σε µια τοπολογία διεργασιών υπό δεδοµένη επεξεργαστική υποδοµή. Εξ όσων γνωρίζου-µε, η ανάδειξη της ϕύσης του αλγορίθµου κατά την διαδικασία απεικόνισής του σε µια καρτεσιανήτοπολογία διεργασιών δεν έχει ληϕθεί υπόψη στη σύγχρονη διεθνή βιβλιογραϕία, παρότι πειραµατικάοδηγεί σε σηµαντικές βελτιώσεις του χρόνου εκτέλεσης του αλγορίθµου. Κατά δεύτερον, διερευνήθηκανδιάϕορα υβριδικά µοντέλα παράλληλου προγραµµατισµού για αλγορίθµους ϕωλιασµένων βρόχων,που χρησιµοποιούν τόσο ανταλλαγή µηνυµάτων µεταξύ διαϕορετικών κόµβων της συστοιχίαςόσο και πολυνηµατική επεξεργασία στο εσωτερικό ενός κόµβου, αντανακλώντας έτσι προγραµµατιστικάτη διεπίπεδη ιεραρχία τέτοιων αρχιτεκτονικών. Όπως έχει διαπιστωθεί κατά την απόπειρα υβριδικήςπαραλληλοποίησης εϕαρµογών, η αξιοποίηση των πλεονεκτηµάτων του υβριδικού προγραµµατιστικούµοντέλου είναι δύσκολη διαδικασία, που απαιτεί µεταξύ άλλων τη χρήση τεχνικών για την άµβλυνσητων περιορισµών που συχνά επιβάλλει η βιβλιοθήκη ανταλλαγής µηνυµάτων. Στην παρούσα εργασία,αναπτύξαµε τεχνικές εξισορρόπησης του ϕορτίου µεταξύ των νηµάτων, επιτυγχάνοντας τη βελτίωσητης επίδοσης του υβριδικού µοντέλου τουλάχιστον στα επίπεδα του µονολιθικού µοντέλου ανταλλαγήςµηνυµάτων και σε αρκετές περιπτώσεις σε ακόµα ταχύτερους χρόνους εκτέλεσης.Λέξεις Κλειδιά: Συστήµατα Παράλληλης Επεξεργασίας, Τέλεια Φωλιασµένοι Βρόχοι, ΜετασχηµατισµόςΥπερκόµβων, Χρονοδροµολόγηση Σωλήνωσης, Χώρος Επαναλήψεων, Εξαρτήσεις ∆εδοµένων,Συστοιχίες Πολυεπεξεργαστικών Στοιχείων, Ανταλλαγή Μηνυµάτων, Πολυνηµατική Επεξεργασία, ΥβριδικήΠαραλληλοποίηση, Τοπολογία ∆ιεργασιών, Εξισορρόπηση Φορτίου Νηµάτων, MPI, OpenMP.


Abstract<strong>Parallel</strong> Processing is a major field of Computer Science, that attracts increasing attention on an interdisciplinarylevel. is is mainly due to <strong>the</strong> fact that <strong>Parallel</strong> Processing provides an alternative perspective<strong>for</strong> <strong>the</strong> efficient confrontation of scientific problems exhibiting high spatial <strong>and</strong>/or temporal complexity,assuming specific hardware <strong>and</strong> soware/middleware technological restrictions. In <strong>the</strong> last years,clusters of multi-processing computing nodes have proved to be a particularly powerful, scalable <strong>and</strong>reliable architecture, where a user can address complex algorithms with <strong>the</strong> aid of parallel programmingboth in sub-multiple execution time <strong>and</strong> by exploiting system resources more efficiently. Moreover, <strong>the</strong>st<strong>and</strong>ardization <strong>and</strong> wide acceptance of parallel programming tools <strong>for</strong> high per<strong>for</strong>mance plat<strong>for</strong>ms,like <strong>the</strong> Message Passing Interface MPI <strong>and</strong> <strong>the</strong> Open Multi Processing interface OpenMP, constitutepowerful allies as regards to <strong>the</strong> efficient programming <strong>and</strong> utilization of such architectures on a largescale.Currently, <strong>the</strong> focus of related scientific research has shied to <strong>the</strong> domain of Applications. Consequently,considerable emphasis has been placed on <strong>the</strong> interconnection of <strong>the</strong> technological <strong>and</strong> architecturaladvancements with <strong>the</strong> characteristics <strong>and</strong> requirements of <strong>the</strong> computationally intensiveapplications. A typical representative of such applications are nested loop algorithms, that lie within<strong>the</strong> core of many scientific kernels, oen exhibit high programming complexity <strong>and</strong> lead to <strong>the</strong> calculationof large datasets. e importance of nested loop algorithms can be deduced from <strong>the</strong>ir extendedstudy in related scientific literature. As a result, numerous methods have been proposed <strong>for</strong> <strong>the</strong> parallelizationof nested loop algorithms, as well as <strong>for</strong> <strong>the</strong>ir mapping on distributed memory systems, likeclusters. Special reference should be made to <strong>the</strong> tiling trans<strong>for</strong>mation, which is a popular non-lineartrans<strong>for</strong>mation that can be used <strong>for</strong> <strong>the</strong> partitioning of data <strong>and</strong> computation of <strong>the</strong> initial problem, asit facilitates fur<strong>the</strong>r distribution to <strong>the</strong> available execution entities of <strong>the</strong> parallel program.e parallelization of a generic nested loop application is an intricate task. is is mainly due to<strong>the</strong> large variety of such applications, that impose specific semantic dependencies depending on <strong>the</strong>ir


viiiAbstractphysical meaning <strong>and</strong> concern <strong>the</strong> computation of different geometric spaces. Fur<strong>the</strong>rmore, <strong>the</strong> evolutionof parallel programming plat<strong>for</strong>ms leads to <strong>the</strong> introduction of innovative programming techniquesor even to <strong>the</strong> recycling of older principles <strong>and</strong> approaches. e current dominant trend in HighPer<strong>for</strong>mance Computing, i.e., distributed shared memory plat<strong>for</strong>ms, exhibits a two-level hierarchicalarchitecture, that is not preserved with <strong>the</strong> usual message passing parallel programming models.In this dissertation, we were mainly concerned with two issues: firstly, when mapping a nested loopalgorithm onto a process topology corresponding to a given processor infrastructure, we have attemptedto exploit <strong>the</strong> particular semantics of <strong>the</strong> algorithm in an efficient <strong>and</strong> applicable manner, at leastin terms of iteration space <strong>and</strong> data dependencies. To our knowledge, no o<strong>the</strong>r work in related literaturehas considered <strong>the</strong> nature of <strong>the</strong> specific algorithm during <strong>the</strong> mapping procedure of <strong>the</strong> latteron a cartesian process topology, although it experimentally leads to significant improvement of <strong>the</strong> algorithmexecution time. Secondly, we have investigated different hybrid parallel programming models<strong>for</strong> nested loop algorithms, that employ both message passing <strong>for</strong> inter-node communication, as well asmulti-threading processing <strong>for</strong> intra-node synchronization, thus reflecting <strong>the</strong> architectural hierarchyof distributed shared memory plat<strong>for</strong>ms on a programming level. According to both literature observations<strong>and</strong> practical programming experience, it has been spotted that exploiting <strong>the</strong> advantages ofhybrid parallel programming is a complex task requiring among o<strong>the</strong>rs <strong>the</strong> use of techniques <strong>for</strong> overcoming<strong>the</strong> restrictions oen imposed by <strong>the</strong> message passing library. In this work, we have developedthread load balancing techniques <strong>and</strong> ensured per<strong>for</strong>mance <strong>for</strong> <strong>the</strong> hybrid model at least equal to <strong>the</strong>one attained by <strong>the</strong> pure message passing model <strong>and</strong> in many cases achieved improvement to even fasterexecution times.Keywords: <strong>Parallel</strong> Processing Systems, Perfectly Nested Loops, Tiling Trans<strong>for</strong>mation, Pipeline Scheduling,Iteration Space, Data Dependencies, SMP Clusters, Message Passing, Multi-threading, Hybrid <strong>Parallel</strong>ization,Process Topology, read Load Balancing, MPI, OpenMP.


ΠεριεχόµεναΠερίληψηAbstractΠεριεχόµεναΚατάλογος ΣχηµάτωνΚατάλογος ΠινάκωνΚατάλογος ΑλγορίθµωνΠρόλογοςvviiixxixiiixvxvii1 Εισαγωγή 11.1 Αντικείµενο της ∆ιατριβής . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Επισκόπηση Σχετικής Βιβλιογραϕίας . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Συµβολή της ∆ιατριβής . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4 Οργάνωση της ∆ιατριβής . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5 ∆ηµοσιευµένες Εργασίες . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Παράλληλη Επεξεργασία 132.1 Αρχιτεκτονικές Παράλληλης Επεξεργασίας . . . . . . . . . . . . . . . . . . . . . . . . 132.1.1 Αρχιτεκτονική Κατανεµηµένης Μνήµης . . . . . . . . . . . . . . . . . . . . . 14


xΠΕΡΙΕΧΟΜΕΝΑ2.1.2 Αρχιτεκτονική Μοιραζόµενης Μνήµης . . . . . . . . . . . . . . . . . . . . . . 162.1.3 Αρχιτεκτονική Κατανεµηµένης Μοιραζόµενης Μνήµης . . . . . . . . . . . . . 172.2 Μοντέλα Παράλληλου Προγραµµατισµού . . . . . . . . . . . . . . . . . . . . . . . . 192.2.1 Μοντέλο Ανταλλαγής Μηνυµάτων . . . . . . . . . . . . . . . . . . . . . . . . 212.2.2 Μοντέλο Πολυνηµατικής Επεξεργασίας . . . . . . . . . . . . . . . . . . . . . 222.2.3 Υβριδικό Προγραµµατιστικό Μοντέλο . . . . . . . . . . . . . . . . . . . . . . 242.2.4 Άλλα Μοντέλα Παράλληλου Προγραµµατισµού . . . . . . . . . . . . . . . . 273 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχων 313.1 Αλγοριθµικό Μοντέλο . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.1.1 Φωλιασµένοι Βρόχοι . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.1.2 Χώρος Επαναλήψεων . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1.3 Εξαρτήσεις ∆εδοµένων . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2 Βασικές Παραδοχές . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.3 Παράδειγµα: Μερικές ∆ιαϕορικές Εξισώσεις . . . . . . . . . . . . . . . . . . . . . . . 413.3.1 Γενικά . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.3.2 ∆ιακριτοποιήσεις Χώρου . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.3.3 ∆ιακριτοποιήσεις Χρόνου . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.3.4 ∆ιακριτοποίηση της Εξίσωσης Μεταϕοράς . . . . . . . . . . . . . . . . . . . 464 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτων 534.1 Μετασχηµατισµός Υπερκόµβων . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.2 Απεικόνιση σε ∆ιεργασίες . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.3 Προσδιορισµός Τοπολογίας ∆ιεργασιών Ελάχιστης Επικοινωνίας . . . . . . . . . . . . 704.4 Ισοδύναµα: Προσδιορισµός Ορθογώνιου Μετασχηµατισµού Υπερκόµβων ΕλάχιστηςΕπικοινωνίας . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.5 Χρονοδροµολόγηση µε Επικάλυψη Επικοινωνίας - Υπολογισµών . . . . . . . . . . . . 745 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλο 795.1 Υβριδικό Μοντέλο . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.1.1 Χρονοδροµολόγηση Υπερεπιπέδων . . . . . . . . . . . . . . . . . . . . . . . 835.1.2 Πολυνηµατική Υποστήριξη . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.1.3 Υβριδικό Μοντέλο Λεπτού Κόκκου . . . . . . . . . . . . . . . . . . . . . . . 885.1.4 Υβριδικό Μοντέλο Χονδρού Κόκκου - Funneled . . . . . . . . . . . . . . . . 915.1.5 Υβριδικό Μοντέλο Χονδρού Κόκκου - Multiple . . . . . . . . . . . . . . . . . 94


ΠΕΡΙΕΧΟΜΕΝΑxi5.2 Εξισορρόπηση Φορτίου µεταξύ των Νηµάτων . . . . . . . . . . . . . . . . . . . . . . 975.2.1 Στατική Εξισορρόπηση Φορτίου . . . . . . . . . . . . . . . . . . . . . . . . . 985.2.2 ∆υναµική Εξισορρόπηση Φορτίου . . . . . . . . . . . . . . . . . . . . . . . . 1045.3 Σύγκριση Μοντέλου Ανταλλαγής Μηνυµάτων µε Υβριδικό Μοντέλο . . . . . . . . . . 1086 Πειραµατική Αξιολόγηση 1156.1 Μετροπρογράµµατα . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156.2 Πειραµατική Υποδοµή . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206.3 Τοπολογία ∆ιεργασιών . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216.3.1 ADI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226.3.2 DE-XYT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296.3.3 DE-TXY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336.3.4 Adv2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356.3.5 Adv3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366.3.6 Συµπεράσµατα . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386.4 Εξισορρόπηση Φορτίου Νηµάτων . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386.4.1 ADI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426.4.2 DE-XYT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476.4.3 DE-TXY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1496.4.4 Adv2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516.4.5 Αξιολόγηση Multiple Υβριδικού Μοντέλου Χονδρού Κόκκου . . . . . . . . . 1526.4.6 Συµπεράσµατα . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1556.5 Γενική Αξιολόγηση . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1566.5.1 ADI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1576.5.2 DE-XYT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1606.5.3 DE-TXY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1626.5.4 Adv2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1626.6 Συµβολή της ∆ιατριβής: η Πειραµατική Εκδοχή . . . . . . . . . . . . . . . . . . . . . 1637 Συµπεράσµατα - Προτάσεις για Μελλοντική Έρευνα 169Α Το Πρότυπο MPI 175Β Το Πρότυπο OpenMP 179


xiiΠΕΡΙΕΧΟΜΕΝΑΓ Σχεδίαση Υλοποίησης MPICH 183Γ.1 Βασικές ∆οµές . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184Γ.2 Έλεγχος Ροής . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187Γ.3 Αρχικοποίηση Καναλιού CH(ameleon) . . . . . . . . . . . . . . . . . . . . . . . . . . 189Γ.4 Ασύγχρονη Αποστολή . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Γ.4.1 Short Αποστολή . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Γ.4.2 Eager Αποστολή . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Γ.4.3 Rendezvous Αποστολή . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Γ.4.4 P4 Βιβλιοθήκη Επικοινωνίας . . . . . . . . . . . . . . . . . . . . . . . . . . . 196Γ.5 Ολοκλήρωση Αποστολής . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198Γ.6 Λήψη . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200Γ.6.1 MPI Irecv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Γ.6.2 MPID DeviceCheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203Γ.6.3 Αναµενόµενη Short Λήψη . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Γ.6.4 Μη Αναµενόµενη Short Λήψη . . . . . . . . . . . . . . . . . . . . . . . . . . 208Γ.6.5 Αναµενόµενη Eager Λήψη . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Γ.6.6 Μη Αναµενόµενη Eager Λήψη . . . . . . . . . . . . . . . . . . . . . . . . . . 212Γ.6.7 Αναµενόµενη Rendezvous Λήψη . . . . . . . . . . . . . . . . . . . . . . . . . 214Γ.6.8 Μη Αναµενόµενη Rendezvous Λήψη . . . . . . . . . . . . . . . . . . . . . . . 216Βιβλιογραϕία 219Ευρετήριο 231


Κατάλογος Σχηµάτων2.1 Αρχιτεκτονική κατανεµηµένης µνήµης . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Αρχιτεκτονική µοιραζόµενης µνήµης . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3 Αρχιτεκτονική κατανεµηµένης µοιραζόµενης µνήµης . . . . . . . . . . . . . . . . . . 182.4 Αϕαιρετικός διαχωρισµός µεταξύ της επιλογής του προγραµµατιστικού µοντέλου κατάτην παραλληλοποίηση µιας εϕαρµογής και της επιλογής παράλληλης αρχιτεκτονικήςγια την εκτέλεση του παράλληλου προγράµµατος . . . . . . . . . . . . . . . . . . . . 202.5 Σύγκριση προγραµµατιστικού µοντέλου ανταλλαγής µηνυµάτων µε το ισοδύναµο µοιραζόµενηςµνήµης για αρχιτεκτονική µοιραζόµενης µνήµης . . . . . . . . . . . . . . . 242.6 Επεξεργασία µονοδιάστατου πίνακα µε χρήση τόσο του µοντέλου ανταλλαγής µηνυ-µάτων όσο και του πολυνηµατικού µοντέλου . . . . . . . . . . . . . . . . . . . . . . . 262.7 Σύγκριση της επίδοσης εναλλακτικών µεθόδων επικοινωνίας στο εσωτερικό SMP κόµβου.Χάριν πληρότητας, το σχήµα 2.7(α) απεικονίζει επιπλέον και τη χρονική επίδοσηστην επικοινωνία µέσω ανταλλαγής µηνυµάτων µεταξύ διεργασιών σε διαϕορετικούςSMP κόµβους (περίπτωση TCP/IP). Παρατηρούµε από τις υπόλοιπες τρεις ευθείες, πουαντιστοιχούν σε επικοινωνία ή συγχρονισµό στο εσωτερικό του SMP κόµβου και αναπαράγονταιγια ευκολία στο σχήµα 2.7(β), ότι η συγχρονισµένη πρόσβαση στην κοινήµνήµη µε χρήση OpenMP υπερτερεί της MPI επικοινωνίας γενικής µορϕής, ακόµα κιόταν αυτή είναι ιδιαίτερα βελτιστοποιηµένη κάνοντας χρήση SYS V µοιραζόµενης µνή-µης (περίπτωση shmem). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27


xivΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ3.1 Χώρος επαναλήψεων τριπλά ϕωλιασµένου βρόχου. Το σύνολο των σηµείων που σαρώνονταικατά την εκτέλεση του τρισδιάστατου βρόχου αντιστοιχεί σε ένα υποσύνολοσηµείων του N 3 στον τρισδιάστατο χώρο. . . . . . . . . . . . . . . . . . . . . . . . . 343.2 Εξαρτήσεις δεδοµένων τριπλά ϕωλιασµένου βρόχου. Ο υπολογισµός του στοιχείουA j1 ,j 2 ,j 3κατά την επανάληψη (j 1 , j 2 , j 3 ) απαιτεί τη χρήση της τιµής των στοιχείωνA j1 −1,j 2 ,j 3, A j1 ,j 2 −1,j 3και A j1 ,j 2 ,j 3 −2, που υπολογίστηκαν στις επαναλήψεις (j 1 −1, j 2 , j 3 ), (j 1 , j 2 − 1, j 3 ) και (j 1 , j 2 , j 3 − 2), αντίστοιχα. . . . . . . . . . . . . . . . . 374.1 Εϕαρµογή µετασχηµατισµού υπερκόµβων σε αλγόριθµο ϕωλιασµένων βρόχων. Ο αρχικόςαλγόριθµος µετασχηµατίζεται µε χρήση του µετασχηµατισµού υπερκόµβων σεισοδύναµο, που διευκολύνει τη διαµέριση των δεδοµένων και την κατανοµή των υπολογισµών.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.2 Παράλληλη εκτέλεση τρισδιάστατου αλγορίθµου µε χρήση 9 διεργασιών. Ο αλγόριθ-µος απεικονίζεται στις διαθέσιµες διεργασίες ως προς τις διαστάσεις j 1 , j 2 , ενώ κατάτην j 3 πραγµατοποιείται ακολουθιακή εκτέλεση των υπερκόµβων σε κάθε διεργασία.Αριστερά ϕαίνεται η χρονοδροµολόγηση σωλήνωσης που επιτυγχάνεται, ενώ δεξιά παρατηρούµετην απεικόνιση των υπερκόµβων στο 3 × 3 πλέγµα των 9 διαθέσιµων διεργασιών,καθώς και την ανάγκη αποστολής δεδοµένων από τη διεργασία ⃗p 5 προς τις ⃗p 6και ⃗p 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.3 Σύγκριση των δεδοµένων επικοινωνίας για δύο εναλλακτικές τοπολογίες απεικόνισηςτρισδιάστατου αλγορίθµου . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.4 Επιλογή βέλτιστης τοπολογίας απεικόνισης (P 1 , P 2 ) για τρισδιάστατο αλγόριθµο βάσειτου κανονικοποιηµένου κόστους επικοινωνίας . . . . . . . . . . . . . . . . . . . . . . 695.1 Χρονοδροµολόγηση υπερεπιπέδων µε 4 διεργασίες σε τοπολογία 2 × 2 και 6 νήµαταανά διεργασία σε τοπολογία 3×2. Οι πλάγιες διακεκοµµένες γραµµές αντιστοιχούν σταδιαϕορετικά υπερεπίπεδα, ενώ η µεταβλητή ¢¡¤£¢¥§¦ ¨©£© αντιστοιχεί στο υπερεπίπεδοεκκίνησης του πρώτου νήµατος κάθε διεργασίας. . . . . . . . . . . . . . . . . . . . . 84


ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝxv5.2 Απεικόνιση τρισδιάστατου αλγορίθµου σε 16 διεργασίες × 4 νήµατα ανά διεργασίακατά τη χρονοδροµολόγηση υπερεπιπέδων. Επιλέγεται τοπολογία 4 × 4 τόσο για τιςδιεργασίες όσο και για τα νήµατα. Στο κάτω αριστερά µέρος ϕαίνεται σε λεπτοµέρειαη διεργασία ⃗p 1 , για να αναδειχθεί ο ανάστροϕος τρόπος απεικόνισης της τοπολογίαςτων νηµάτων⃗t 1 -⃗t 4 . Επιπλέον, ενδεικτικά παρατίθενται τέσσερις πίνακες που είναι ιδιαίτεραχρήσιµοι για την αϕαιρετική υλοποίηση του παράλληλου υβριδικού προγράµµατος,ήτοι οι (διαστάσεις υπερκόµβου διεργασίας), (διαστάσεις υπερκόµβου¦¡ νήµατος), ¦©¦¡ (αρχική θέση υπερκόµβου νήµατος) και (αρχικές θέσεις © ¥§£¢ © δεδοµένων επικοινωνίας γειτονικών διεργασιών). . . . . . . . . . . . . . . . . . . . . 855.3 Επικοινωνία µεταξύ διεργασιών στο multiple υβριδικό µοντέλο χονδρού κόκκου. Ο αλγόριθµοςαπεικονίζεται σε 4 διεργασίες σε τοπολογία 2×2, όπου κάθε διεργασία εκκινεί6 νήµατα σε τοπολογία 3 × 2. Η επικοινωνία διεξάγεται θεωρητικά µόνο µεταξύ των 4διεργασιών, αλλά η χρήση διαϕορετικών ετικετών στα µηνύµατα επιτρέπει έµµεσα τηνυλοποίηση επικοινωνίας µεταξύ των νηµάτων. . . . . . . . . . . . . . . . . . . . . . . 965.4 Σταθερή εξισορρόπηση ϕορτίου για 4 διεργασίες σε 2 × 2 τοπολογία και 4 νήµατα ανάδιεργασία σε 4×1 τοπολογία. Το πρωτεύον νήµα⃗t 1 αναλαµβάνει µικρότερο ϕορτίο απότα υπόλοιπα για να εξισωθούν οι συνολικοί χρόνοι υπολογισµού και επικοινωνίας όλωντων νηµάτων. Παρατηρούµε ότι ο ίδιος συντελεστής εξισορρόπησης ϕορτίου εϕαρµόζεταισε όλες τις διεργασίες, παρότι λ.χ. η διεργασία 4 δεν αποστέλλει δεδοµένα προςάλλη διεργασία. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995.5 Μεταβλητή εξισορρόπηση ϕορτίου για 8 διεργασίες σε 4 × 2 τοπολογία και 2 νήµαταανά διεργασία σε 2 × 1 τοπολογία. Το πρωτεύον νήµα αναλαµβάνει µικρότερο ϕορτίοαπό το δευτερεύον, αλλά γενικά οι συντελεστές εξισορρόπησης ϕορτίου αυξάνουνσε συνοριακές διεργασίες που δεν αποστέλλονται δεδοµένα προς µία ή περισσότερεςδιευθύνσεις (π.χ. στη διεργασία 8 δεν εϕαρµόζεται εξισορρόπηση ϕορτίου και οι υπολογισµοίισοκατανέµονται µεταξύ των νηµάτων). Παρατηρούµε ότι η προσέγγιση τουάνω σχήµατος παραβιάζει τη χρονοδροµολόγηση υπερεπιπέδων, καθώς π.χ. στο δεύτερουπερεπίπεδο το πρωτεύον νήµα της διεργασίας 2 θα χρειαζόταν τιµές που θα υπολογίσειστο ίδιο υπερεπίπεδο το δευτερεύον νήµα της διεργασίας 1. . . . . . . . . . . 1015.6 ∆υναµική εξισορρόπηση ϕορτίου. Κατά την περίοδο δειγµατοληψίας µετρώνται οι χρόνοιυπολογισµού και επικοινωνίας του πρωτεύοντος νήµατος, ώστε να επαναπροσδιοριστούνοι συντελεστές εξισορρόπησης ϕορτίου. . . . . . . . . . . . . . . . . . . . . . 107


xviΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ6.1 Επιλογή τοπολογίας διεργασιών ελάχιστης επικοινωνίας (P 1 , P 2 ) για πέντε χώρουςεπαναλήψεων. Για κάθε χώρο επαναλήψεων σχεδιάζεται η καµπύλη του κανονικοποιη-µένου κόστους επικοινωνίας, της οποίας οι θέσεις ελαχίστων αντιστοιχούν στην προτεινόµενητοπολογία. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236.2 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (ADI, διάϕοροι χώροιεπαναλήψεων, 16 διεργασίες, συστοιχία twins) . . . . . . . . . . . . . . . . . . . . . . 1246.3 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (ADI, διάϕοροι χώροιεπαναλήψεων, 12 διεργασίες, συστοιχία twins) . . . . . . . . . . . . . . . . . . . . . . 1256.4 Παράσταση συνολικού χρόνου εκτέλεσης, µέγιστου χρόνου υπολογισµού και µέγιστουχρόνου επικοινωνίας για το µετροπρόγραµµα ADI, το χώρο επαναλήψεων 64 × 256 ×16K και 16 διεργασίες. Παρατηρούµε ότι οι χρόνοι υπολογισµού δεν διαϕέρουν σηµαντικά,ενώ αντίθετα το πλεονέκτηµα που προσϕέρει στο χρόνο επικοινωνίας η προτεινόµενητοπολογία µεταϕέρεται αυτούσιο και στο συνολικό χρόνο εκτέλεσης του προγράµµατος.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266.5 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών για µεταβλητό κόκκοπαραλληλισµού (ADI, διάϕοροι χώροι επαναλήψεων, 16 διεργασίες, συστοιχία twins) 1276.6 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (ADI, διάϕοροι χώροιεπαναλήψεων, 16 διεργασίες, συστοιχία xenons) . . . . . . . . . . . . . . . . . . . . . 1286.7 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-XYT, διάϕοροι χώροιεπαναλήψεων, 16 διεργασίες, συστοιχία twins) . . . . . . . . . . . . . . . . . . . . 1306.8 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-XYT, διάϕοροι χώροιεπαναλήψεων, 12 διεργασίες, συστοιχία twins) . . . . . . . . . . . . . . . . . . . . 1316.9 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-XYT, διάϕοροι χώροιεπαναλήψεων, 16 διεργασίες, συστοιχία xenons) . . . . . . . . . . . . . . . . . . . 1326.10 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-TXY, διάϕοροι χώροιεπαναλήψεων, 16 και 12 διεργασίες, συστοιχία twins) . . . . . . . . . . . . . . . . 1346.11 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-TXY, διάϕοροι χώροιεπαναλήψεων, 16 διεργασίες, συστοιχία xenons) . . . . . . . . . . . . . . . . . . . 1346.12 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (Adv2D, διάϕοροι χώροιεπαναλήψεων, 16 διεργασίες, συστοιχίες twins και xenons) . . . . . . . . . . . . . 1356.13 Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (Adv3D, διάϕοροι χώροιεπαναλήψεων, 16 διεργασίες, συστοιχίες twins και xenons) . . . . . . . . . . . . . 1376.14 Σύγκριση υβριδικών µοντέλων (ADI, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες, 2νήµατα ανά διεργασία, συστοιχία twins) . . . . . . . . . . . . . . . . . . . . . . . . . 143


ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝxvii6.15 Σύγκριση υβριδικών µοντέλων για µεταβλητό κόκκο παραλληλισµού (ADI, 8 διεργασίες,2 νήµατα ανά διεργασία, συστοιχία twins). Στο χώρο επαναλήψεων 256 × 256 ×16k σηµειώνεται το κατώϕλι µεταξύ του eager και του rendezvous πρωτοκόλλου επικοινωνίαςτου MPICH, που συνοδεύεται µε σηµαντική πτώση στην απόδοση. Σε όλουςτους χώρους επαναλήψεων και για όλα τα ύψη υπερκόµβου υπερέχουν τα σχήµατα µεταβλητήςκαι δυναµικής εξισορρόπησης ϕορτίου. . . . . . . . . . . . . . . . . . . . . 1446.16 Σύγκριση υβριδικών µοντέλων (ADI, διάϕοροι χώροι επαναλήψεων, συστοιχία xenons,8 διεργασίες, 2 νήµατα ανά διεργασία) . . . . . . . . . . . . . . . . . . . . . . . . . . 1466.17 Σύγκριση υβριδικών µοντέλων (DE-XYT, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες,2 νήµατα ανά διεργασία, συστοιχία twins) . . . . . . . . . . . . . . . . . . . . . . . . 1476.18 Σύγκριση υβριδικών µοντέλων (DE-XYT, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες,2 νήµατα ανά διεργασία, συστοιχία xenons) . . . . . . . . . . . . . . . . . . . . . . . 1486.19 Σύγκριση υβριδικών µοντέλων (DE-TXY, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες,2 νήµατα ανά διεργασία, συστοιχία twins) . . . . . . . . . . . . . . . . . . . . . . . . 1496.20 Σύγκριση υβριδικών µοντέλων (DE-TXY, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες,2 νήµατα ανά διεργασία, συστοιχία xenons) . . . . . . . . . . . . . . . . . . . . . . . 1506.21 Σύγκριση υβριδικών µοντέλων (Adv2D, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες, 2νήµατα ανά διεργασία, συστοιχία twins) . . . . . . . . . . . . . . . . . . . . . . . . . 1526.22 Σύγκριση υβριδικών µοντέλων για µεταβλητό κόκκο παραλληλισµού (Adv2D, 8 διεργασίες,2 νήµατα ανά διεργασία, συστοιχία twins). Σε όλους τους χώρους επαναλήψεωνκαι για όλα τα ύψη υπερκόµβου υπερέχει το σχήµα δυναµικής εξισορρόπησης ϕορτίου. 1536.23 Σύγκριση multiple υβριδικού µοντέλου χονδρού κόκκου µε βελτιστοποιηµένο funneled(διάϕορα µετροπρογράµµατα και χώροι επαναλήψεων, 8 διεργασίες, 2 νήµατα ανά διεργασία,συστοιχία twins) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1546.24 Σύγκριση παράλληλων µοντέλων (ADI, διάϕοροι χώροι επαναλήψεων, 16 διεργασίεςή 8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχίες twins και xenons) . . . . . . . . 158


xviiiΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ6.25 Σύγκριση παράλληλων µοντέλων για µεταβλητό κόκκο παραλληλισµού (ADI, 16 διεργασίεςή 8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία twins). Παρότι το απλόυβριδικό µοντέλο υστερεί σε σχέση µε το παράλληλο πρόγραµµα ανταλλαγής µηνυµάτωνγια όλα τα ύψη υπερκόµβων, η χρήση µεταβλητής και κυρίως δυναµικής εξισορρόπησηςϕορτίου καθιστά το υβριδικό µοντέλο εξίσου ανταγωνιστικό και µάλιστα παρέχειτους ελάχιστους χρόνους εκτέλεσης. Στο χώρο επαναλήψεων 256 × 256 × 16K ση-µειώνεται το κατώϕλι µεταξύ eager και rendezvous πρωτοκόλλου του MPICH για τηνπερίπτωση των υβριδικών προγραµµάτων, στο οποίο παρατηρείται σηµαντική µείωσητης επίδοσης. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1596.26 Σύγκριση παράλληλων µοντέλων (DE-XYT, διάϕοροι χώροι επαναλήψεων, 16 διεργασίεςή 8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία twins) . . . . . . . . . . . . 1616.27 Σύγκριση παράλληλων µοντέλων (DE-XYT, διάϕοροι χώροι επαναλήψεων, 16 διεργασίεςή 8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία xenons) . . . . . . . . . . . 1616.28 Σύγκριση παράλληλων µοντέλων (DE-TXY, διάϕοροι χώροι επαναλήψεων, 16 διεργασίεςή 8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία twins) . . . . . . . . . . . . 1636.29 Σύγκριση παράλληλων µοντέλων (Adv2D, διάϕοροι χώροι επαναλήψεων, 16 διεργασίεςή 8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία twins) . . . . . . . . . . . . 1646.30 Συµβολή της διατριβής στη βελτίωση της επίδοσης παράλληλων προγραµµάτων µεχρήση των προτεινόµενων µοντέλων παραλληλοποίησης και τεχνικών βελτιστοποίησης(διάϕορα µετροπρογράµµατα, 16 διεργασίες ή 8 διεργασίες × 2 νήµατα, συστοιχίαtwins) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1656.31 Συµβολή της διατριβής στη βελτίωση της επίδοσης παράλληλων προγραµµάτων µεχρήση των προτεινόµενων µοντέλων παραλληλοποίησης και τεχνικών βελτιστοποίησηςγια λεπτοµερή παραλληλισµό µε µοναδιαίο ύψος υπερκόµβου (διάϕορα µετροπρογράµµατα,16 διεργασίες ή 8 διεργασίες × 2 νήµατα, συστοιχία twins) . . . . . . . . . 166Γ.1 Στρωµατική σχεδίαση της επικοινωνίας από σηµείο προς σηµείο στο MPICH . . . . . 184Γ.2 Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του short πρωτοκόλλου του MPICH(περίπτωση αναµενόµενης λήψης) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Γ.3 Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του short πρωτοκόλλου του MPICH(περίπτωση µη αναµενόµενης λήψης) . . . . . . . . . . . . . . . . . . . . . . . . . . . 209Γ.4 Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του eager πρωτοκόλλου του MPICH(περίπτωση αναµενόµενης λήψης) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Γ.5 Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του eager πρωτοκόλλου του MPICH(περίπτωση µη αναµενόµενης λήψης) . . . . . . . . . . . . . . . . . . . . . . . . . . . 213


ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝxixΓ.6 Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του rendezvous πρωτοκόλλου τουMPICH (περίπτωση αναµενόµενης λήψης) . . . . . . . . . . . . . . . . . . . . . . . . 215Γ.7 Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του rendezvous πρωτοκόλλου τουMPICH (περίπτωση µη αναµενόµενης λήψης) . . . . . . . . . . . . . . . . . . . . . . 218


Κατάλογος Πινάκων3.1 ∆ιακριτοποιήσεις πρώτης και δεύτερης παραγώγου χώρου . . . . . . . . . . . . . . . 456.1 Τεχνικά στοιχεία συστοιχιών twins και xenons . . . . . . . . . . . . . . . . . . . . . . 1206.2 Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα ADI και συνολικόπλήθος διεργασιών 16 ή 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226.3 Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-XYT καισυνολικό πλήθος διεργασιών 16 ή 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296.4 Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-TXY καισυνολικό πλήθος διεργασιών 16 ή 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336.5 Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα Adv2D καισυνολικό πλήθος διεργασιών 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356.6 Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα Adv3D καισυνολικό πλήθος διεργασιών 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1376.7 Παράµετροι εξισορρόπησης ϕορτίου για συστοιχίες twins και xenons. . . . . . . . . . 1406.8 Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα ADI και συνολικό πλήθοςδιεργασιών 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426.9 Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-XYT και συνολικό πλήθοςδιεργασιών 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476.10 Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-TXY και συνολικό πλήθοςδιεργασιών 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149


xxiiΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ6.11 Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα Adv2D και συνολικό πλήθοςδιεργασιών 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516.12 Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα ADI και συνολικό πλήθοςδιεργασιών 16 (MPI) ή 8 (υβριδικό) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1576.13 Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-XYT και συνολικό πλήθοςδιεργασιών 16 (MPI) ή 8 (υβριδικό) . . . . . . . . . . . . . . . . . . . . . . . . . 1606.14 Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-TXY και συνολικό πλήθοςδιεργασιών 16 (MPI) ή 8 (υβριδικό) . . . . . . . . . . . . . . . . . . . . . . . . . 1626.15 Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα Adv2D και συνολικό πλήθοςδιεργασιών 16 (MPI) ή 8 (υβριδικό) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Γ.1 Σύνοψη διαϕορών σε ρουτίνες ασύγχρονης αποστολής για τα τρία πρωτόκολλα τηςσυσκευής CH του MPICH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197


Κατάλογος Αλγορίθµων3.1 Αλγοριθµικό µοντέλο πλήρως αντιµεταθέσιµων βρόχων . . . . . . . . . . . . . . . . . 333.2 Παράδειγµα αλγορίθµου ϕωλιασµένων βρόχων . . . . . . . . . . . . . . . . . . . . . . 343.3 Αλγοριθµική περιγραϕή ϕωλιασµένων βρόχων για δισδιάστατη εξίσωση µεταϕοράς . . 504.1 Παράδειγµα τρισδιάστατου αλγορίθµου ϕωλιασµένων βρόχων . . . . . . . . . . . . . . 554.2 Μετασχηµατισµένος αλγόριθµος ϕωλιασµένων βρόχων µε χρήση µετασχηµατισµού υπερκόµβων. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.3 Ισοδύναµο αλγοριθµικό µοντέλο υπό την εϕαρµογή µετασχηµατισµού υπερκόµβων H ={ }diag 1 1 1h 11,h 22, · · · ,h NN, 1 z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.4 Προγραµµατιστικό µοντέλο ανταλλαγής µηνυµάτων . . . . . . . . . . . . . . . . . . . 604.5 Αλγόριθµος προσδιορισµού τοπολογίας διεργασιών ελάχιστης επικοινωνίας . . . . . . 715.1 Χρονοδροµολόγηση υπερεπιπέδων . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845.2 Υβριδικό προγραµµατιστικό µοντέλο λεπτού κόκκου . . . . . . . . . . . . . . . . . . . 905.3 Υβριδικό προγραµµατιστικό µοντέλο χονδρού κόκκου - funneled . . . . . . . . . . . . 935.4 Υβριδικό προγραµµατιστικό µοντέλο χονδρού κόκκου - multiple . . . . . . . . . . . . 95


ΠρόλογοςΗ εργασία αυτή ξεκίνησε ουσιαστικά κατά την ενασχόλησή µου µε την αυτόµατη παραλληλοποίηση αλγορίθµωνϕωλιασµένων βρόχων στο πλαίσιο της διπλωµατικής µου εργασίας στο Εργαστήριο ΥπολογιστικώνΣυστηµάτων της Σχολής Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Ε.Μ.Π.Το τελικό περιεχόµενο διαµορϕώθηκε αϕενός µέσω της παρακολούθησης των σύγχρονων τάσεων στοχώρο της Παράλληλης Επεξεργασίας και αϕετέρου µέσω µακράς διαδικασίας προτυποποίησης νέωντεχνικών βελτιστοποίησης και -κυρίως- πειραµατικής επαλήθευσης της αποδοτικότητάς τους. Ιδιαίτεραωϕέλιµη υπήρξε η εκπόνηση σχετικών εργασιών σε συνεργασία µε άλλα µέλη του Εργαστηρίου καιη συµµετοχή µου σε πολλά διεθνή συνέδρια, τόσο για την παρουσίαση των πορισµάτων και προβολήτου ερευνητικού έργου του Εργαστηρίου όσο και για τη συνεχή ενηµέρωση σχετικά µε τις σύγχρονεςτεχνολογικές εξελίξεις από κορυϕαίους επιστήµονες του χώρου.Στο τέλος της µακράς αυτής διαδροµής θα ήθελα να ευχαριστήσω όλους τους καθηγητές που µεπλαισίωσαν και µε καθοδήγησαν στην έρευνά µου. Ευχαριστώ ιδιαίτερα τον επιβλέποντα καθηγητήµου, Επίκουρο Καθηγητή Ε.Μ.Π. κ. Νεκτάριο Κοζύρη, για την ουσιαστική καθοδήγηση και την πολύπλευρησυµβολή του τόσο στην παρούσα εργασία όσο και στη δηµιουργία συνολικής αντίληψης καιεποπτείας του χώρου των Συστηµάτων Υψηλών Επιδόσεων. Ο ζήλος του για την επιστήµη των υπολογιστώναποτέλεσε άλλωστε το βασικότερο λόγο για τον οποίο επέλεξα να συνεχίσω τις σπουδέςµου στο Εργαστήριο Υπολογιστικών Συστηµάτων. Ευχαριστώ επίσης τον Καθηγητή Ε.Μ.Π. κ. ΓεώργιοΠαπακωνσταντίνου, που στάθηκε πάντοτε αρωγός στην ερευνητική µου δραστηριότητα, αλλά κυρίωςµου µετέδωσε µέρος της ακεραιότητας του χαρακτήρα του και των αξιών του, ακόµα και σε θέµατα πουξεπερνούν το στενό ακαδηµαϊκό πλαίσιο. Τέλος, ευχαριστώ και τον Καθηγητή Ε.Μ.Π. κ. ΠαναγιώτηΤσανάκα τόσο για όλη τη βοήθεια που µου προσέϕερε όσο και για την πάντα ευχάριστη συνεργασίαµας.Επίσης, νιώθω την ανάγκη να ευχαριστήσω ολόψυχα όλα τα µέλη του Εργαστηρίου ΥπολογιστικώνΣυστηµάτων, που µου έδωσαν την ευκαιρία να εργάζοµαι καθηµερινά σε ένα ευχάριστο και δηµιουργι-


xxviΠρόλογοςκό περιβάλλον για την εκπόνηση της παρούσας εργασίας. Ξεχωριστή αναϕορά θα ήθελα να κάνω στοµεταδιδάκτορα ερευνητή κ. Γεώργιο Γκούµα, που σε όλα τα επίπεδα συνέβαλε τα µέγιστα στην πορείααυτή, από την αρχική εξοικείωσή µου µε το χώρο της Παράλληλης Επεξεργασίας µέχρι την τελική δια-µόρϕωση του περιεχοµένου της διατριβής µου. Κυρίως όµως θα ήθελα να τον ευχαριστήσω γιατί πάνωαπ' όλα υπήρξε πραγµατικός ϕίλος και µου έδωσε κίνητρο για προσωπική βελτίωση σε πολλά θέµατα,πέραν του ερευνητικού. Ιδιαίτερα θα ήθελα να ευχαριστήσω τη µεταδιδάκτορα ερευνήτρια κυρία ΜαρίαΑθανασάκη, µε την οποία είχα την τύχη να συνεργαστώ στενά σε πολλά ερευνητικά ζητήµατα και τηςοποίας η συµπαράσταση και βοήθεια υπήρξε πάντα αυθόρµητη, ανιδιοτελής και ουσιαστική. Τέλος, θαήθελα να ευχαριστήσω όλα τα υπόλοιπα µέλη του Εργαστηρίου, και ιδιαίτερα το µεταδιδάκτορα ερευνητήκ. Αριστείδη Σωτηρόπουλο και τους υποψήϕιους διδάκτορες κυρία Ευαγγελία Αθανασάκη και κ.κ.Ευάγγελο Κούκη, Γεώργιο Τσουκαλά, Κορνήλιο Κούρτη, Αντώνιο Χαζάπη, Αντώνιο Ζήσιµο, ΝικόλαοΑναστόπουλο και Γεώργιο Βεριγάκη. Πρόκειται αναµϕίβολα για χαρισµατικούς ερευνητές εξαιρετικώνεπιστηµονικών και τεχνικών δυνατοτήτων, κυρίως όµως ανθρώπους µε σπάνια καλοσύνη και προθυµία.Για τη στοιχειοθεσία του παρόντος κειµένου έλαβα µεγάλη βοήθεια από τον υποψήϕιο διδάκτορακ. Παναγιώτη Χείλαρη, τον οποίο ευχαριστώ βαθύτατα. Στο ίδιο ζήτηµα, πολύτιµη υπήρξε η συνδροµήτων κ.κ. Γεωργίου Τσουκαλά και Αριστείδη Σωτηρόπουλου, τους οποίους ευχαριστώ και για όλες τιςγόνιµες συζητήσεις που µοιραστήκαµε κατά καιρούς σχετικά µε ερευνητικά και µη ζητήµατα, και µεβοήθησαν να παραµείνω προσηλωµένος στην ολοκλήρωση της διατριβής µου. Για την επιµέλεια τουκειµένου θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή µου κ. Νεκτάριο Κοζύρη και τους κ.κ.Γεώργιο Γκούµα και Κορνήλιο Κούρτη, που συνέβαλαν καθοριστικά στην τεχνική και συντακτική αρτιότητατου παρόντος. Αναϕορικά µε την επίλυση πολλών προβληµάτων τεχνικής ϕύσεως, θα ήθελανα ευχαριστήσω ιδιαίτερα τον κ. Ευάγγελο Κούκη, που υπήρξε όχι µόνο σταθερά πρόθυµος και άκρωςαποτελεσµατικός συνεργάτης, αλλά και πραγµατικός ϕίλος.Τέλος, αναµϕίβολα το µεγαλύτερο ευχαριστώ το οϕείλω στην οικογένειά µου, τη µητέρα µου Όλγακαι την αδερϕή µου Λήδα, που µε στήριξαν ουσιαστικά, υλικά και συναισθηµατικά κατά τη διδακτορικήµου διατριβή, όπως και σε όλα τα υπόλοιπα εγχειρήµατα της ζωής µου.Αθήνα, Ιούλιος 2006Νικόλαος ∆ροσινόςΗ παρούσα διδακτορική διατριβή αποτελεί υποέργο του προγράµµατος: «Ηράκλειτος: Υποτροϕίες έρευναςµε προτεραιότητα στην βασική έρευνα». Το Πρόγραµµα «ΗΡΑΚΛΕΙΤΟΣ» συγχρηµατοδοτείται απότο Ευρωπαϊκό Κοινοτικό Ταµείο (75%) και από Εθνικούς Πόρους (25%).e Project HRAKLEITOS is co-funded by <strong>the</strong> European Social Fund (75%) <strong>and</strong> National Resources (25%).


ΚΕΦΑΛΑΙΟ 1ΕισαγωγήΗ παρούσα εργασία στοχεύει στην έρευνα και προτυποποίηση αποδοτικών τεχνικών παραλληλοποίησηςαλγορίθµων ϕωλιασµένων βρόχων για σύγχρονες παράλληλες αρχιτεκτονικές. Εισαγωγικά, θαεπιχειρήσουµε να παρουσιάσουµε συνοπτικά τα κυριότερα ερευνητικά ζητήµατα, στα οποία εστιάζει ηδιατριβή, καθώς και να αποσαϕηνίσουµε τη συµβολή αυτής στην ανάδειξη και τεκµηρίωση νέων µεθόδωνκαι τεχνικών αξιοποίησης των σύγχρονων παράλληλων αρχιτεκτονικών. Σηµαντικό τµήµα τηςερευνητικής δραστηριότητας αναλώθηκε στην εις βάθος µελέτη της σχετικής σύγχρονης διεθνούς βιβλιογραϕίας,αποσκοπώντας αϕενός στη σχηµατοποίηση ενός πλαισίου αξιοποίησης ώριµης συναϕούςέρευνας στο χώρο του παράλληλου προγραµµατισµού και αϕετέρου στην επέκταση, επικαιροποίηση ήακόµα και αναθεώρηση πορισµάτων της σχετικής έρευνας υπό την τρέχουσα οπτική των σύγχρονωντεχνολογικών εξελίξεων.1.1 Αντικείµενο της ∆ιατριβήςΑντικείµενο της εργασίας αποτελεί η αξιοποίηση σύγχρονων αρχιτεκτονικών κατανεµηµένης µοιραζό-µενης µνήµης µέσω της εύρεσης αποδοτικών µοντέλων παραλληλοποίησης αλγορίθµων τέλεια ϕωλιασµένωνβρόχων. Οι αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης (Distributed Shared Memory- DSM) έχουν στην παρούσα ϕάση επικρατήσει στο χώρο του υπολογισµού υψηλών επιδόσεων. Τα κορυϕαίαυπολογιστικά συστήµατα της γνωστής λίστας TOP500 [DMS99] είναι κατ' ουσίαν DSM αρχιτεκτονικές,αποδεικνύοντας ότι τέτοιες αρχιτεκτονικές µπορούν να επιτύχουν επιχειρησιακά υψηλή από-


2 Εισαγωγήδοση, κοντά στις θεωρητικά µέγιστες τιµές. Οι συστοιχίες συµµετρικών πολυεπεξεργαστικών στοιχείων(SMP clusters) αποτελούν τον πλέον δηµοϕιλή εκπρόσωπο DSM αρχιτεκτονικής και χρησιµοποιούνταιευρέως σε κέντρα υπερυπολογιστών τόσο για ερευνητικούς όσο και για εµπορικούς σκοπούς. Οι SMPσυστοιχίες συνδυάζουν την επεκτασιµότητα των απλών συστοιχιών, ενώ παρέχουν επιπλέον τη δυνατότηταπολυεπεξεργασίας µέσω µοιραζόµενης µνήµης στο εσωτερικό κάθε κόµβου. Για αυτό το είδοςτων αρχιτεκτονικών, υπάρχει ζωηρό ερευνητικό ενδιαϕέρον όσον αϕορά στη διερεύνηση εναλλακτικώνπαράλληλων προγραµµατιστικών µοντέλων.Παραδοσιακά, το µοντέλο ανταλλαγής µηνυµάτων (message passing model) έχει επικρατήσει ως defacto προσέγγιση παραλληλοποίησης για πληθώρα αρχιτεκτονικών υψηλών επιδόσεων, καθώς επιτυγχάνειυψηλή απόδοση και επεκτασιµότητα (scalability) σε επιχειρησιακές συνθήκες. Ένας σηµαντικόςόγκος επιστηµονικών εϕαρµογών έχει ήδη παραλληλοποιηθεί µε επιτυχία µε τη βοήθεια βιβλιοθηκώνανταλλαγής µηνυµάτων, όπως κυρίως η διεπαϕή Message Passing Interface (MPI) αλλά και λιγότερο ηβιβλιοθήκη <strong>Parallel</strong> Virtual Machine (PVM), συχνά παρέχοντας γραµµικές ή ακόµα και υπερ-γραµµικές(super-linear) επιταχύνσεις. Μεγάλο ποσοστό του κώδικα που έχει παραλληλοποιηθεί µε το µοντέλοανταλλαγής µηνυµάτων αϕορά αλγορίθµους επαναληπτικής ϕύσεως (iterative algorithms), δηλαδή κατάκανόνα ϕωλιασµένους βρόχους που διατρέχουν ένα χώρο επαναλήψεων εκτελώντας υπολογισµούς.Η παραλληλοποίηση των αλγορίθµων αυτών µέσω ανταλλαγής µηνυµάτων µπορεί να επιτευχθεί βάσεικάποιας στρατηγικής διαµέρισης του χώρου των επαναλήψεων και καταµερισµού της εργασίας. Προςτην κατεύθυνση αυτή ιδιαίτερα χρήσιµος έχει αποδειχθεί ο µετασχηµατισµός υπερκόµβων (tiling trans<strong>for</strong>mation),ο οποίος έχει ήδη αποτελέσει αντικείµενο εκτενούς µελέτης στη σύγχρονη διεθνή βιβλιογραϕία.Εντούτοις, σε αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης ολοένα και συχνότερα εξετάζεταιη χρήση υβριδικών µοντέλων προγραµµατισµού (hybrid programming models). Γενικά, τα υβριδικάµοντέλα διατηρούν την επικοινωνία µέσω ανταλλαγής µηνυµάτων µεταξύ των διαϕορετικών πολυεπεξεργαστικώνκόµβων, αλλά καταϕεύγουν σε πολυνηµατική επεξεργασία µέσω µοιραζόµενης µνήµηςστο εσωτερικό κάθε κόµβου. ∆ιαισθητικά, τα µοντέλα αυτά ϕαίνεται να ταιριάζουν καλύτερα στην υποδοµήτων αρχιτεκτονικών κατανεµηµένης µοιραζόµενης µνήµης απ' ότι τα αντίστοιχα µοντέλα ανταλλαγήςµηνυµάτων, γιατί απαλείϕουν τη χρησιµοποίηση της χρονοβόρας επικοινωνίας µέσω µηνυµάτωνστις περιπτώσεις που υπάρχει η δυνατότητα γρηγορότερης πρόσβασης σε µοιραζόµενο χώρο µνήµης.Όµως, στην πράξη η υβριδική παραλληλοποίηση αποτελεί ανοιχτό ερευνητικό ζήτηµα, καθώς η αξιοποίησητης υϕιστάµενης αρχιτεκτονικής µέσω υβριδικών µοντέλων είναι σύνθετη και µη τετριµµένηδιαδικασία. Έτσι, κατά γενική οµολογία τα υβριδικά µοντέλα παραλληλισµού στην παρούσα ϕάση δενείναι τόσο διαδεδοµένα όσο το σύνηθες προγραµµατιστικό µοντέλο ανταλλαγής µηνυµάτων, που επιπλέονυποστηρίζεται από υψηλά βελτιστοποιηµένες βιβλιοθήκες επικοινωνίας.


1.2 Επισκόπηση Σχετικής Βιβλιογραϕίας 3Στο πλαίσιο της παρούσας εργασίας προτείνουµε αποδοτικά µοντέλα παραλληλοποίησης αλγορίθµωνϕωλιασµένων βρόχων, ήτοι ένα µοντέλο που χρησιµοποιεί ανταλλαγή µηνυµάτων, καθώς καιεναλλακτικά υβριδικά µοντέλα λεπτού και χονδρού κόκκου. Προς τη διασϕάλιση της υψηλής επίδοσηςτων παράλληλων µοντέλων προτείνουµε αϕενός µεθόδους για τον καθορισµό κατάλληλης τοπολογίαςαπεικόνισης των διεργασιών και αϕετέρου τεχνικές εξισορρόπησης του ϕορτίου µεταξύ των νηµάτωνγια το υβριδικό µοντέλο χονδρού κόκκου. Πιο συγκεκριµένα, υποθέτουµε αλγόριθµο ϕωλιασµένωνβρόχων διάστασης N + 1, που παραλληλοποιείται ως προς τις N εξωτερικές διαστάσεις και υλοποιείσειριακή εκτέλεση µε τη µέθοδο της σωλήνωσης (pipelining) κατά µήκος της πλέον εσωτερικής. Αποδεικνύουµεότι η επιλογή µιας κατάλληλης τοπολογίας για το N-διάστατο πλέγµα διεργασιών µπορείνα µειώσει σηµαντικά το συνολικό χρόνο εκτέλεσης και παρέχουµε µια αυτόµατη µέθοδο για τον καθορισµόµιας τέτοιας τοπολογίας. Επιπλέον, συγκρίνουµε διάϕορα υβριδικά µοντέλα λεπτού και χονδρούκόκκου και αναδεικνύουµε την αναγκαιότητα αποδοτικής εξισορρόπησης του ϕορτίου µεταξύ των νη-µάτων, ώστε να υπερκεραστούν οι ενδεχόµενοι περιορισµοί της βιβλιοθήκης ανταλλαγής µηνυµάτων.Αµϕότερες οι βελτιστοποιήσεις µπορούν εύκολα να υλοποιηθούν είτε σε επίπεδο µεταγλωττιστή είτε ωςσυναρτήσεις βιβλιοθήκης. Τέλος, συγκρίνουµε όλα τα µοντέλα, δίνοντας έµϕαση στη σύγκριση µεταξύτου µοντέλου ανταλλαγής µηνυµάτων και του υβριδικού µοντέλου χονδρού κόκκου, ώστε να εξαγάγουµεπιο γενικά συµπεράσµατα για τον παράλληλο προγραµµατισµό αρχιτεκτονικών κατανεµηµένηςµοιραζόµενης µνήµης.1.2 Επισκόπηση Σχετικής ΒιβλιογραϕίαςΟι ϕωλιασµένοι βρόχοι κατέχουν ήδη από τα τέλη της δεκαετίας του '80 κοµβικό ρόλο στην παραλληλοποίησηυπολογιστικά απαιτητικών εϕαρµογών. Εµπειρικά έχει διαπιστωθεί πως πολλοί αλγόριθµοικαταναλώνουν το µεγαλύτερο τµήµα του χρόνου εκτέλεσής τους µε τη διάσχιση δοµών επαναληπτικήςϕύσεως, όπως είναι οι ϕωλιασµένοι βρόχοι, αναδεικνύοντας έτσι τους τελευταίους σε βασικούςστόχους της προγραµµατιστικής βελτιστοποίησης. Είναι κοινός τόπος πως η κατάλληλη αναδιάταξητης ακολουθίας των βρόχων ή η αξιοποίηση της ιεραρχίας µνήµης κατά την προσπέλαση δεδοµένων σεϕωλιασµένους βρόχους µπορούν να επιταχύνουν σηµαντικά το χρόνο εκτέλεσης ενός προγράµµατος.Ως ϕυσικό επακόλουθο, η παραλληλοποίηση αλγορίθµων ϕωλιασµένων βρόχων αποτελεί ένα ιδιαίτεραδηµοϕιλές αντικείµενο της διεθνούς βιβλιογραϕίας, απόρροια της πρακτικής αξίας του ζητήµατος γιατην επιτάχυνση πολλών πραγµατικών εϕαρµογών. Μάλιστα, οι εξαρτήσεις που επιβάλλονται από τησηµασιολογία του αλγορίθµου κατά την προσπέλαση και τον υπολογισµό των δεδοµένων έχουν µοντελοποιηθείµαθηµατικά [Ban88, WL91b, Zig94], διακρίνοντας τους βρόχους σε DOALL, όπου υπάρχειεγγενής ανεξαρτησία µεταξύ των διαϕορετικών επαναλήψεων του βρόχου, και σε DOACROSS, όπου


4 Εισαγωγήη διασϕάλιση της ορθότητας του αλγορίθµου απαιτεί την υλοποίηση µηχανισµού συγχρονισµού καιεπικοινωνίας µεταξύ των ϕορέων της παράλληλης εκτέλεσης του προγράµµατος. Όπως είναι ϕανερό,η παραλληλοποίηση των DOALL βρόχων είναι σχετικά απλή διαδικασία, ενώ αντίθετα για τουςπερισσότερο σύνθετους DOACROSS βρόχους έχουν προταθεί πολυάριθµες τεχνικές αποδοτικής παραλληλοποίησης,κυρίως µέσω του µοντέλου ανταλλαγής µηνυµάτων και της διεπαϕής MPI.Ιδιαίτερη ώθηση στην αποδοτική παραλληλοποίηση των αλγορίθµων ϕωλιασµένων βρόχων προσέ-ϕερε η εισαγωγή του µετασχηµατισµού υπερκόµβων (tiling trans<strong>for</strong>mation) από τους Irigoin και Trioletτο 1988 [IT88]. Ο µετασχηµατισµός αυτός έχει χρησιµοποιηθεί τόσο για την αποδοτικότερη αξιοποίησητης τοπικότητας αναϕοράς δεδοµένων σε ϕωλιασµένους βρόχους όσο και για τη διαµέριση τουχώρου επαναλήψεων του αλγορίθµου σε όµοιες ατοµικές µονάδες, που µπορούν να διευκολύνουν τηδιαδικασία απεικόνισης του αρχικού προγράµµατος σε µια παράλληλη αρχιτεκτονική. Μεγάλος όγκοςεργασιών έχει ασχοληθεί µε το πρόβληµα της επιλογής του βέλτιστου µετασχηµατισµού υπερκόµβωνγια µια δεδοµένη αλγοριθµική περιγραϕή ϕωλιασµένων βρόχων [RS92,Zig94,TZ94,BDRR94,OSKO95,Xue97, HCF97, HS98, HS99, Hod99, HCF99, ACN + 00, HS02, XW02, HCF03, Γκο03]. Συνηθέστερα, οιεργασίες αυτές στοχεύουν στον καθορισµό τόσο του σχήµατος όσο και του µεγέθους του υπερκόµβου,βάσει ενός προβλήµατος βελτιστοποίησης ή συγκεκριµένων κριτηρίων.Για παράδειγµα, οι Ohta, Saito, Kainaga και Ono [OSKO95], οι Hodzic και Shang [HS98], καθώςκαι οι Andonov, Balev, Rajopadhye και Yanev [ABRY03] εστίασαν στην επιλογή του βέλτιστου µεγέθουςυπερκόµβου βάσει των χαρακτηριστικών της εξεταζόµενης εϕαρµογής και της υϕιστάµενης αρχιτεκτονικής.Οι Ramanujam και Sadayappan [RS92], οι Boulet, Darte, Risset και Robert [BDRR94]και ο Xue [Xue97] ασχολήθηκαν µε τον προσδιορισµό του σχήµατος υπερκόµβου που ελαχιστοποιείτον όγκο επικοινωνίας ανά υπερκόµβο, δηλαδή ουσιαστικά ελαχιστοποιεί το πλήθος των εξαρτήσεωνπου τέµνουν τις πλευρικές επιϕάνειες του υπερκόµβου. Στην περίπτωση αυτή, το βέλτιστο σχήµαυπερκόµβου ορίζεται από επίπεδα παράλληλα προς τον κώνο εξαρτήσεων του αλγορίθµου. Ιδιαίτερααξιοσηµείωτη είναι η δουλειά των Hodzic και Shang [HS98, HS02] και των Högstedt, Carter καιFerrante [HCF99, HCF03] που καθόρισαν το σχήµα του υπερκόµβου που ελαχιστοποιεί το συνολικόαριθµό των βηµάτων εκτέλεσης του παράλληλου αλγορίθµου. Εδώ ο µετασχηµατισµός υπερκόµβουελάχιστης καθυστέρησης προκύπτει καθορίζοντας αρχικά το βασικό σχήµα του υπερκόµβου (συνήθωςπαράλληλο προς τον κώνο εξαρτήσεων) και κλιµακώνοντας στη συνέχεια τις πλευρές του υπερκόµβου,ώστε να ελαχιστοποιηθεί το µέγιστο µονοπάτι εκτέλεσης µεταξύ του «πρώτου» και του «τελευταίου»υπερκόµβου.Ένα λεπτό ζήτηµα εντοπίζεται στη σύνδεση του εκάστοτε προτεινόµενου µετασχηµατισµού υπερκόµβωνµε την απεικόνιση και δροµολόγηση του παράλληλου αλγορίθµου σε µια συγκεκριµένη επεξεργαστικήυποδοµή. Πολλές από τις προαναϕερθείσες εργασίες προσδιορίζουν το σχήµα και το µέγεθος


1.2 Επισκόπηση Σχετικής Βιβλιογραϕίας 5του υπερκόµβου ανεξάρτητα π.χ. από το συνολικό πλήθος των διαθέσιµων επεξεργαστών. Έτσι, είναισυχνό το ϕαινόµενο είτε να προκύπτει δυσαναλογία µεταξύ του πλήθους των επεξεργαστών και εκείνουτων υπερκόµβων, στους οποίους διαµερίζεται ο χώρος επαναλήψεων του αλγορίθµου ϕωλιασµένωνβρόχων, είτε ακόµα και να καθορίζονται σχήµατα υπερκόµβων που διαϕέρουν από τη µορϕολογίατου χώρου επαναλήψεων ή/και του χώρου δεδοµένων, δυσκολεύοντας σε κάθε περίπτωση την ανάθεσητων υπερκόµβων στους διαθέσιµους επεξεργαστές. Στη διεθνή βιβλιογραϕία [OSKO95, CDR97,CDR99, BDRV99] προτείνεται ως βέλτιστο σχήµα απεικόνισης των υπερκόµβων στους επεξεργαστέςεκείνο της κυκλικής ανάθεσης κατά στήλες ή γραµµές υπερκόµβων (cyclic columnwise/rowwise tile allocation),καθώς επιτρέπει την προσοµοίωση του ϕαινοµένου της σωλήνωσης και την επικάλυψη τωνυπολογισµών µε την απαιτούµενη επικοινωνία [AKPT99, GSK01]. Πάντως, για τη συνήθη απλή περίπτωσηορθογώνιων χώρων επαναλήψεων και ορθογώνιων µετασχηµατισµών υπερκόµβων, το σχήµατης κυκλικής ανάθεσης παρουσιάζει σχετική προγραµµατιστική πολυπλοκότητα, που πηγάζει κυρίωςαπό το διαχωρισµό της επιλογής του µετασχηµατισµού υπερκόµβων από την υϕιστάµενη υπολογιστικήυποδοµή.Μια σχετικά καινούρια εξέλιξη στον παράλληλο προγραµµατισµό, που εµϕανίστηκε προς τα τέλητης δεκαετίας του '90, είναι η ανάπτυξη τεχνικών υβριδικής παραλληλοποίησης για τις πολυεπίπεδεςαρχιτεκτονικές υψηλών επιδόσεων. Θεωρητικά τουλάχιστον, η υβριδική παραλληλοποίηση αλγορίθµωνπαρουσιάζει συγκριτικά πλεονεκτήµατα σε σχέση µε τη συνήθη προσέγγιση της ανταλλαγήςµηνυµάτων, στην περίπτωση που η υϕιστάµενη αρχιτεκτονική ακολουθεί ιεραρχική δοµή διαϕοροποιώνταςπ.χ. το κόστος προσπέλασης των δεδοµένων στα διάϕορα επίπεδα της ιεραρχίας. Μιασηµαντική οµάδα ερευνητών έχει ασχοληθεί µε τη θεωρητική ανάλυση του υβριδικού µοντέλου παραλληλοποίησης,κυρίως µε χρήση του προτύπου MPI για την ανταλλαγή µηνυµάτων και του προτύπουOpenMP για την επίτευξη πολυνηµατικής επεξεργασίας. Στην εργασία [SB01] οι Smith καιBull πραγµατοποιούν µια πολύ καλή θεωρητική επισκόπηση των ιδιαιτεροτήτων και των προτερηµάτωντης υβριδικής παραλληλοποίησης έναντι του µοντέλου ανταλλαγής µηνυµάτων. Οι Rabenseifnerκαι Wellein [Rab02, Rab03, RW03] εστιάζουν κυρίως στην αξιοποίηση της δυνατότητας παροχής δεδοµένωντου δικτύου διασύνδεσης µέσω του υβριδικού µοντέλου. Οι Cappello, Etiemble, Richard καιKrawezik [CRE00,CE00,KC03a,KC03b] µελετούν την επίδοση του υβριδικού µοντέλου µε τη βοήθειατων δηµοϕιλών µετροπρογραµµάτων NAS <strong>Parallel</strong> Benchmarks (NPB) τόσο σε SMP συστοιχίες όσο καισε συστήµατα αµιγώς µοιραζόµενης µνήµης. Αντίστοιχα, οι Ayguadé, González,Martorell και Jost [AG-MJ04] και οι Wong, Jin και Becker [WJB04] θεωρούν τη multi-zone εκδοχή των µετροπρογραµµάτωνNPB (NPB-MZ) που ευνοεί την πολυεπίπεδη παραλληλοποίηση, και µεταξύ άλλων επισηµαίνουν τηναναγκαιότητα εξισορρόπησης του ϕορτίου των νηµάτων για την πλήρη αξιοποίηση του υβριδικού µοντέλου.Μάλιστα, στην εργασία [WM03] οι συγγραϕείς περιγράϕουν εργαλείο λογισµικού για την


6 Εισαγωγήανάλυση της επίδοσης υβριδικών προγραµµάτων.Η ερευνητική δραστηριότητα πάνω στην υβριδική παραλληλοποίηση αλγορίθµων δεν περιορίζεταιστη θεωρητική µελέτη και ανάλυση της επίδοσης µε χρήση µετροπρογραµµάτων, αλλά επεκτείνεταικαι στην εϕαρµογή της τεχνικής σε πραγµατικά προβλήµατα. Πράγµατι, παραδείγµατα εϕαρµογής τηςυβριδικής παραλληλοποίησης έχουν καταγραϕεί στη ρευστοδυναµική [GKKS00, Taf01, DK02, DK04,BDH + 02], την οπτική [Maj00, SEKBL04], τη γραµµική άλγεβρα [HD02, WHBF02], τη µετεωρολογία[LTD01], τη µοριακή δυναµική [Hen00,BDH + 02], τις αριθµητικές µεθόδους επίλυσης [Nak03,DGR05]κ.ά. Τα συµπεράσµατα για την αποδοτικότητα της υβριδικής προσέγγισης είναι σχετικά αµϕιλεγόµενα,καθώς σε κάποιες περιπτώσεις έχουν καταγραϕεί σηµαντικές βελτιώσεις, ενώ στις υπόλοιπες η σύνθετηυβριδική παραλληλοποίηση είτε αδυνατεί να υπερκεράσει σε απόδοση το µοντέλο ανταλλαγής µηνυ-µάτων ή ακόµα και υστερεί έναντι των ιδιαίτερα βελτιστοποιηµένων µονολιθικών MPI υλοποιήσεων.Σύµϕωνα µε τη βιβλιογραϕία, τα κυριότερα προτερήµατα του υβριδικού µοντέλου εντοπίζονταιαϕενός στην αξιοποίηση της µοιραζόµενης µνήµης για τη µείωση του χρόνου επικοινωνίας και αϕετέρουστη δυνατότητα εύκολης και αποδοτικής εξισορρόπησης του ϕορτίου µεταξύ των νηµάτων. Στηνπράξη, έχει διαπιστωθεί ότι η πολυνηµατική επεξεργασία ευνοεί τις περιπτώσεις εϕαρµογών που επιζητούνλεπτοµερή παραλληλοποίηση, καθώς έτσι µπορούν να αξιοποιηθούν αποδοτικότερα τόσο ηιεραρχία µνήµης µέσω της τοπικότητας αναϕοράς δεδοµένων όσο και οι δυνατότητες εξισορρόπησηςτου ϕορτίου των νηµάτων. Αντίθετα, η επικοινωνία µέσω ανταλλαγής µηνυµάτων ευνοείται κυρίως απόχονδροειδή παραλληλισµό, καθώς έτσι αµβλύνεται η παράλληλη επιβάρυνση της διαχείρισης των διεργασιώνκαι µετριάζεται το κόστος αρχικοποίησης της επικοινωνίας λόγω της αρχικής καθυστέρησης τουδικτύου. Το υβριδικό µοντέλο παρουσιάζει συχνά προβλήµατα στην επίδοση είτε λόγω συµϕόρησηςκατά την πρόσβαση στο κοινό υποσύστηµα µνήµης, είτε εξαιτίας των λιγότερο βελτιστοποιηµένων βιβλιοθηκώνπολυνηµατικής επεξεργασίας σε σχέση µε τις αντίστοιχες βιβλιοθήκες ανταλλαγής µηνυµάτων,είτε τέλος λόγω µη αποδοτικής εξισορρόπησης του ϕορτίου των νηµάτων κατά την απλή υβριδικήπροσέγγιση. Η σχετικά αυξηµένη προγραµµατιστική δυσκολία του υβριδικού µοντέλου έχει οδηγήσειστη σχεδόν αποκλειστική εµϕάνιση υβριδικών παραλληλοποιήσεων λεπτού κόκκου (fine-grain), όπουεϕαρµόζεται επαυξητική παραλληλοποίηση επιλεκτικά σε συγκεκριµένα τµήµατα του κώδικα ανταλλαγήςµηνυµάτων. Αντίθετα, οι υβριδικές υλοποιήσεις χονδρού κόκκου (coarse-grain), όπου υιοθετείταιένα SPMD προγραµµατιστικό µοντέλο εκτός των διεργασιών και ως προς τα νήµατα, είναι σχετικάπεριορισµένες, αϕού άλλωστε δεν υποστηρίζονται επαρκώς από τις υπάρχουσες MPI υλοποιήσεις.Συνοψίζοντας, ο προγραµµατισµός αρχιτεκτονικών κατανεµηµένης µοιραζόµενης µνήµης γενικότερα,καθώς και το υβριδικό µοντέλο παραλληλοποίησης ειδικότερα, θέτουν νέες προκλήσεις και αναθεωρούνσε κάποιο βαθµό τον τρόπο προσέγγισης των τεχνικών παραλληλοποίησης. Παρότι θεωρητικάτα υβριδικά µοντέλα προγραµµατισµού ϕαίνονται πιο κατάλληλα για τις πολυεπίπεδες ιεραρχι-


1.3 Συµβολή της ∆ιατριβής 7κές αρχιτεκτονικές υψηλών επιδόσεων, η πειραµατική αξιολόγηση αυτών καταδεικνύει πως η επίτευξηυψηλής απόδοσης µε το υβριδικό µοντέλο είναι πολύπλοκη διαδικασία, που απαιτεί αποδοτικές τεχνικέςχρονοδροµολόγησης και εξισορρόπησης ϕορτίου. Επίσης, ο βαθµός αποδοτικής πολυνηµατικήςυποστήριξης από τη µεριά της βιβλιοθήκης ανταλλαγής µηνυµάτων αποτελεί πολύ βασικό ζήτηµα: συχνά,η επίτευξη υψηλής απόδοσης µέσω υβριδικής παραλληλοποίησης είναι άρρηκτα συνδεδεµένη µετην αντιµετώπιση των περιορισµών που επιβάλλει η βιβλιοθήκη ανταλλαγής µηνυµάτων. Η παρούσαεργασία αποτελεί συνέχιση µακρόχρονης ερευνητικής δραστηριότητας στο Εργαστήριο ΥπολογιστικώνΣυστηµάτων του Ε.Μ.Π. σχετικά µε την αυτόµατη παραλληλοποίηση αλγορίθµων ϕωλιασµένωνβρόχων [AKPT99, GSK01, Γκο03, Σωτ04, Αθα05] και επιχειρεί να συνδέσει αποδοτικά την απεικόνισηαλγορίθµων ϕωλιασµένων βρόχων σε σύγχρονες παράλληλες αρχιτεκτονικές µε τις τεχνικές υβριδικούπρογραµµατισµού.1.3 Συµβολή της ∆ιατριβήςΗ παρούσα διατριβή αποτελεί προϊόν εκτενούς έρευνας σχετικά µε το ζήτηµα της αποδοτικής παραλληλοποίησηςαλγοριθµικών περιγραϕών ϕωλιασµένων βρόχων σε συστοιχίες πολυεπεξεργαστικών στοιχείων.Η πορεία και εξέλιξη της διατριβής επηρεάστηκε σε µεγάλο βαθµό αϕενός από την επικράτησητων ευέλικτων αρχιτεκτονικών κατανεµηµένης µοιραζόµενης µνήµης και αϕετέρου από τη διευρυµένηχρήση δηµοϕιλών προγραµµατιστικών διεπαϕών, όπως το MPI, για την παραλληλοποίηση υπολογιστικάή/και χωρικά απαιτητικών αλγορίθµων. Εστιάζοντας λοιπόν στην πολυπληθή κατηγορία των πλήρωςαντιµεταθέσιµων βρόχων, η διατριβή προτείνει ολοκληρωµένες µεθόδους αποδοτικής παραλληλοποίησηςγια τις αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης. Πιο συγκεκριµένα, η συµβολήτης διατριβής εντοπίζεται στους εξής άξονες:• Περιγράϕεται µια ολοκληρωµένη µέθοδος για τον καθορισµό µιας κατάλληλης εικονικής τοπολογίαςδιεργασιών, που µπορεί να χρησιµοποιηθεί για την παράλληλη απεικόνιση ενός πολυδιάστατουαλγορίθµου ϕωλιασµένων βρόχων. Η µέθοδος αποσκοπεί στην ελαχιστοποίηση τουόγκου των δεδοµένων επικοινωνίας που ανταλλάσσει µια τυχούσα διεργασία µε τις γειτονικέςτης. Έτσι, επιχειρεί να αµβλύνει τις καθυστερήσεις που σχετίζονται µε το σηµαντικό κόστος επικοινωνίαςτέτοιων παράλληλων αλγορίθµων σε κατανεµηµένα περιβάλλοντα, ιδίως σε συµβατικάδίκτυα διασύνδεσης. Θεωρώντας ως βασική παραδοχή το ρεαλιστικό περιορισµό της ύπαρξηςενός συγκεκριµένου, πεπερασµένου πλήθους διεργασιών P για την παράλληλη εκτέλεση τουαλγορίθµου, η προτεινόµενη µέθοδος λαµβάνει υπόψη το χώρο επαναλήψεων και τις εξαρτήσειςδεδοµένων ενός αλγορίθµου ϕωλιασµένων βρόχων διάστασης N +1 και προσδιορίζει κατάλληληN-διάστατη εικονική τοπολογία διεργασιών P = P 1 × · · · × P N για την παράλληλη απεικόνιση


8 Εισαγωγήτου αλγορίθµου αυτού.• Ισοδύναµα, περιγράϕεται αυτόµατη τεχνική για τον υπολογισµό κατάλληλου µετασχηµατισµούυπερκόµβων, που ελαχιστοποιεί την επικοινωνία µεταξύ διεργασιών κατά την παράλληλη εκτέλεσητου προγράµµατος σε πεπερασµένο πλήθος διεργασιών. Αναδεικνύεται ο ισοµορϕισµόςµεταξύ των δύο προβληµάτων, δηλαδή αυτού της επιλογής κατάλληλης καρτεσιανής τοπολογίαςδιεργασιών και εκείνου του προσδιορισµού κατάλληλου µετασχηµατισµού υπερκόµβων. Έτσι,συσχετίζεται η ιδιαίτερα δηµοϕιλής παράλληλη προγραµµατιστική πρακτική διανυσµατοποίησηςτου χώρου των διεργασιών, που συνταιριάζει αρµονικά τις µονάδες εκτέλεσης του παράλληλουπρογράµµατος µε το ϕυσικό πεδίο εϕαρµογής (application domain) του προβλήµατος, µε ένανιδιαίτερα διαδεδοµένο µη γραµµικό µετασχηµατισµό της διεθνούς βιβλιογραϕίας, το µετασχηµατισµόυπερκόµβων. Ο προτεινόµενος µετασχηµατισµός συγκρίνεται πειραµατικά µε τη συνήθηπρακτική, που αποσκοπεί στην ελαχιστοποίηση του αριθµού των παράλληλων βηµάτων εκτέλεσης,χωρίς όµως να λαµβάνει υπόψη τη ϕύση του συγκεκριµένου υπό παραλληλοποίηση αλγορίθ-µου (χώρος επαναλήψεων, εξαρτήσεις δεδοµένων). Στο πλαίσιο της πειραµατικής αξιολόγησης,καταγράϕονται σηµαντικές βελτιώσεις της επίδοσης του προγράµµατος κατά την υιοθέτηση τηςπροτεινόµενης τοπολογίας διεργασιών.• Γίνεται εκτενής προτυποποίηση, διερεύνηση και αξιολόγηση διαϕορετικών τεχνικών υβριδικήςπαραλληλοποίησης για τους αλγορίθµους ϕωλιασµένων βρόχων. Συγκεκριµένα, προδιαγρά-ϕονται υλοποιήσεις σε MPI-OpenMP λεπτού κόκκου, όπου εϕαρµόζεται επιλεκτικά επαυξητικήπαραλληλοποίηση υπολογιστικά απαιτητικών τµηµάτων του κώδικα ανταλλαγής µηνυµάτωνµε χρήση οδηγιών πολυνηµατικής επεξεργασίας. Επιπλέον, προτείνονται και προδιαγράϕονταιυβριδικές υλοποιήσεις χονδρού κόκκου, στις οποίες η πολυνηµατική ροή εκτέλεσης υιοθετείταισχεδόν στο σύνολο του προγράµµατος µε κάθε νήµα να διαχωρίζει το υποσύνολο δεδοµένωνκαι λειτουργιών του βάσει του µοναδικού αναγνωριστικού του κατά το SPMD πρότυπο, παρό-µοια µε τις διεργασίες στο µοντέλο ανταλλαγής µηνυµάτων. Εξετάζεται η περίπτωση τόσο τηςπλήρους όσο και της µερικής πολυνηµατικής υποστήριξης από τη µεριά της βιβλιοθήκης ανταλλαγήςµηνυµάτων, ανάλογα µε το κατά πόσο είναι επιτρεπτό να γίνονται κλήσεις σε λειτουργίεςεπικοινωνίας εντός της εµβέλειας πολυνηµατικών περιοχών. Παράλληλα, εντοπίζονται και επισηµαίνονταιτα εγγενή µειονεκτήµατα της πιο συχνά χρησιµοποιούµενης προσέγγισης υβριδικούπρογραµµατισµού, που σε αρκετές περιπτώσεις ακυρώνουν πολλά από τα πλεονεκτήµατα αυτού,καταλήγοντας ακόµα και σε χειρότερη επίδοση σε σχέση µε τη µονολιθική παραλληλοποίηση µέσωανταλλαγής µηνυµάτων.• Προτείνονται τεχνικές αποδοτικής εξισορρόπησης του ϕορτίου των νηµάτων στο υβριδικό µο-


1.4 Οργάνωση της ∆ιατριβής 9ντέλο. Η υιοθέτηση τέτοιων τεχνικών κρίνεται επιτακτική για την περίπτωση της µερικής πολυνηµατικήςυποστήριξης, που στην παρούσα ϕάση προσϕέρεται σχεδόν από το σύνολο των διαθέσιµωνMPI υλοποιήσεων, ενώ µπορεί να αµβλύνει την επιβάρυνση στην περίπτωση της πλήρουςπολυνηµατικής υποστήριξης, που προσϕέρεται σε λίγες περιπτώσεις υλοποιήσεων MPI εµπορικούτύπου. Οι προτεινόµενες τεχνικές εξισορρόπησης ϕορτίου δίνουν έµϕαση στην απλότητακαι την εϕαρµοσιµότητα και επιτρέπουν στις υβριδικές υλοποιήσεις να επιτυγχάνουν χαµηλότερουςχρόνους εκτέλεσης σε σχέση µε τη µονολιθική παραλληλοποίηση ανταλλαγής µηνυµάτων.Η δυνατότητα για ένα ιδιαίτερα αποδοτικό υβριδικό προγραµµατιστικό µοντέλο είναι πολύ επιθυµητή,καθώς µεταξύ άλλων συµβάλλει στην ευελιξία επιλογής τρόπου παραλληλοποίησης ανάπερίπτωση αλγορίθµου, παρέχοντας µεγαλύτερη ελευθερία επιλογής τόσο της τοπολογίας τωνδιεργασιών όσο και εκείνης των νηµάτων. Τα δύο επίπεδα βελτιστοποίησης, δηλαδή αυτό της παράλληληςαπεικόνισης σε τοπολογία διεργασιών, καθώς και εκείνο της εξισορρόπησης του ϕορτίουτων νηµάτων, είναι ορθογώνια και έτσι τα επιµέρους οϕέλη που αποδίδουν σε ό,τι αϕοράστη µείωση των χρόνων εκτέλεσης λειτουργούν αθροιστικά.• Όλες οι προτεινόµενες τεχνικές και βελτιστοποιήσεις εϕαρµόζονται και αξιολογούνται κατά τηνπαραλληλοποίηση πραγµατικών εϕαρµογών, που ως επί το πλείστον προέρχονται από το χώροτων Μερικών ∆ιαϕορικών Εξισώσεων. Η σύνδεση οποιασδήποτε προγραµµατιστικής µεθοδολογίαςµε υπαρκτά προβλήµατα από άλλα επιστηµονικά πεδία αποτελεί άλλωστε και τον απώτεροστόχο στο χώρο της Παράλληλης Επεξεργασίας.1.4 Οργάνωση της ∆ιατριβήςΣτο παρόν κεϕάλαιο παρουσιάζεται συνοπτικά το αντικείµενο της διατριβής. Επιχειρείται βιβλιογρα-ϕική επισκόπηση της θεµατικής περιοχής και επισηµαίνεται η συµβολή της διατριβής στο ζήτηµα τηςαποδοτικής παραλληλοποίησης αλγορίθµων ϕωλιασµένων βρόχων σε αρχιτεκτονικές κατανεµηµένηςµοιραζόµενης µνήµης. Επίσης, καταγράϕονται οι δηµοσιεύσεις που προέκυψαν κατά την εκπόνηση τηςδιατριβής.Στο Κεϕάλαιο 2 γίνεται εισαγωγή στο χώρο της Παράλληλης Επεξεργασίας, τόσο από τη σκοπιάτων αρχιτεκτονικών υψηλών επιδόσεων όσο και αναϕορικά µε τα βασικότερα µοντέλα παράλληλουπρογραµµατισµού.Στο Κεϕάλαιο 3 προσδιορίζεται θεωρητικά το εξεταζόµενο αλγοριθµικό µοντέλο. Ορίζονται θεµελιώδειςέννοιες για την παραλληλοποίηση αλγορίθµων ϕωλιασµένων βρόχων, όπως ο χώρος επαναλήψεωνκαι οι εξαρτήσεις δεδοµένων. Επιπλέον, γίνεται αναϕορά στη διακριτοποίηση Μερικών ∆ιαϕορικώνΕξισώσεων, που συνιστούν µια τυπική κατηγορία αλγοριθµικών περιγραϕών στις οποίες µπορούν


10 Εισαγωγήνα εϕαρµοστούν οι προτεινόµενες τεχνικές παραλληλοποίησης.Στο Κεϕάλαιο 4 παρουσιάζεται ο µετασχηµατισµός υπερκόµβων, που χρησιµοποιούµε για την επίτευξηχονδροειδούς παραλληλισµού σε αρχιτεκτονικές κατανεµηµένης µνήµης, και περιγράϕεται µέθοδοςπαραλληλοποίησης αλγορίθµων πλήρως αντιµεταθέσιµων βρόχων µέσω ανταλλαγής µηνυµάτωνµε δυνατότητα επικάλυψης υπολογισµού και επικοινωνίας. Προτείνεται µια αυτόµατη τεχνική για τονκαθορισµό εικονικής τοπολογίας απεικόνισης διεργασιών ελάχιστης επικοινωνίας συναρτήσει του χώρουεπαναλήψεων και των εξαρτήσεων δεδοµένων του αλγορίθµου. Επισηµαίνεται η ισοδυναµία τηςπροτεινόµενης τοπολογίας µε τον καθορισµό µετασχηµατισµού υπερκόµβων που ελαχιστοποιεί το συνολικόόγκο επικοινωνίας µεταξύ των διεργασιών.Στο Κεϕάλαιο 5 προτείνονται τεχνικές υβριδικής παραλληλοποίησης του υπό εξέταση αλγοριθµικούµοντέλου. Αναλυτικότερα, περιγράϕονται τα επίπεδα πολυνηµατικής υποστήριξης που παρέχουνοι βιβλιοθήκες ανταλλαγής µηνυµάτων και εϕαρµόζεται η χρονοδροµολόγηση υπερεπιπέδων για τηνυλοποίηση εναλλακτικών υβριδικών µοντέλων τόσο λεπτού όσο και χονδρού κόκκου (εκδοχές funneledκαι multiple). Προτείνονται τεχνικές στατικής και δυναµικής εξισορρόπησης του υπολογιστικούϕορτίου µεταξύ των νηµάτων για τη συνήθη περίπτωση της περιορισµένης πολυνηµατικής υποστήριξης.Επιχειρείται θεωρητική σύγκριση των χρόνων εκτέλεσης του µοντέλου ανταλλαγής µηνυµάτων µετον αντίστοιχο χρόνο εκτέλεσης κατά την υβριδική παραλληλοποίηση, ώστε να διερευνηθούν θεωρητικάοι δυνατότητες για επίτευξη υψηλής επίδοσης µέσω της υλοποίησης βελτιστοποιηµένων υβριδικώνµοντέλων.Στο Κεϕάλαιο 6 πραγµατοποιείται πειραµατική αξιολόγηση των εναλλακτικών µοντέλων παραλληλοποίησηςκαι των προτεινόµενων τεχνικών βελτιστοποίησης. Συγκεκριµένα, διερευνούµε το συνολικόχρόνο παράλληλης εκτέλεσης του µοντέλου ανταλλαγής µηνυµάτων κατά την επιλογή αϕενός της τοπολογίαςδιεργασιών ελάχιστης καθυστέρησης και αϕετέρου της προτεινόµενης τοπολογίας ελάχιστηςεπικοινωνίας. Στη συνέχεια, επιχειρείται σύγκριση της επίδοσης των υβριδικών µοντέλων παραλληλοποίησηςκαι αξιολόγηση της αποτελεσµατικότητας των τεχνικών εξισορρόπησης ϕορτίου. Τέλος, παρουσιάζεταισυνολική σύγκριση της επίδοσης όλων των παράλληλων προγραµµατιστικών µοντέλωνκαι αξιολογούνται οι βελτιώσεις που µπορούν να επιτευχθούν µε χρήση των προτεινόµενων µεθόδωνκαι τεχνικών.Στο Κεϕάλαιο 7 ολοκληρώνεται η διατριβή µε σύνοψη και παρουσίαση όλων των συµπερασµάτωνπου προέκυψαν, ενώ παράλληλα προτείνονται µελλοντικές κατευθύνσεις συνέχισης της ερευνητικήςδραστηριότητας.


DOI: DOI: 1.5 ∆ηµοσιευµένες Εργασίες 111.5 ∆ηµοσιευµένες ΕργασίεςΗ ερευνητική δραστηριότητα αποτυπώθηκε σε µια σειρά εργασιών, που δηµοσιεύτηκαν ή έχουν γίνειαποδεκτές για δηµοσίευση σε διεθνή συνέδρια και περιοδικά που ακολουθούν τη µέθοδο των κριτών.Ακολούθως παρατίθενται επιλεγµένες ερευνητικές εργασίες, που εκπονήθηκαν στο πλαίσιο της διδακτορικήςδιατριβής. Για πληρότητα, όπου υπάρχουν, παρέχονται επιπλέον και οι σχετικοί υπερσύνδεσµοιστα ψηϕιακά αναγνωριστικά αντικειµένου (digital object identifiers - DOI), ώστε ο ενδιαϕερόµενοςαναγνώστης να µπορεί να αναζητήσει τις σχετικές εργασίες στο ∆ιαδίκτυο.• ∆ηµοσιεύσεις σε περιοδικά:1. N. Drosinos <strong>and</strong> N. Koziris. Efficient Hybrid <strong>Parallel</strong>ization of Tiled Algorithms on SMPClusters. Accepted <strong>for</strong> publication on <strong>the</strong> International Journal of Computational Science<strong>and</strong> Engineering, 2006.2. N. Drosinos <strong>and</strong> N. Koziris. e Effect of Process Topology <strong>and</strong> Load Balancing on <strong>Parallel</strong>Programming Models <strong>for</strong> SMP Clusters <strong>and</strong> Iterative Algorithms. In Journal of Supercomputing,35(1):65–91, January 2006.¦©¦ !¡"#£©¨$!%¤&'(%¤&©&)©©¥!%%¤**©)©+$&&©,©+-%©%¤.,©+/3. G. Goumas, N. Drosinos, M. Athanasaki, <strong>and</strong> N. Koziris. Message-Passing <strong>Code</strong> Generation<strong>for</strong> Non-rectangular Tiling Trans<strong>for</strong>mations. Accepted <strong>for</strong> publication on <strong>the</strong> Journal of<strong>Parallel</strong> Computing, 2006.• ∆ηµοσιεύσεις σε συνέδρια:1. N. Drosinos, G. Goumas <strong>and</strong> N. Koziris. Selecting <strong>the</strong> Tile Shape to Reduce <strong>the</strong> Total CommunicationVolume. In Proceedings of <strong>the</strong> 20th International <strong>Parallel</strong> <strong>and</strong> Distributed ProcessingSymposium 2006 (IPDPS 2006), Rhodes, Greece, April 2006.2. N. Drosinos <strong>and</strong> N. Koziris. Load Balancing Hybrid Programming Models <strong>for</strong> SMP Clusters<strong>and</strong> Fully P ermutable Loops. In Proceedings of <strong>the</strong> 7th International Workshop on High Per<strong>for</strong>manceScientific <strong>and</strong> Engineering Computing (ICPP-HPSEC 2005), pages 113–120, Oslo,Norway, June 2005.¦©¦ !¡"#£©¨$!%¤&'(%%0&1©203445#*&©&.687$,3. N. Drosinos <strong>and</strong> N. Koziris. Per<strong>for</strong>mance Comparison of Pure MPI vs Hybrid MPI-OpenMP<strong>Parallel</strong>ization Models on SMP Clusters. In Proceedings of <strong>the</strong> 18th International <strong>Parallel</strong> <strong>and</strong>Distributed Processing Symposium 2004 (IPDPS 2004), page 15, Santa Fe, New Mexico, April


DOI: DOI: DOI: DOI: 12 Εισαγωγή2004.¦©¦$¡"9¡;:©©¦£¢¥¡¦4?6@*&&7A(%¤B©&*1¢%014. G. Goumas, N. Drosinos, M. Athanasaki, <strong>and</strong> N. Koziris. <strong>Automatic</strong> <strong>Parallel</strong> <strong>Code</strong> Generation<strong>for</strong> Tiled Nested Loops. In Proceedings of <strong>the</strong> 2004 ACM Symposium on Applied Computing(SAC 2004), pages 1412–1419, Nicosia, Cyprus, March 2004.¦©¦$¡"#C=:D#£¨$¢%¤&6(%©%=7.©1,)©1&&6@1,E¢%0E75. N. Drosinos <strong>and</strong> N. Koziris. Advanced Hybrid MPI/OpenMP <strong>Parallel</strong>ization Paradigms <strong>for</strong>Nested Loop Algorithms onto Clusters of SMPs. In Proceedings of <strong>the</strong> 10th EuroPVM/MPIConference 2003 (EuroPVM/MPI 2003), pages 203–213, Venice, Italy, September 2003.¦©¦A !¡"#£©¨$!%0&6(%¤&©&)©0FG%=7&©)&6. N. Drosinos, G. Goumas, M. Athanasaki, <strong>and</strong> N. Koziris. Delivering High Per<strong>for</strong>mance to<strong>Parallel</strong> Applications Using Advanced Scheduling. In Proceedings of <strong>the</strong> <strong>Parallel</strong> Computing2003 (ParCo 2003), pages 233–240, Dresden, Germany, September 2003.7. G. Goumas, N. Drosinos, M. Athanasaki, <strong>and</strong> N. Koziris. Compiling Tiled Iteration Spaces<strong>for</strong> Clusters. In Proceedings of <strong>the</strong> IEEE International Conference on Cluster Computing, pages360–369, Chicago, Illinois, September 2002.¦©¦$¡"9¡;:©©¦£¢¥¡¦


ΚΕΦΑΛΑΙΟ 2Παράλληλη ΕπεξεργασίαΟ χώρος της παράλληλης επεξεργασίας έχει ιδιαίτερη χρησιµότητα για τη σύγχρονη επιστηµονική κοινότητα,καθώς στοχεύει στη γεϕύρωση των προσϕερόµενων υπολογιστικών δυνατοτήτων, που καθορίζονταιαπό τις σύγχρονες τεχνολογικές εξελίξεις, µε τις υπολογιστικές απαιτήσεις, που επιβάλλουνοι ποικιλόµορϕες επιστηµονικές εϕαρµογές. Σχηµατικά, θα µπορούσαµε να κάνουµε ένα διαχωρισµόµεταξύ του αρχιτεκτονικού σκέλους της παράλληλης επεξεργασίας, που αναϕέρεται στις εναλλακτικέςυπολογιστικές υποδοµές, και των µοντέλων του παράλληλου προγραµµατισµού, που υιοθετούνται κατάτην παραλληλοποίηση αλγορίθµων. Μολονότι τα δύο αυτά ζητήµατα είναι άρρηκτα συνδεδεµέναµεταξύ τους, καθώς ουσιαστικά συνδέονται από την αναγκαιότητα συγκερασµού του υλοποιούµενουλογισµικού µε το υϕιστάµενο υλικό, θα ακολουθήσουµε τον παραπάνω διαχωρισµό προς απλούστευσητης ανάλυσής µας.2.1 Αρχιτεκτονικές Παράλληλης ΕπεξεργασίαςΩς παράλληλη αρχιτεκτονική νοείται ένα πεπερασµένο σύνολο µονάδων επεξεργασίας (processingunits), που επικοινωνούν µεταξύ τους για την επίλυση ενός προβλήµατος αυξηµένης χωρικής ή/και χρονικήςπολυπλοκότητας. Η εξέλιξη των αρχιτεκτονικών παράλληλης επεξεργασίας έχει να παρουσιάσειµια µεγάλη ποικιλοµορϕία αρχιτεκτονικών προσεγγίσεων, από ογκώδεις και ακριβούς υπερυπολογιστέςειδικής χρήσεως (special-purpose supercomputers), µέχρι συστοιχίες χιλιάδων κόµβων, διασυνδεδεµένωνµε ένα ή περισσότερα δίκτυα σε µία ή περισσότερες δικτυακές τοπολογίες (π.χ. δενδρική,


14 Παράλληλη Επεξεργασίαυπερκύβου, πλέγµατος κ.ά.). Προς την κατεύθυνση µιας έγκριτης καταγραϕής των διαϕόρων υπολογιστικώνσυστηµάτων υψηλών επιδόσεων, η λίστα TOP500 [DMS99] ενηµερώνεται από το 1993 δύοϕορές το χρόνο και διατηρεί µια κατάταξη των 500 ισχυρότερων υπολογιστικών συστηµάτων παγκοσµίως,µε κριτήριο την επίδοση των συστηµάτων αυτών στο µετροπρόγραµµα Linpack.Παρά την πλούσια ποικιλοµορϕία των υπερυπολογιστικών συστηµάτων, έγινε εξαρχής εµϕανής ηδυνατότητα οµαδοποίησης αυτών σε δύο θεµελιώδεις κατηγορίες, µε γνώµονα το αν παρέχεται απότο υλικό ένας κοινός, καθολικός χώρος διευθύνσεων µνήµης ή όχι. Θα πρέπει δε να τονιστεί πωςη διάκριση αυτή είναι ιδιαίτερα ουσιαστική σε ό,τι αϕορά τον προγραµµατισµό τέτοιων συστηµάτωνκαι έτσι αναϕερόµαστε συχνά σε αρχιτεκτονικές µοιραζόµενης µνήµης και αρχιτεκτονικές κατανεµη-µένης µνήµης. Τα τελευταία χρόνια έχει επικρατήσει µια τρίτη, υβριδική αρχιτεκτονική, που υιοθετείτην προσέγγιση της µοιραζόµενης µνήµης σε χαµηλότερο επίπεδο, ενώ προσοµοιάζει στην αρχιτεκτονικήκατανεµηµένης µνήµης σε ένα δεύτερο, υψηλότερο επίπεδο. Η προσέγγιση αυτή χαρακτηρίζεταιως αρχιτεκτονική κατανεµηµένης µοιραζόµενης µνήµης.2.1.1 Αρχιτεκτονική Κατανεµηµένης ΜνήµηςΣτην αρχιτεκτονική κατανεµηµένης µνήµης κάθε υπολογιστικός κόµβος του συστήµατος διαθέτει τηδική του τοπική µνήµη (local memory), στην οποία δεν παρέχεται άµεση πρόσβαση µέσω του υλικούστους άλλους κόµβους. Έτσι, προκειµένου να ανταλλάξουν δεδοµένα δύο κόµβοι, συνήθως προτείνονταιοι εξής δύο εναλλακτικές προσεγγίσεις:• Η υλοποίηση µε χρήση λογισµικού/µεσισµικού ενός εικονικού καθολικού χώρου διευθύνσεων(Distributed Shared Virtual Memory - DSVM, συχνά χαρακτηρίζεται και Soware DistributedShared Memory - SDSM). Οι εϕαρµογές που εκτελούνται σε διαϕορετικούς κόµβους µπορούν ναεπικοινωνούν µε συνήθεις λειτουργίες ανάγνωσης και εγγραϕής, αξιοποιώντας το DSVM υπόστρωµα.Ουσιαστικά, το DSVM υπόστρωµα αναλαµβάνει να υλοποιήσει σε επίπεδο λογισµικούπαρόµοια λειτουργικότητα µε εκείνη που παρέχεται στα συστήµατα µοιραζόµενης µνήµης σε επίπεδουλικού.• Η ρητή (explicit) κλήση ρουτινών επικοινωνίας µέσω δικτύου, είτε για την ανταλλαγή µηνυµάτων(message passing), είτε για την υλοποίηση αποµακρυσµένης προσπέλασης σε µνήµη (remotememory access - RMA). Στην πρώτη περίπτωση αναϕερόµαστε σε αµϕίδροµη επικοινωνία (twosidedcommunication), ενώ στη δεύτερη σε µονόδροµη επικοινωνία (one-sided communication).Η προσέγγιση αυτή έχει άµεσο αντίκτυπο στη σχεδίαση του λογισµικού τέτοιων αρχιτεκτονικών,καθώς πρέπει να γίνεται σαϕής διαχωρισµός µεταξύ των ϕάσεων τοπικής επεξεργασίας και απο-µακρυσµένης δικτυακής προσπέλασης δεδοµένων.


π2.1 Αρχιτεκτονικές Παράλληλης Επεξεργασίας 15κό µβ ος 1κό µβ ος 2κό µβ ος Νκρ υφ ήµν ή µη( c a c h e )c a c h ec a c h eεπ εξ ερ γασ τή ς( C P U )κύρ ια µν ή µη( R A M )C P UR A M...C P UR A Mρ οσ αρ µογέαςδικτύου ( N I C )N I CN I Cδί κτυο διασ ύν δεσ η ς ( π . χ . E t h e r n e t , M y r i n e t , S C I , I n f i n i b a n d )µεταγωγέας δικτύου( s w i t c h )Σχήµα 2.1: Αρχιτεκτονική κατανεµηµένης µνήµηςΣχηµατικά, η αρχιτεκτονική κατανεµηµένης µνήµης προσοµοιάζει εκείνη του σχήµατος 2.1. ∆ηµο-ϕιλέστερη εκδοχή της αρχιτεκτονικής κατανεµηµένης µνήµης είναι η συστοιχία υπολογιστών (clusterof computers), όπου κάθε επεξεργαστικός κόµβος διαθέτει τη δική του τοπική µνήµη RAM. Οι κόµβοιδιασυνδέονται µέσω κάποιου δικτύου διασύνδεσης (interconnection network), το οποίο επιτρέπει τηνυλοποίηση µεθόδων επικοινωνίας µεταξύ των διαϕορετικών κόµβων.Στη συγκεκριµένη αρχιτεκτονική είναι σαϕές πως το δίκτυο διασύνδεσης έχει κοµβικό ρόλο, γι' αυτόκαι θα αναϕερθούµε περαιτέρω στα βασικά στοιχεία που το χαρακτηρίζουν, ήτοι την αρχική καθυστέρηση(latency) και τη δυνατότητα παροχής (b<strong>and</strong>width). Η αρχική καθυστέρηση ενός δικτύου διασύνδεσηςt startup σχετίζεται µε την επιβάρυνση που επιϕέρει το δίκτυο κατά τη µετάδοση της ελάχιστης ποσότηταςδεδοµένων µεταξύ δύο κόµβων και αποτελεί συνισταµένη της επιβάρυνσης λόγω ενδιάµεσωναντιγραϕών και επεξεργασίας των δεδοµένων επικοινωνίας, σε επίπεδο υλικού και λογισµικού. Επειδήείναι πρακτικά δύσκολο να εκτιµήσουµε επακριβώς την αρχική καθυστέρηση ενός δικτύου διασύνδεσης,συνήθως αυτή προσεγγιστικά εξισώνεται µε το χρόνο round-trip (round-trip time). Έτσι, θεωρού-


16 Παράλληλη Επεξεργασίαµε την αρχική καθυστέρηση πρακτικά σταθερή και ίση µε το χρόνο που απαιτείται για την ανταλλαγήτου µηνύµατος µε το ελάχιστο µέγεθος του ενός byte µεταξύ δύο κόµβων για ένα µεγάλο πλήθος επαναλήψεων,διαιρεµένο δια του δύο (µονόδροµη καθυστέρηση) και δια του πλήθους των επαναλήψεων.Η δυνατότητα παροχής B παρέχει ένα µέτρο της µέγιστης δυνατότητας µετάδοσης δεδοµένων απότο δίκτυο διασύνδεσης. Προκειµένου η δυνατότητα παροχής να διαχωριστεί από την αρχική καθυστέρησητου δικτύου διασύνδεσης, θεωρούµε µια µεγάλη ποσότητα δεδοµένων (θεωρητικά άπειρη), τηνοποία επιθυµούµε να στείλουµε από κάποιο κόµβο σε κάποιο άλλο αποµακρυσµένο κόµβο µέσω τουδικτύου διασύνδεσης. Ο λόγος του πλήθους των δεδοµένων προς το χρόνο που απαιτείται για τη µετάδοσήτους µέσω του δικτύου διασύνδεσης ορίζει τη δυνατότητα παροχής του δικτύου. Π.χ., στοδηµοϕιλές 100 Mbps FastE<strong>the</strong>rnet, η δυνατότητα παροχής ορίζεται ως B = 100 Mbps ή B = 12.5MB/s. Θεωρητικά συνεπώς, αν αποστέλλαµε πολύ µεγάλη ποσότητα δεδοµένων D µέσω του δικτύουFastE<strong>the</strong>rnet θα χρειαζόταν χρόνος ίσος µε D/B για να ϕτάσουν τα δεδοµένα στον προορισµό τους.Στην πράξη, η δυνατότητα παροχής παρέχει ένα εξιδανικευµένο µέτρο της ταχύτητας του δικτύουδιασύνδεσης, καθώς σε επίπεδο εϕαρµογής η ταχύτητα µετάδοσης των δεδοµένων εξαρτάται καιαπό την αρχική καθυστέρηση του δικτύου. Για να πάρουµε ένα πιο ρεαλιστικό µέτρο της επίδοσης τουδικτύου, ορίζουµε το ρυθµό παροχής (throughput) ως το πηλίκο µιας ποσότητας δεδοµένων που αποστέλλονταιπρος τον πραγµατικό χρόνο που καταγράϕεται σε επίπεδο εϕαρµογής. Ο ρυθµός παροχήςB sustained είναι συνάρτηση του πλήθους των δεδοµένων επικοινωνίας, καθώς σε λιγότερα δεδοµέναγίνεται περισσότερο εµϕανής η αρχική καθυστέρηση του δικτύου διασύνδεσης. Σε όλες τις περιπτώσειςπάντως, θα ισχύει προϕανώς B sustained ≤ B. Συνήθως, ο ρυθµός παροχής δικτύου για κάποιο συγκεκριµένοµέγεθος µηνύµατος προσδιορίζεται από κατάλληλο µετροπρόγραµµα ping-pong, όπου δύοδιεργασίες εναλλάσσουν τους ρόλους του αποστολέα και του παραλήπτη και ανταλλάσσουν µηνύµατατου συγκεκριµένου µεγέθους για ένα µεγάλο πλήθος επαναλήψεων. Ο ρυθµός παροχής υπολογίζεταιως ο συνολικός όγκος των δεδοµένων που εστάλησαν διαιρεµένος τόσο µε το συνολικό χρόνο όσο καιµε το συνολικό πλήθος των επαναλήψεων.2.1.2 Αρχιτεκτονική Μοιραζόµενης ΜνήµηςΗ αρχιτεκτονική µοιραζόµενης µνήµης είναι η δυαδική του συστήµατος κατανεµηµένης µνήµης. Στηνπερίπτωση αυτή, το υλικό παρέχει σε όλους τους επεξεργαστικούς κόµβους τη δυνατότητα πρόσβασηςστον ίδιο, ενιαίο χώρο διευθύνσεων µνήµης. Έτσι, η µεταξύ των κόµβων επικοινωνία σε κάποια εϕαρµογήµπορεί να υλοποιηθεί µέσω απλών λειτουργιών ανάγνωσης/εγγραϕής (read/write) στον κοινό χώροµνήµης.Συνοπτικά, η αρχιτεκτονική µοιραζόµενης µνήµης µπορεί να παρασταθεί όπως στο σχήµα 2.2. Στησυνήθη περίπτωση, πρόκειται για κάποιον πολυεπεξεργαστικό κόµβο (multi-processing node), ο οποί-


2.1 Αρχιτεκτονικές Παράλληλης Επεξεργασίας 17κ ρυ φ ήµ ν ήµ η( c a c h e )c a c h ec a c h eεπεξεργαστής( C P U1 ) κ ύ ρι α µ ν ήµ η ( R A M )C P U2...C P Ukυ πο δ ί κ τυ ο δ ι ασύ ν δ εση ς µ ε µ ν ήµ η ( π. χ . m e m o r y b u s )Σχήµα 2.2: Αρχιτεκτονική µοιραζόµενης µνήµηςος διαθέτει περισσότερους επεξεργαστές. Κάθε επεξεργαστής έχει τη δική του ιδιωτική κρυϕή µνήµη(cache memory), αλλά µοιράζεται µια κοινή κύρια µνήµη (main memory) µε τους υπόλοιπους επεξεργαστές.Ο ενιαίος χώρος διευθύνσεων προσπελάζεται µε οµοιόµορϕο τρόπο από όλους τους επεξεργαστές,αλλά κάθε επεξεργαστής διαθέτει τη δική του κρυϕή µνήµη για διατήρηση των δεδοµένων σταοποία αναϕέρεται συχνά. Η συνέπεια (consistency) µεταξύ της κύριας µνήµης και των κρυϕών µνη-µών των επεξεργαστών διασϕαλίζεται από το υλικό, µε τη χρήση κατάλληλου πρωτοκόλλου (π.χ. MSI,MESI, Dragon κ.ά.).2.1.3 Αρχιτεκτονική Κατανεµηµένης Μοιραζόµενης ΜνήµηςΟι δυο βασικές αρχιτεκτονικές προσεγγίσεις, δηλαδή τόσο της κατανεµηµένης όσο και της µοιραζό-µενης µνήµης, παρουσιάζουν σηµαντικές διαϕορές στα προτερήµατα και τα µειονεκτήµατα. Πιο συγκεκριµένα,η αρχιτεκτονική µοιραζόµενης µνήµης παρέχει προγραµµατιστική ευκολία, καθώς η επικοινωνίαµεταξύ των κόµβων µπορεί να επιτευχθεί µε τη χρήση συνήθων λειτουργιών ανάγνωσης καιεγγραϕής. Παρέχει µια ενιαία, καθολική εικόνα του συστήµατος µνήµης, καθιστώντας έτσι την αρχιτεκτονικήαυτή πιο ευέλικτη στη διαχείριση των δεδοµένων, καθώς δεν απαιτούνται πολλαπλά αντίγραϕαγια το ίδιο δεδοµένο, αϕού όλοι οι κόµβοι µπορούν να το προσπελάσουν από την κοινή µνήµη. Η αρχιτεκτονικήµοιραζόµενης µνήµης είναι ιδιαίτερα δηµοϕιλής σε περιβάλλοντα εξυπηρετητών (servers).Στον αντίποδα, η ύπαρξη κοινού υποσυστήµατος µνήµης περιορίζει δραστικά την επεκτασιµότητα


18 Παράλληλη Επεξεργασία(scalability) των συστηµάτων αυτών: δεδοµένου ότι ο συνολικός διατιθέµενος ρυθµός παροχής δεδο-µένων του υποδικτύου µνήµης καθορίζεται από τις τεχνολογικές εξελίξεις, ο αριθµός των επεξεργαστώνπου µπορούν να υποστηριχθούν σε ένα τέτοιο σύστηµα είναι περιορισµένος. Για παράδειγµα,ένας κόµβος συµµετρικής πολυεπεξεργασίας (Symmetric Multi-Processing node - SMP node) µπορείνα υποστηρίξει µε τη σηµερινή τεχνολογία το πολύ λίγες δεκάδες επεξεργαστών, στην πράξη δε σπανίωςσυναντάµε συστήµατα µοιραζόµενης µνήµης µε διψήϕιο πλήθος επεξεργαστών. Το µειονέκτηµααυτό επιτείνεται ιδιαίτερα σε αρχιτεκτονικές που παρέχουν µοναδικό µονοπάτι εισόδου/εξόδου (I/Opath), π.χ. σε περίπτωση αρχιτεκτονικής διαύλου µνήµης (memory bus). Στον πολυνηµατικό προγραµ-µατισµό, το µοναδικό αυτό µονοπάτι διαµοιράζεται κατ' ανάγκη µεταξύ του συνόλου των νηµάτωνπου επιθυµούν να προσπελάσουν ταυτόχρονα το µοιραζόµενο χώρο διευθύνσεων, δηµιουργώντας έτσιπροβλήµατα συµϕόρησης (congestion) και περιορίζοντας τη συνολική µέγιστη δυνατή επίδοση τουπρογράµµατος.π ο λ υ ε π ε ξ ε ρ γ α σ τ ι κ ό ς κ ό µ β ο ς 1π ο λ υ ε π ε ξ ε ρ γ α σ τ ι κ ό ς κ ό µ β ο ς 2 π ο λ υ ε π ε ξ ε ρ γ α σ τ ι κ ό ς κ ό µ β ο ς Νca che1ca chekca che1ca chekca che1ca chekC P U1C P UkC P U1C P UkR A MR A MC P U1... ... ......C P UkR A MN I CN I CN I Cδ ί κ τ υ ο δ ι α σ ύ ν δ ε σ η ς ( π . χ . E <strong>the</strong> r n e t, M y r in e t, S C I , I n f in ib a n d )switchΣχήµα 2.3: Αρχιτεκτονική κατανεµηµένης µοιραζόµενης µνήµηςΗ αρχιτεκτονική κατανεµηµένης µνήµης αντιµετωπίζει επιτυχώς τα παραπάνω προβλήµατα, καθώς


2.2 Μοντέλα Παράλληλου Προγραµµατισµού 19η προσθήκη περαιτέρω κόµβων διασϕαλίζει την επεκτασιµότητα της συνολικής επίδοσης του συστή-µατος. Πράγµατι, στην περίπτωση αυτή κάθε επεξεργαστής διαθέτει το δικό του υποδίκτυο προσπέλασηςτης µνήµης, συνεπώς η επέκταση του συστήµατος σε µεγαλύτερο αριθµό κόµβων συνεπάγεται καιαύξηση του συνολικού διατιθέµενου ρυθµού παροχής δεδοµένων του υποσυστήµατος µνήµης. Τα συστήµατακατανεµηµένης µνήµης µπορούν βάσει της σηµερινής τεχνολογίας να επεκταθούν επιτυχώςσε χιλιάδες κόµβους, ενώ και σε επίπεδο εϕαρµογής έχουν αναπτυχθεί παράλληλοι αλγόριθµοι πουµπορούν να κλιµακώσουν την επίδοσή τους σχεδόν γραµµικά σε µεγάλα συστήµατα χιλιάδων επεξεργαστών.Παράλληλα όµως, τα συστήµατα κατανεµηµένης µνήµης επιβάλλουν σηµαντικές δυσκολίεςστον προγραµµατισµό και την αποσϕαλµάτωσή τους σε σχέση µε τα συστήµατα µοιραζόµενης µνήµης,ενώ συχνά απαιτούν και πολλαπλές εικόνες του συστήµατος, οδηγώντας έτσι σε κατασπατάληση τωνδιαθέσιµων πόρων.Απόρροια των παραπάνω προβληµατισµών αποτελεί η επικράτηση στο χώρο των υπολογιστικώνσυστηµάτων υψηλών επιδόσεων µιας τρίτης υβριδικής αρχιτεκτονικής, εκείνης της κατανεµηµένης µοιραζόµενηςµνήµης, που συνδυάζει επιτυχώς χαρακτηριστικά από τις δύο πρώτες (σχήµα 2.3). Στα συστήµατακατανεµηµένης µοιραζόµενης µνήµης έχουµε τη διασύνδεση περισσότερων πρωτογενών συστηµάτωνµοιραζόµενης µνήµης, ώστε να συνθέσουν ένα σύστηµα κατανεµηµένης µνήµης σε ένα δεύτεροεπίπεδο. Το βασικό τους πλεονέκτηµα είναι ότι συνδυάζουν την επεκτασιµότητα των συστηµάτωνκατανεµηµένης µνήµης µε την προγραµµατιστική ευελιξία των συστηµάτων µοιραζόµενης µνήµης.Έτσι, µπορούµε αϕενός να ϕτάσουµε µέχρι χιλιάδες κόµβους, εϕόσον κάτι τέτοιο απαιτούν οι υπολογιστικέςανάγκες, και αϕετέρου να πραγµατοποιήσουµε εύκολα αποδοτική κατανοµή του ϕορτίου στοεσωτερικό κάθε κόµβου µεταξύ των διαθέσιµων επεξεργαστών µε αξιοποίηση της µοιραζόµενης µνή-µης.Στο πλαίσιο της εργασίας αυτής θα βασιστούµε κατά την πειραµατική αξιολόγηση σε συστοιχίεςκόµβων συµµετρικής πολυεπεξεργασίας (SMP clusters), που αποτελούν άλλωστε και βασικό εκπρόσωποτων συστηµάτων κατανεµηµένης µοιραζόµενης µνήµης.2.2 Μοντέλα Παράλληλου ΠρογραµµατισµούΟ όρος παράλληλος προγραµµατισµός αναϕέρεται στη σχεδίαση και υλοποίηση ενός προγράµµατος,που αξιοποιεί µια δεδοµένη παράλληλη αρχιτεκτονική υποδοµή µε στόχο την επίλυση ενός συγκεκριµένουπροβλήµατος ή αλγορίθµου. Επιµερίζοντας τα δεδοµένα ή/και τους υπολογισµούς του αλγορίθµουµεταξύ των επεξεργαστικών κόµβων της παράλληλης αρχιτεκτονικής, µπορούµε τόσο να επιταχύνουµετην επίλυση του προβλήµατος για δεδοµένη είσοδο όσο και να επιτύχουµε την επίλυση χωρικά µεγαλύτερηςεισόδου για δεδοµένο αλγόριθµο. Επίσης, µέσω του παράλληλου προγραµµατισµού µπορούµε


πP20 Παράλληλη Επεξεργασίανα βελτιώσουµε την ποιότητα και την αξιοπιστία της υπολογιζόµενης λύσης ενός προβλήµατος υπόδεδοµένους χρονικούς περιορισµούς, π.χ. κατά την επιχειρησιακή λειτουργία ενός υπολογιστικού συστήµατοςπραγµατικού χρόνου (real-time computing system - RTC system). Για τους λόγους αυτούς,η παράλληλη επεξεργασία βρίσκει πρωτίστως εϕαρµογή σε πληθώρα απαιτητικών επιστηµονικών αλγορίθµων,που επιβάλλουν αυξηµένη υπολογιστική ή/και χωρική πολυπλοκότητα.αλγόριθµοςπ.χ. ρευστοδυναµική, µοριακήδυναµική, γ ραµµική ά λ γ εβ ρα,µετεω ρολ ογ ί α, β ιολ ογ ί α κ.ά .παράλληλοπρογ ραµ µ ατ ι σ τ ι κ ό µ ον τ έ λοολυ ν η µατ ικ ήε π ε ξ ε ργασ ί απ.χ. O p e n M P ,P t h r e a d s , s h m e mµον τ έ λο αν τ αλλαγή ςµη ν υ µά τ ω νM P I P V M P 4s o c k e t sπ.χ. , , ,υ β ριδ ικ ό µον τ έ λοπ.χ. M P I / O p e n M P ,M L PS D S M β ιβ λιοθή κ ηπ.χ. T r e a d M a r k s ,J I A J I A , I n t o n e , O m n iγλώ σ σ α π αρά λλη λουπ ρογραµµατ ισ µούπ.χ. U P C , C o - A r r a yF o r t r a n , H P Fτ ηπ η σ ηαυ όµαταραλλη λοπ οίπ.χ. S U I F , N a n o -T h r e a d s , O m e g aπαράλληλη αρχ ι τ ε κ τ ον ι κ ήαρχ ιτ ε κ τ ον ικ ήκ ατ αν ε µη µέ ν η ςµν ή µη ςπ.χ. συστοιχί εςαρχ ιτ ε κ τ ον ικ ήµοιραζ όµε ν η ς µν ή µη ςπ.χ. S M P κό µβ οι,διανυσµατικοίεπεξ εργ αστέ ςαρχ ιτ ε κ τ ον ικ ήκ ατ αν ε µη µέ ν η ςµοιραζ όµε ν η ς µν ή µη ςS Mωπ.χ. συστοιχί εςκό µβ ν, συστοιχί εςδιανυσµατικώ νεπεξ εργ αστώ νΣχήµα 2.4: Αϕαιρετικός διαχωρισµός µεταξύ της επιλογής του προγραµµατιστικού µοντέλου κατά τηνπαραλληλοποίηση µιας εϕαρµογής και της επιλογής παράλληλης αρχιτεκτονικής για την εκτέλεση τουπαράλληλου προγράµµατος


2.2 Μοντέλα Παράλληλου Προγραµµατισµού 21Η επιλογή συγκεκριµένου προγραµµατιστικού µοντέλου για την παραλληλοποίηση µιας δεδοµένηςεϕαρµογής µπορεί σε πολλές περιπτώσεις να γίνει ανεξάρτητα της υϕιστάµενης αρχιτεκτονικήςυποδοµής (βλ. και σχήµα 2.4). Πράγµατι, η πληθώρα των σχετικών εργαλείων λογισµικού (π.χ. βιβλιοθήκεςή µεταγλωττιστές) διασϕαλίζει τη µεταϕερσιµότητα ενός προγράµµατος σε µια ποικιλοµορϕίααρχιτεκτονικών υποδοµών, από στενά συζευγµένων (π.χ. υπερυπολογιστικά συστήµατα µοιραζόµενηςµνήµης) έως πιο χαλαρά διασυνδεδεµένων (π.χ. συστοιχίες υπολογιστικών κόµβων). Ωστόσο, είναιπροϕανές ότι η απόδοση που επιτυγχάνεται µε µια συγκεκριµένη προγραµµατιστική προσέγγιση είναιάρρηκτα συνδεδεµένη τόσο µε την επιβάρυνση που επιϕέρουν οι χρησιµοποιούµενες βιβλιοθήκες λογισµικούόσο και κυρίως µε το βαθµό υποστήριξης του συγκεκριµένου προγραµµατιστικού µοντέλουαπό το υϕιστάµενο υλικό. Ορισµένα προγραµµατιστικά µοντέλα συνδέονται άµεσα µε µια συγκεκρι-µένη υποδοµή, όπως π.χ. η πολυνηµατική επεξεργασία µε την αρχιτεκτονική µοιραζόµενης µνήµης,συνεπώς η µεταϕορά των µοντέλων αυτών σε άλλες αρχιτεκτονικές µπορεί να γίνει µόνο µε τη βοήθειαενός ενδιάµεσου στρώµατος λογισµικού, που κατά κανόνα συντελεί σε µείωση της απόδοσης τουπαράλληλου προγράµµατος.Σε αντιστοιχία µε τις τρεις βασικές αρχιτεκτονικές που αναλύσαµε προηγουµένως, θα εξετάσουµεισάριθµα προγραµµατιστικά µοντέλα, που χρησιµοποιούνται στην πράξη στους συγκεκριµένους τύπουςπαράλληλων συστηµάτων. Τα µοντέλα αυτά θα αποτελέσουν το αντικείµενο των επόµενων ενοτήτων.2.2.1 Μοντέλο Ανταλλαγής ΜηνυµάτωνΤο προγραµµατιστικό µοντέλο ανταλλαγής µηνυµάτων (στη διεθνή βιβλιογραϕία Message Passing ήσυντοµογραϕικά MP) αποτελεί την κυρίαρχη τάση στο χώρο της Παράλληλης Επεξεργασίας. Φορείςεκτέλεσης του προγράµµατος είναι συνήθως µία ή περισσότερες διεργασίες, που επικοινωνούν µεταξύτους για την ανταλλαγή δεδοµένων µέσω αποστολής/λήψης µηνυµάτων. Το µοντέλο ανταλλαγήςµηνυµάτων υιοθετεί τη λογική του Μοναδικού Προγράµµατος Πολλαπλών ∆εδοµένων (Single ProgramMultiple Data - SPMD). Συγκεκριµένα, όλες οι διεργασίες εκτελούν τον ίδιο κώδικα και σε καθεµία αποδίδεταιένα µοναδικό αναγνωριστικό (process identifier - pid), το οποίο ταυτοποιεί τη συγκεκριµένηδιεργασία µεταξύ όλων των υπολοίπων. Κάθε διεργασία χρησιµοποιεί το αναγνωριστικό της για να καθορίσειτο υποσύνολο των δεδοµένων και των υπολογισµών που της αντιστοιχούν, διαϕοροποιώνταςέτσι τη ροή εκτέλεσής της. Σε οποιαδήποτε περίπτωση µία διεργασία χρειαστεί την τιµή κάποιου δεδο-µένου που έχει αποθηκευτεί στον εικονικό χώρο διευθύνσεων κάποιας άλλης διεργασίας, θα πρέπει τοδεδοµένο αυτό να αποσταλεί µέσω µηνύµατος από τη διεργασία-ιδιοκτήτη, καθώς και να παραληϕθείµε κλήση κατάλληλης ρουτίνας λήψης από τη διεργασία που το ζήτησε. Ανάλογα µε το πλήθος τωνεµπλεκόµενων διεργασιών, οι λειτουργίες επικοινωνίας χαρακτηρίζονται είτε από σηµείο προς σηµείο


22 Παράλληλη Επεξεργασία(point-to-point communication primitives) εϕόσον αϕορούν µόνο δύο διεργασίες (µια διεργασία αποστολέακαι µια διεργασία παραλήπτη), είτε ως συλλογικές (collective communication primitives) στηνπερίπτωση που στην επικοινωνία εµπλέκεται ένα σύνολο διεργασιών.Το µοντέλο ανταλλαγής µηνυµάτων παρουσιάζει τις εξής πολύ ενδιαϕέρουσες ιδιαιτερότητες:• Η επικοινωνία µεταξύ δύο η περισσότερων διεργασιών για ανταλλαγή δεδοµένων είναι πάνταρητή (explicit). Ο προγραµµατιστής θα πρέπει να λάβει ειδική µέριµνα για την επίτευξη τηςλειτουργίας επικοινωνίας, εϕοδιάζοντας το πρόγραµµά του µε κατάλληλες ρουτίνες αποστολής/λήψηςµηνυµάτων. Ενδεχοµένως ο προγραµµατιστής να πρέπει να ϕροντίσει και για τηναντιγραϕή των δεδοµένων επικοινωνίας από την αλγοριθµική δοµή σε δοµή κατάλληλη για επικοινωνία,όπως αυτή καθορίζεται από τη χρησιµοποιούµενη βιβλιοθήκη ανταλλαγής µηνυµάτων(π.χ. µονοδιάστατος πίνακας στοιχείων).• Κατά την επικοινωνία πραγµατοποιείται έµµεσα (implicitly) και ο συγχρονισµός µεταξύ των διεργασιών,καθώς ουσιαστικά ενυπάρχει εγγενώς στη διαδικασία ανταλλαγής µηνυµάτων. Πιο συγκεκριµένα,η ανταλλαγή δεδοµένων προϋποθέτει τη συµµετοχή όλων των εµπλεκοµένων διεργασιών,καθώς όλες θα χρειαστεί να καλέσουν κάποια ρουτίνα επικοινωνίας, είτε ως αποστολείςείτε ως παραλήπτες. Έτσι, µια διεργασία αποστολέας γνωρίζει ότι έχει αποστείλει ένα µήνυµαεϕόσον ολοκληρωθεί η ρουτίνα αποστολής, ενώ αντίστοιχα µια διεργασία παραλήπτης µπορείνα υποθέσει πως έχει λάβει τα δεδοµένα που ζήτησε µετά την επιτυχή περάτωση της ρουτίναςλήψης που η ίδια κάλεσε. Με απλά λόγια, στο µοντέλο ανταλλαγής µηνυµάτων η επικοινωνίακαι ο συγχρονισµός είναι σε µεγάλο βαθµό αδιαίρετες έννοιες.Η γενικότητα του µοντέλου ανταλλαγής µηνυµάτων του επιτρέπει να εϕαρµοστεί σε πληθώρα αρχιτεκτονικών,από µοιραζόµενης µέχρι κατανεµηµένης µνήµης. Στην πράξη άλλωστε, πολλές πραγµατικέςεϕαρµογές έχουν παραλληλοποιηθεί επιτυχώς µε το µοντέλο αυτό, επιτυγχάνοντας υψηλή απόδοσηκαι διασϕαλίζοντας την επεκτασιµότητα του προγράµµατος. Το πλέον δηµοϕιλές πρότυπο γιαανταλλαγή µηνυµάτων είναι το Message Passing Interface (MPI), για το οποίο θα κάνουµε ξεχωριστήαναϕορά στο παράρτηµα Α. Άλλες δηµοϕιλείς βιβλιοθήκες για προγραµµατισµό µέσω ανταλλαγήςµηνυµάτων είναι η πλατϕόρµα PVM [GBD + 94], η διεπαϕή sockets [Ste90] ή ακόµα και η παλιότερηβιβλιοθήκη P4 [BL94], στην οποία έχει βασιστεί η γνωστή υλοποίηση MPICH του MPI.2.2.2 Μοντέλο Πολυνηµατικής ΕπεξεργασίαςΗ πολυνηµατική επεξεργασία (multi-threaded programming) αποτελεί την επικρατέστερη υλοποίησητου προγραµµατιστικού µοντέλου µοιραζόµενου χώρου µνήµης (Shared Address Space - SAS). Η


2.2 Μοντέλα Παράλληλου Προγραµµατισµού 23πολυνηµατική επεξεργασία θεωρεί ως µονάδες εκτέλεσης του παράλληλου προγράµµατος τα νήµατα(threads). Τα νήµατα µοιράζονται τον κοινό εικονικό χώρο διευθύνσεων της διεργασίας-γονέα καιµπορούν να επικοινωνήσουν µε χρήση µοιραζόµενων µεταβλητών (shared variables), τις οποίες προσπελάζουνµε συνήθεις λειτουργίες ανάγνωσης και εγγραϕής (read - write). Επιπρόσθετα, στην περίπτωσηαυτή απαιτείται περαιτέρω συγχρονισµός µεταξύ των νηµάτων, για να διασϕαλιστεί η έγκυρηακολουθία πρόσβασης στα µοιραζόµενα δεδοµένα βάσει της σηµασιολογίας του αλγορίθµου. Κάθε νή-µα µπορεί να καθορίζει µεταβλητές και ως ιδιωτικές (private variables), σε περίπτωση που δεν επιθυµείνα τις µοιραστεί µε τα υπόλοιπα νήµατα της οµάδας.Συγκριτικά µε το µοντέλο ανταλλαγής µηνυµάτων, η πολυνηµατική παραλληλοποίηση παρέχειπρογραµµατιστική ευκολία, καθώς η υλοποίηση πολυνηµατικής επεξεργασίας µπορεί να επιτευχθεί µετροποποίηση µικρού µόνο τµήµατος του αρχικού σειριακού προγράµµατος µε χρήση κατάλληλης διεπαϕής.Επιπλέον, η επικοινωνία υλοποιείται µε χρήση απλών αναγνώσεων και εγγραϕών στη µοιραζό-µενη µνήµη, σε αντιδιαστολή µε τις εξειδικευµένες ρουτίνες ανταλλαγής µηνυµάτων. Όµως, το µοντέλοαυτό παρουσιάζει ένα σηµαντικό µειονέκτηµα έναντι του εναλλακτικού της ανταλλαγής µηνυµάτων,καθώς προϋποθέτει την ύπαρξη ενός καθολικού, µοιραζόµενου χώρου µνήµης. Ένας τέτοιος χώρος θαπρέπει είτε να παρέχεται εγγενώς από την υϕιστάµενη αρχιτεκτονική (π.χ. αρχιτεκτονική µοιραζόµενηςµνήµης), είτε να υλοποιείται έµµεσα µε χρήση κατάλληλου λογισµικού, στην περίπτωση αρχιτεκτονικήςκατανεµηµένης µνήµης. Καθώς ένα τέτοιο ενδιάµεσο στρώµα λογισµικού επιϕέρει στην πράξησηµαντική επιβάρυνση στην επίδοση του παράλληλου προγράµµατος, ενώ και οι αρχιτεκτονικές αµιγώςµοιραζόµενης µνήµης έχουν αποδειχθεί µη επεκτάσιµες πέρα από µικρό αριθµό επεξεργαστών, τοµοντέλο της πολυνηµατικής επεξεργασίας έχει σηµαντικά µικρότερη απήχηση σε σχέση µε εκείνο τηςανταλλαγής µηνυµάτων.Κατά την υλοποίηση ενός παράλληλου προγράµµατος σε αρχιτεκτονική µοιραζόµενης µνήµης µπορείκανείς να χρησιµοποιήσει τόσο το µοντέλο ανταλλαγής µηνυµάτων όσο και εκείνο της πολυνηµατικήςεπεξεργασίας. Το σχήµα 2.5 αποσκοπεί στο να αποσαϕηνίσει εν µέρει τις διαϕορές µεταξύ των δύοµοντέλων για την υποθετική περίπτωση που η πρώτη οντότητα (διεργασία ή νήµα) θέλει να αναθέσειµια τιµή στη µεταβλητή , ενώ η δεύτερη οντότητα θέλει ακολούθως να χρησιµοποιήσει την ενηµερω-µένη τιµή της για τον υπολογισµό µιας άλλης µεταβλητής < . Παρατηρούµε πως το µοντέλο πολυνη-µατικής επεξεργασίας απαιτεί µόνο µια λειτουργία συγχρονισµού µεταξύ των δύο νηµάτων ( ),που διασϕαλίζει ότι η ανάγνωση της τιµής της µεταβλητής F!C£©£¡£ από το νήµα 2 θα ακολουθήσει χρονικάτην εγγραϕή της από το νήµα 1. Αντίθετα, το µοντέλο ανταλλαγής µηνυµάτων καταϕεύγει στηνκλήση κατάλληλων ρουτινών επικοινωνίας 4M2 ?N, L4M2 K$0O), ενώ ενδεχοµένως απαιτεί επιπλέονµια ϕάση οµαδοποίησης των δεδοµένων αποστολής ( ) και ταξινόµησης των δεδοµένων λήψης(L( ¥0F ). Το παράδειγµα αυτό καταδεικνύει εύγλωττα πως παρότι το µοντέλο ανταλλαγής µηνυµάτων£F©


24 Παράλληλη ΕπεξεργασίαSMP κόµβοςOpenMPΝήµα 1$CPU ix = 5;#pragma omp barrier...$CPU jΝήµα 2#pragma omp barriery = x + 1;xMMPI∆ιεργασία 1$CPU ix = 5;sbuf[0] = x;dest = 1;MPI_Send(sbuf,dest);copy από sbuf...bufM$CPU j∆ιεργασία 2src = 0;MPI_Recv(rbuf,src);x = rbuf[0];y = x + 1;copy σε rbufΣχήµα 2.5: Σύγκριση προγραµµατιστικού µοντέλου ανταλλαγής µηνυµάτων µε το ισοδύναµο µοιραζόµενηςµνήµης για αρχιτεκτονική µοιραζόµενης µνήµηςείναι αρκετά γενικό, ώστε να µπορεί να εϕαρµοστεί σε αρχιτεκτονικές µοιραζόµενης µνήµης, µια τέτοιαυλοποίηση είναι σηµαντικά πιο πολύπλοκη από την πολυνηµατική εκδοχή. Επιπλέον, όπως θα δούµεκαι στην επόµενη ενότητα, η γενικότητα του µοντέλου ανταλλαγής µηνυµάτων συνεπάγεται πρόσθετηεπιβάρυνση για αρχιτεκτονικές µοιραζόµενης µνήµης σε σχέση µε το πολυνηµατικό µοντέλο.Στο πλαίσιο της παρούσας εργασίας θα χρησιµοποιήσουµε το πρότυπο πολυνηµατικής επεξεργασίαςOpenMP (βλ. παράρτηµα Β), που αποτελεί µια εύχρηστη και ιδιαίτερα δηµοϕιλή διεπαϕή για τηνυλοποίηση προγραµµατισµού µοιραζόµενης µνήµης. Άλλες δηµοϕιλείς προσεγγίσεις είναι η συµβατήµε το POSIX πρότυπο βιβλιοθήκη Pthreads [NBF96] καθώς και η χρήση SYS V µοιραζόµενης µνήµηςµέσω της διεπαϕής shmem.2.2.3 Υβριδικό Προγραµµατιστικό ΜοντέλοΘεωρώντας την περίπτωση αρχιτεκτονικών κατανεµηµένης µοιραζόµενης µνήµης, σε µια πρώτη ανάλυσηθα µπορούσε κανείς να καταγράψει αϕενός την αδυναµία του πολυνηµατικού µοντέλου λόγω µηύπαρξης καθολικά µοιραζόµενης µνήµης στο υλικό, και αϕετέρου την καθολική δυνατότητα εϕαρµογής


2.2 Μοντέλα Παράλληλου Προγραµµατισµού 25του µοντέλου ανταλλαγής µηνυµάτων. Η διεθνής βιβλιογραϕία όµως εξετάζει και µια τρίτη, υβριδικήπροσέγγιση, η διερεύνηση της οποίας αποτελεί και το αντικείµενο της παρούσας ενότητας.Πέρα από τον προβληµατισµό που αϕορά στην προγραµµατιστική πολυπλοκότητα του µοντέλουανταλλαγής µηνυµάτων, όπως αυτός διατυπώθηκε στην προηγούµενη ενότητα, υπάρχει ένας βασικότεροςλόγος για τον οποίο το συγκεκριµένο µοντέλο ενδέχεται να µην αξιοποιεί πλήρως µια αρχιτεκτονικήµοιραζόµενης µνήµης. Ακόµα κι αν η χρησιµοποιούµενη βιβλιοθήκη ανταλλαγής µηνυµάτωναξιοποιεί την υϕιστάµενη υποδοµή της µοιραζόµενης µνήµης, αντιστοιχίζοντας ιδεατά την αποστολήκαι λήψη δεδοµένων σε απλή εγγραϕή και ανάγνωση στη µοιραζόµενη µνήµη, η γενικότητα του µοντέλουανταλλαγής µηνυµάτων συνεπάγεται συχνά την ύπαρξη επιπλέον λειτουργιών οµαδοποίησηςκαι ταξινόµησης-επανατοποθέτησης των δεδοµένων επικοινωνίας. Το γεγονός αυτό αποδίδεται στουςπεριορισµούς που επιβάλλει η βιβλιοθήκη ανταλλαγής µηνυµάτων, που µπορεί να υποστηρίξει µόνοσυγκεκριµένες δοµές µηνυµάτων, οι οποίες ενδεχοµένως διαϕέρουν από τους πρωτογενείς τύπους δεδοµένωντης εϕαρµογής. Επιπλέον, η αξιοποίηση της µοιραζόµενης µνήµης σε πολλές βιβλιοθήκεςανταλλαγής µηνυµάτων επιτυγχάνεται µόνο µέσω ενδιάµεσων αντιγραϕών των δεδοµένων επικοινωνίαςαπό και προς συγκεκριµένες προκαθορισµένες περιοχές µοιραζόµενης µνήµης. Οι αντιγραϕές αυτέςέχουν επίπτωση στην επίδοση του προγράµµατος, ειδικά στην περίπτωση που το πλήθος των δεδοµένωνεπικοινωνίας είναι σχετικά υψηλό.Εξίσου σηµαντικό είναι το γεγονός πως το υψηλό κόστος αρχικοποίησης, που συνήθως σχετίζεταιµε την αποστολή µηνυµάτων µέσω ενός δικτύου διασύνδεσης, προκρίνει την αποστολή λίγων µεγάλωνµηνυµάτων έναντι πολλών µικρών, για τη µετάδοση συγκεκριµένου όγκου δεδοµένων. Συνεπώς, έχεινόηµα τα δεδοµένα επικοινωνίας που προορίζονται για την ίδια διεργασία να οµαδοποιούνται σε έναµοναδικό µήνυµα, ώστε να ελαχιστοποιηθεί το συνολικό πλήθος των ανταλλασσόµενων µηνυµάτων.Απόρροια του γεγονότος αυτού είναι η αναγκαιότητα επιπλέον αντιγραϕών, που προϕανώς επιδράανασταλτικά στη συνολική επίδοση του παράλληλου προγράµµατος.Για να επαληθεύσουµε πειραµατικά τα παραπάνω, υλοποιήσαµε ένα απλό σενάριο επικοινωνίας,παρόµοιο µε εκείνο του σχήµατος 2.5, ακολουθώντας τέσσερις διαϕορετικές προσεγγίσεις:1. MPI+TCP/IP µεταξύ δύο διαϕορετικών SMP κόµβων (δύο διεργασίες MPI)2. MPI+διεπαϕή ανάδρασης (loopback interface) µεταξύ δύο επεξεργαστών του ίδιου SMP κόµβου(δύο διεργασίες MPI)3. MPI+διεπαϕή shmem µοιραζόµενης µνήµης µεταξύ δύο επεξεργαστών του ίδιου SMP κόµβου(δύο διεργασίες MPI)4. OpenMP µεταξύ δύο επεξεργαστών του ίδιου SMP κόµβου (δύο νήµατα OpenMP)


26 Παράλληλη Επεξεργασίαα) MPI β ) O p e n MPMPI διεργασία 0O p e n MP ν ή µ α 0MPI διεργασία 1O p e n MP ν ή µ α 1εγγραφ ήαν ά γν ω σηεπ ικ ο ιν ω ν ία MPI/συ γχ ρο ν ισµ ό ς O p e n MPεξ ά ρτ η σηδεδο µ έ ν ω νΣχήµα 2.6: Επεξεργασία µονοδιάστατου πίνακα µε χρήση τόσο του µοντέλου ανταλλαγής µηνυµάτωνόσο και του πολυνηµατικού µοντέλουΣτις τρεις πρώτες περιπτώσεις εκκινήσαµε δύο διεργασίες MPI. Η διεργασία 0 υπολογίζει το πρώτο καιτρίτο τεταρτηµόριο ενός µονοδιάστατου πίνακα. Στη συνέχεια αντιγράϕει το κατάλληλο τεταρτηµόριοσε αποµονωτή επικοινωνίας και το αποστέλλει µέσω του MPI στη διεργασία 1. Από την άλλη µεριά,η διεργασία 1 λαµβάνει τα δεδοµένα επικοινωνίας, τα τοποθετεί στο κατάλληλο τεταρτηµόριο (πρώτοή τρίτο) του δικού της τοπικού αντίγραϕου του πίνακα και τα χρησιµοποιεί για τον υπολογισµό τουγειτονικού τεταρτηµορίου (δεύτερο ή τέταρτο, αντίστοιχα). Στην περίπτωση 4 (OpenMP), την ίδια επεξεργασίααναλαµβάνουν δύο νήµατα OpenMP, που επενεργούν στα τεταρτηµόρια ενός µοιραζόµενουπίνακα και συγχρονίζονται µε χρήση λειτουργίας . Ο παραπάνω πυρήνας, που απεικονίζεταιστο σχήµα 2.6 για λόγους οπτικοποίησης, αϕενός αντιπροσωπεύει ένα αρκετά ρεαλιστικό σενάριο παράλληληςεπεξεργασίας, αϕετέρου αποϕεύγει ή έστω µετριάζει διάϕορες επιβαρύνσεις ή επιπλοκές τουF!C££M¡£υλικού (διατήρηση συνέπειας µεταξύ νηµάτων, ϕαινόµενα κρυϕής µνήµης κλπ.), επιτρέποντας έτσι τηνάµεση σύγκριση των εναλλακτικών σχηµάτων επικοινωνίας.Τα αποτελέσµατα της σύγκρισης αποτυπώνονται στο σχήµα 2.7. Παρατηρούµε πως παρότι η συγκεκριµένηυλοποίηση του MPI (MPICH) είναι αρκετά βελτιστοποιηµένη, ώστε να βελτιώνει σηµαντικάτο χρόνο επικοινωνίας στο εσωτερικό του SMP κόµβου, δεν µπορεί να αποδώσει καλύτερα από τοπολυνηµατικό µοντέλο. Το γεγονός αυτό είναι αναµενόµενο και οϕείλεται κυρίως στις επιπρόσθετεςαντιγραϕές που περιλαµβάνονται στο µοντέλο ανταλλαγής µηνυµάτων.Ο παραπάνω προβληµατισµός αποτέλεσε έναυσµα για τη διερεύνηση της επίδοσης υβριδικών προγραµµατιστικώνµοντέλων σε αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης. Σε τέτοιες αρχιτεκτονικές,εκτός του γενικού µοντέλου ανταλλαγής µηνυµάτων θα µπορούσε κανείς να υλοποιήσει


2.2 Μοντέλα Παράλληλου Προγραµµατισµού 27250200MPICH (TCP/IP)MPICH (loopback)MPICH (shmem)OpenMP807060MPICH (loopback)MPICH (shmem)OpenMPTime (msec)150100Time (msec)50403050201000 500 1000 1500 2000Message size (KB)00 500 1000 1500 2000Message size (KB)(α) Γενικά(β) Με αξιοποίηση της ιεραρχίας µνήµηςΣχήµα 2.7: Σύγκριση της επίδοσης εναλλακτικών µεθόδων επικοινωνίας στο εσωτερικό SMP κόµβου.Χάριν πληρότητας, το σχήµα 2.7(α) απεικονίζει επιπλέον και τη χρονική επίδοση στην επικοινωνία µέσωανταλλαγής µηνυµάτων µεταξύ διεργασιών σε διαϕορετικούς SMP κόµβους (περίπτωση TCP/IP). Παρατηρούµεαπό τις υπόλοιπες τρεις ευθείες, που αντιστοιχούν σε επικοινωνία ή συγχρονισµό στο εσωτερικότου SMP κόµβου και αναπαράγονται για ευκολία στο σχήµα 2.7(β), ότι η συγχρονισµένη πρόσβαση στηνκοινή µνήµη µε χρήση OpenMP υπερτερεί της MPI επικοινωνίας γενικής µορϕής, ακόµα κι όταν αυτήείναι ιδιαίτερα βελτιστοποιηµένη κάνοντας χρήση SYS V µοιραζόµενης µνήµης (περίπτωση shmem).ένα διεπίπεδο σχήµα επικοινωνίας, θεωρώντας πολυνηµατική επεξεργασία στο χαµηλότερο επίπεδο(εσωτερικό ενός πολυεπεξεργαστικού κόµβου) και ανταλλαγή µηνυµάτων σε ένα δεύτερο υψηλότεροεπίπεδο (µεταξύ των διαϕορετικών κόµβων). Το υβριδικό µοντέλο παράλληλης επεξεργασίας αποτελείτο αντικείµενο του κεϕαλαίου 5.2.2.4 Άλλα Μοντέλα Παράλληλου ΠρογραµµατισµούΤο µοντέλο ανταλλαγής µηνυµάτων, η πολυνηµατική επεξεργασία και ο υβριδικός συνδυασµός αυτώνσυνιστούν τις κυριότερες προσεγγίσεις στον παράλληλο προγραµµατισµό, όχι όµως και τις µοναδικές.Σε ό,τι αϕορά στις αρχιτεκτονικές µοιραζόµενης µνήµης, το πολυνηµατικό µοντέλο µε χρήση κατάλληληςπρογραµµατιστικής διεπαϕής, π.χ. του OpenMP, αποτελεί µια καλή λύση, κυρίως γιατί δενεπιϕέρει σηµαντικές αλλαγές στον αρχικό σειριακό κώδικα. Όµως, όσον αϕορά στις αρχιτεκτονικέςκατανεµηµένης ή κατανεµηµένης µοιραζόµενης µνήµης, το µοντέλο ανταλλαγής µηνυµάτων µπορείνα έχει αποδειχθεί ιδιαίτερα αποδοτικό στην πράξη, σχετίζεται όµως κατά γενική οµολογία µε υψηλήπρογραµµατιστική πολυπλοκότητα, απαιτώντας από τον προγραµµατιστή να µεριµνήσει επιµελώς γιατις ανάγκες επικοινωνίας της εϕαρµογής του.∆εδοµένου ότι οι προς παραλληλοποίηση αλγόριθµοι συχνά προέρχονται από άλλους κλάδους της


28 Παράλληλη Επεξεργασίαεπιστηµονικής κοινότητας εκτός της επιστήµης των υπολογιστών, η προγραµµατιστική πολυπλοκότηταµιας διεπαϕής σαν το MPI κρίνεται ενίοτε σχετικά υψηλή. Έτσι, κατά καιρούς έχουν προταθείεναλλακτικές προσεγγίσεις για τον προγραµµατισµό συστηµάτων κατανεµηµένης µνήµης, υποσύνολοτων οποίων θα παρουσιάσουµε για λόγους πληρότητας στην παρούσα ενότητα. Θα πρέπει να τονιστείπως κοινή συνισταµένη των εναλλακτικών παράλληλων προγραµµατιστικών µοντέλων αποτελεί η δια-ϕανής µετατόπιση των πολύπλοκων λεπτοµερειών της υλοποίησης από τον προγραµµατιστή προς χα-µηλότερα στρώµατα λογισµικού, που χρησιµοποιούνται ακριβώς για το σκοπό αυτό. Παράλληλα όµως,η διασϕάλιση της επιθυµητής προγραµµατιστικής απλότητας συνεπάγεται συχνά σηµαντικές επιπτώσειςστην επίδοση των µοντέλων αυτών, που στην πράξη έχει αποδειχθεί να υπολείπονται σχετικά τουµοντέλου ανταλλαγής µηνυµάτων.Τρεις επιπλέον βασικές προσεγγίσεις έχουν παρουσιαστεί στη διεθνή βιβλιογραϕία για τον παράλληλοπρογραµµατισµό αρχιτεκτονικών υψηλών επιδόσεων:1. Η χρησιµοποίηση ενός ενδιάµεσου στρώµατος λογισµικού για την διασϕάλιση ενός ενιαίου µοιραζόµενουχώρου µνήµης ως προς τον προγραµµατιστή της εϕαρµογής. Η προσέγγιση αυτή στηδιεθνή βιβλιογραϕία χαρακτηρίζεται ως Κατανεµηµένη Μοιραζόµενη Μνήµη µέσω Λογισµικού(Soware Distributed Shared Memory - SDSM) ή ακόµα και Κατανεµηµένη Μοιραζόµενη ΕικονικήΜνήµη (Distributed Shared Virtual Memory - DSVM). Πρακτικά, συνήθως συνδυάζονταιένας µεταϕραστής (translator) από κάποιο γνωστό προγραµµατιστικό µοντέλο τύπου SAS (π.χ.OpenMP, Pthreads) µε κάποια SDSM βιβλιοθήκη χρόνου εκτέλεσης για αρχιτεκτονικές κατανεµηµένηςκαι κατανεµηµένης µοιραζόµενης µνήµης. Για παράδειγµα, τέτοια περιβάλλοντα είναιη διεπαϕή JIAJIA [HST99], ο µεταγλωττιστής Omni για OpenMP [SSKT99], το περιβάλλονIntone [KLB02], το περιβάλλον Treadmarks [KCDZ94], η βιβλιοθήκη Cashmere-2L [SDH + 97]κ.ά. Σε γενικές γραµµές, η SDSM προσέγγιση επιδιώκει να κάνει διάκριση µεταξύ του µοντέλουπρογραµµατισµού (π.χ. SAS) και του µοντέλου εκτέλεσης (π.χ. στρώµα SDSM και βιβλιοθήκηχρόνου εκτέλεσης για συνέπεια µνήµης και λειτουργίες επικοινωνίας/συγχρονισµού). Το ζητού-µενο στα SDSM συστήµατα είναι η αποδοτική υλοποίηση της απαιτούµενης συνέπειας τόσο τηςκύριας όσο και της κρυϕής µνήµης, χωρίς να προκαλείται σηµαντική επιβάρυνση στην επίδοσητης εϕαρµογής.Η χρήση του προτύπου OpenMP είναι ιδιαίτερα δηµοϕιλής στη συγκεκριµένη κατηγορία, καθώς,αντίθετα µε άλλα περιβάλλοντα πολυνηµατικής επεξεργασίας, η αυστηρή και καλώς ορισµένηδοµή των πολυνηµατικών περιοχών σε OpenMP επιτρέπει στον SDSM µεταγλωττιστή την ανάλυσηκαι βελτιστοποίηση των παράλληλων περιοχών, ιδιαίτερα σε θέµατα συγχρονισµού και επικοινωνίας.Στις εργασίες [KKH03] (µεταγλωττιστής ParADE για OpenMP) και [HLCZ00] (πολυνηµατικήυλοποίηση TreadMarks) παρουσιάζονται µάλιστα πολυνηµατικές SDSM υλοποιήσεις


2.2 Μοντέλα Παράλληλου Προγραµµατισµού 29για SMP συστοιχίες, που προσοµοιώνουν σε επίπεδο µεταγλωττιστή τη λογική του υβριδικούπαράλληλου προγραµµατιστικού µοντέλου για αποδοτικότερη αξιοποίηση µιας ιεραρχικής αρχιτεκτονικήςκατανεµηµένης µοιραζόµενης µνήµης. Πάντως, συνολικά η SDSM προσέγγιση τυγχάνειπεριορισµένης αποδοχής από την επιστηµονική κοινότητα, ίσως γιατί βρίσκεται ακόµα σεαρκετά πρώιµο στάδιο βελτιστοποίησης, επιτυγχάνοντας αισθητά χαµηλότερη επίδοση σε σχέσηµε το µοντέλο ανταλλαγής µηνυµάτων [SSOB03].2. Η εισαγωγή νέων γλωσσών παράλληλου προγραµµατισµού, που προβλέπουν συντακτικά την προσπέλασηενός κατανεµηµένου συστήµατος µνήµης κυρίως µέσω επέκτασης του τύπου και τουτρόπου πρόσβασης των δεδοµένων. Τέτοιες περιπτώσεις είναι η Unified <strong>Parallel</strong> C [EGCD02,Con05], η Co-Array Fortran - CAF [NR98] και η High Per<strong>for</strong>mance Fortran - HPF [MH95,For97]. Η διαϕορά µε την προηγούµενη κατηγορία έγκειται στο ότι εδώ ο χρήστης δεν επαϕίεταιστη διάϕανη υλοποίηση µοιραζόµενου χώρου µνήµης κατά τον προγραµµατισµό, αλλά αντίθεταενσωµατώνει ο ίδιος τη σχετική σηµασιολογία, π.χ. µε έναν επιπλέον δείκτη σε δοµή τύπου πίνακα,που υποδεικνύει το νήµα ιδιοκτήτη. Για παράδειγµα, η Unified <strong>Parallel</strong> C (UPC) επεκτείνειτο ANSI C πρότυπο µε δυνατότητες πολυνηµατικού παράλληλου προγραµµατισµού. Τα νήµαταµοιράζονται µέρος του χώρου διευθύνσεων µνήµης τους και διατηρούν τόσο µοιραζόµενα όσοκαι ιδιωτικά δεδοµένα. Ο προγραµµατιστής µπορεί να ϕροντίσει να κατανεµηθούν ϕυσικά ταµοιραζόµενα δεδοµένα µεταξύ των νηµάτων κατά τέτοιο τρόπο, ώστε να τοποθετηθούν στηντοπική µνήµη του νήµατος που αναµένεται να τα προσπελάζει συχνότερα. Το UPC πρότυποεπιτρέπει καθορισµό χαλαρής ή αυστηρής συνέπειας µνήµης, δυναµική διαχείριση µοιραζόµενηςµνήµης και ασύγχρονες λειτουργίες συγχρονισµού (barrier), που επιτρέπουν την επικάλυψη τηςϕάσης συγχρονισµού των νηµάτων µε τοπικούς υπολογισµούς. Το πρότυπο βρίσκεται ακόµα σεπρώιµα στάδια ανάπτυξης, όπως καταδεικνύουν και οι σχετικοί προβληµατισµοί για τις ασάϕειεςστη σηµασιολογία της συνέπειας µνήµης [KW04] αλλά και η µέτρια απόδοση που έχει καταγρα-ϕεί σε σχέση µε άλλα παράλληλα προγραµµατιστικά µοντέλα [CDMC + 05]. Εν πολλοίς, η προσπάθειααυτή θα κριθεί στην πράξη από την ανάπτυξη βελτιστοποιηµένων µεταγλωττιστών γιατις δηµοϕιλέστερες παράλληλες αρχιτεκτονικές, δεδοµένης της κατά τ' άλλα ευρύτατης αποδοχήςτων γλωσσών C και Fortran στην επιστηµονική κοινότητα για τον προγραµµατισµό υψηλώνεπιδόσεων.3. Η απόπειρα προτυποποίησης εργαλείων αυτόµατης και ηµιαυτόµατης παραλληλοποίησης αλγορίθµων.Ιδιαίτερα αξιόλογες εργασίες στο συγκεκριµένο πεδίο συναντάµε στην περίπτωσητων Nano-reads [MLNA96, PMN + 98], του µεταγλωττιστή SUIF αυτόµατης παραλληλοποίησης[HAA + 96] καθώς και του περιβάλλοντος Omega [KMP + 96]. Εν γένει, η διαδικασία της


30 Παράλληλη Επεξεργασίααυτόµατης παραλληλοποίησης θεωρεί ως είσοδο ένα σειριακό πρόγραµµα και µέσω σύνθετωντεχνικών ανάλυσης εξαρτήσεων και εξαγωγής παραλληλισµού επιχειρεί να µετασχηµατίσει τοναρχικό κώδικα σε ισοδύναµη παράλληλη εκδοχή, κατά το δυνατό χωρίς την παρέµβαση του χρήστη(αυτόµατη παραλληλοποίηση) ή έστω µε σχετικά µικρή καθοδήγηση από αυτόν (ηµιαυτό-µατη παραλληλοποίηση). Πρόκειται προϕανώς για το πλέον ϕιλόδοξο εγχείρηµα στο χώρο τηςΠαράλληλης Επεξεργασίας, καθώς η ποικιλοµορϕία των αλγορίθµων θέτει σε αµϕισβήτηση ακό-µα και το κατά πόσο η αµιγώς αυτόµατη παραλληλοποίηση αποτελεί εϕικτό και δόκιµο στόχο.Τέλος, σύντοµα έγινε αντιληπτό πως το µοντέλο ανταλλαγής µηνυµάτων σε µεγάλο βαθµό δυσχεραίνειτο διαχωρισµό της επικοινωνίας µε το συγχρονισµό. Στη ϕιλοσοϕία όµως του παράλληλουπρογραµµατισµού ο συγχρονισµός και ο παραλληλισµός είναι έννοιες αντίρροπες, συνεπώς συγχρονισµόςθα πρέπει να επιβάλλεται µόνο ρητά εϕόσον κρίνεται σηµασιολογικά απαραίτητος, και όχι έµµεσαή ακούσια. Απόρροια της παραπάνω διαπίστωσης αποτελεί η προδιαγραϕή της δυνατότητας για Απο-µακρυσµένη Προσπέλαση Μνήµης (Remote Memory Access - RMA) στο πρότυπο MPI-2 [GLT99]: οπρογραµµατιστής θα πρέπει ρητά να καλεί λειτουργίες συγχρονισµού για να διαχωρίζει ϕάσεις τοπικήςκαι αποµακρυσµένης πρόσβασης, ώστε να µην απασχολούνται περισσότερες των απολύτως απαραίτητωνδιεργασιών σε κάποια προσπέλαση δεδοµένων. Καθώς η υποστήριξη του MPI-2 προτύπου από τιςυπάρχουσες MPI υλοποιήσεις βρίσκεται ακόµα σε πρώιµο στάδιο, η RMA προσέγγιση για την επικοινωνίαµεταξύ διεργασιών αναµένεται να διερευνηθεί και να αξιολογηθεί πολύ πιο διεξοδικά στο άµεσοµέλλον.


ΚΕΦΑΛΑΙΟ 3Αλγοριθµικό Μοντέλο Φωλιασµένων ΒρόχωνΟι αλγοριθµικές περιγραϕές ϕωλιασµένων βρόχων αποτελούν µια από τις δηµοϕιλέστερες κατηγορίεςεϕαρµογών που υπόκεινται σε παραλληλοποίηση µε στόχο τόσο την επιτάχυνση του χρόνου εκτέλεσηςόσο και την αντιµετώπιση προβληµάτων αυξηµένης χωρικής πολυπλοκότητας. Η σηµασία των ϕωλιασµένωνβρόχων καταδεικνύεται από την πληθώρα των εργασιών στη διεθνή βιβλιογραϕία, που εδώ καιδύο τουλάχιστον δεκαετίες καταπιάνονται τόσο µε τη θεωρητική µελέτη και µοντελοποίησή τους όσοκαι µε τεχνικές απεικόνισης σε παράλληλες αρχιτεκτονικές και βελτιστοποίησης της εκτέλεσης. Το µοντέλοτων ϕωλιασµένων βρόχων είναι ιδιαίτερα σύνθετο και παρέχει µια ποικιλοµορϕία αλγοριθµικώνπεριγραϕών. Για οριοθέτηση της θεωρητικής µελέτης και συστηµατοποίηση της πειραµατικής διερεύνησηςτεχνικών βελτιστοποίησης, συχνά υιοθετούνται διάϕορες λιγότερο ή περισσότερο περιοριστικέςπαραδοχές στο µοντέλο των ϕωλιασµένων βρόχων, όπως η θεώρηση τέλεια ϕωλιασµένων βρόχων και ηπαραδοχή για οµοιόµορϕες µη αρνητικές εξαρτήσεις δεδοµένων, που δεχόµαστε και στην παρούσα εργασία.Εντούτοις, η διευρυµένη χρήση αλγοριθµικών περιγραϕών ϕωλιασµένων βρόχων στον πυρήναπολλών επιστηµονικών εϕαρµογών καθιστά τους ϕωλιασµένους βρόχους εκ των πραγµάτων σηµαντικούς,ιδιαίτερα δε στο χώρο του υπολογισµού υψηλών επιδόσεων και της παράλληλης επεξεργασίας.3.1 Αλγοριθµικό ΜοντέλοΤο αλγοριθµικό µοντέλο των υπό παραλληλοποίηση προγραµµάτων αϕορά τέλεια ϕωλιασµένους βρόχους(perfectly nested loops) µε οµοιόµορϕες µη αρνητικές εξαρτήσεις δεδοµένων (uni<strong>for</strong>m nonnegative


32 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχωνdata dependencies). Οι βρόχοι αυτοί χαρακτηρίζονται ισοδύναµα και ως πλήρως αντιµεταθέσιµοι (fullypermutable), καθώς λόγω της ϕύσης των εξαρτήσεων δεδοµένων επιτρέπεται η εναλλαγή δύο οποιωνδήποτεεπαναληπτικών εντολών του ϕωλιασµένου βρόχου. Όλα τα παράλληλα προγραµµατιστικάµοντέλα που εξετάζονται στο πλαίσιο της παρούσας εργασίας µπορούν να εϕαρµοστούν άµεσα σε£οποιονδήποτε αλγόριθµο εµπίπτει στην κατηγορία αυτή.Είναι σαϕές ότι το εν λόγω αλγοριθµικό µοντέλο είναι σχετικά περιορισµένο, κυρίως λόγω του ότιεξετάζει τέλεια ϕωλιασµένους βρόχους (σε αντιδιαστολή µε γενικότερες αλγοριθµικές περιγραϕές, π.χ.µη τέλεια ϕωλιασµένους βρόχους) και προϋποθέτει οµοιόµορϕες (σταθερές) µη αρνητικές εξαρτήσειςδεδοµένων. Παρά τους περιορισµούς αυτούς, οι ϕωλιασµένοι βρόχοι αποτελούν τη συχνότερα απαντώ-µενη κατηγορία υπολογιστικά απαιτητικών αλγοριθµικών περιγραϕών, που εµϕανίζεται σε πληθώραεπιστηµονικών εϕαρµογών. Σηµαντικός όγκος από σχετικές εϕαρµογές, που εντάσσονται στο υπό εξέτασηαλγοριθµικό µοντέλο, πηγάζει από τη διακριτοποίηση Μερικών ∆ιαϕορικών Εξισώσεων - Μ∆Ε(Partial Differential Equations - PDEs). Οι Μ∆Ε µπορούν να διακριτοποιηθούν στη µορϕή αλγοριθ-µικών περιγραϕών τριπλά ή τετραπλά ϕωλιασµένων βρόχων, που αντιστοιχούν σε δύο ή τρεις χωρικέςκαι ενδεχοµένως µία χρονική µεταβλητή. Αλγόριθµοι Μ∆Ε βρίσκουν εϕαρµογή σε ποικίλα επιστηµονικάπεδία, όπως η ρευστοδυναµική, η αεροναυπηγική, η µετεωρολογία, η βιολογία, η γραµµική άλγεβρακ.ά.Επιπλέον, θα πρέπει να τονιστεί ότι η επιλογή του συγκεκριµένου αλγοριθµικού µοντέλου στο πλαίσιοτης παρούσας εργασίας έγινε αποκλειστικά για λόγους απλοποίησης της πειραµατικής διαδικασίας,καθώς οι προτεινόµενες προγραµµατιστικές βελτιστοποιήσεις βρίσκουν χωρίς σηµαντικές αλλαγέςεϕαρµογή σε γενικότερα παράλληλα προγραµµατιστικά µοντέλα για αρχιτεκτονικές κατανεµηµένηςµοιραζόµενης µνήµης. Άλλωστε, όπως θα ϕανεί και στη συνέχεια κατά την αναλυτική παρουσίαση τωνπροτεινόµενων τεχνικών και βελτιστοποιήσεων, τα στοιχεία της απλότητας και της εϕαρµοσιµότηταςαποτέλεσαν βασικούς σχεδιαστικούς άξονες, στους οποίους δόθηκε ξεχωριστή προτεραιότητα. Συνεπώς,σε πολλές περιπτώσεις το εν λόγω αλγοριθµικό µοντέλο δεν συνιστά περιορισµό του ερευνητικούπεδίου, αλλά απλώς αϕαιρετική σχηµατοποίηση τυπικών επιστηµονικών εϕαρµογών που παραλληλοποιούνταισε αρχιτεκτονικές υψηλών επιδόσεων.3.1.1 Φωλιασµένοι ΒρόχοιΤο γενικό µοντέλο των αλγορίθµων, που εξετάζονται στο πλαίσιο της παρούσας εργασίας, είναι εκείνοπου αποδίδεται σχηµατικά στον αλγόριθµο 3.1. Ο αλγόριθµος αυτός αποτελεί τη γενική σχηµατικήπεριγραϕή εϕαρµογής πλήρως αντιµεταθέσιµων βρόχων, όπου ένα διάνυσµα επαναλήψεων ⃗j =(j 1 , . . . , j N+1 ) σαρώνει ένα N + 1-διάστατο χώρο [1 . . . X 1 ] × · · · × [1 . . . X N ] × [1 . . . Z]. Ακόµακι αν ο χώρος επαναλήψεων είναι της µορϕής [L 1 . . . U 1 ] × · · · × [L N . . . U N ] × [L N+1 . . . U N+1 ] µε


3.1 Αλγοριθµικό Μοντέλο 33L i ≠ 1 για κάποια i, 1 ≤ i ≤ N + 1, ο αλγόριθµος µπορεί παρόλα αυτά να γραϕεί εύκολα στην πρώτηµορϕή µε την απλή αντικατάσταση j i → j i − L i + 1, οπότε προκύπτει και ότι X i = U i − L i + 1.Αλγόριθµος 3.1: Αλγοριθµικό µοντέλο πλήρως αντιµεταθέσιµων βρόχων123456789<strong>for</strong> j 1 ← 1 to X 1 do...<strong>for</strong> j N ← 1 to X N do<strong>for</strong> j N+1 ← 1 to Z do3¤:©¦QPDR A,⃗j, ;end<strong>for</strong>end<strong>for</strong>...end<strong>for</strong>Στο σώµα των βρόχων (loop body) πραγµατοποιούνται συνήθως υπολογισµοί, που αϕορούν στοιχείαενός ή περισσοτέρων πολυδιάστατων πινάκων. Ο τρόπος µε τον οποίο τα στοιχεία των πινάκωνδεικτοδοτούνται στο σώµα των βρόχων από το διάνυσµα επανάληψης ⃗j ενδέχεται να επιβάλλει περιορισµούςστην ακολουθία υπολογισµών, υπό την έννοια ότι κάποια στοιχεία χρησιµοποιούνται για τονυπολογισµό της τιµής άλλων στοιχείων. Οι περιορισµοί αυτοί µοντελοποιούνται αυστηρά από τον πίνακαεξαρτήσεων δεδοµένων D = [ d ⃗(1) , . . . , d ⃗(m) ] του αλγορίθµου, όπου d ⃗(i) = (d (i)1 , . . . , d(i) N+1 ) τοi-οστό από τα m συνολικά διανύσµατα εξάρτησης δεδοµένων.3.1.2 Χώρος ΕπαναλήψεωνΓια τον τυπικό ορισµό του υπό εξέταση αλγοριθµικού µοντέλου θα χρειαστεί να αποσαϕηνίσουµε κάποιεςθεµελιώδεις έννοιες που σχετίζονται µε τη θεωρητική περιγραϕή των ϕωλιασµένων βρόχων, όπωςο χώρος επαναλήψεων και οι εξαρτήσεις δεδοµένων. Στις έννοιες αυτές αναϕερθήκαµε ήδη στην προηγούµενηενότητα, χωρίς όµως να επεξηγήσουµε ιδιαίτερα το περιεχόµενό τους. Χάριν µαθηµατικήςπληρότητας, στην παρούσα ενότητα θα αναϕερθούµε εν συντοµία στους αυστηρούς ορισµούς των εννοιώναυτών.Ορισµός 3.1 (Χώρος Επαναλήψεων). Ορίζουµε ως χώρο επαναλήψεων (iteration space) ενός αλγορίθµουϕωλιασµένων βρόχων διάστασης N + 1 που σαρώνεται από τις µεταβλητές ελέγχου j 1 , . . . , j N+1 τονυποχώρο J = {⃗j = (j 1 , . . . , j N+1 ) |L i ≤ j i ≤ U i , 1 ≤ i ≤ N + 1} του N N+1 , όπου L i , U i τα κάτωκαι άνω όρια της µεταβλητής ελέγχου j i στον i-στό βρόχο, αντίστοιχα.Ο χώρος επαναλήψεων ενός αλγορίθµου ϕωλιασµένων βρόχων αποτελείται ουσιαστικά από όλατα σηµεία που ορίζονται από τις τιµές που λαµβάνουν οι µεταβλητές ελέγχου των βρόχων καθώς δια-


34 Αλγοριθµικό Μοντέλο Φωλιασµένων ΒρόχωνΑλγόριθµος 3.2: Παράδειγµα αλγορίθµου ϕωλιασµένων βρόχων1234567<strong>for</strong> j 1 ← 0 to 5 do<strong>for</strong> j 2 ← 0 to 3 do<strong>for</strong> j 3 ← 0 to 7 doA[j 1 , j 2 , j 3 ] = (A[j 1 − 1, j 2 , j 3 ] + A[j 1 , j 2 − 1, j 3 ] + A[j 1 , j 2 , j 3 − 2])/3;end<strong>for</strong>end<strong>for</strong>end<strong>for</strong>108<strong>for</strong>(j 1 =0; j 1


3.1 Αλγοριθµικό Μοντέλο 35Γεωµετρικά, ο χώρος επαναλήψεων του αλγορίθµου αυτού αντιστοιχεί στο σύνολο διακριτών σηµείωνπου απεικονίζονται στο σχήµα 3.1.Στο πλαίσιο της παρούσας διατριβής θα αναϕερθούµε σε ορθογώνιους χώρους επαναλήψεων τηςµορϕής [1 . . . X 1 ] × · · · × [1 . . . X N ] × [1 . . . Z]. Η επιλογή αυτή δεν αποτελεί τεχνητή σύµβαση,αλλά αντίθετα αντανακλά σε προγραµµατιστικό επίπεδο τη συνήθη πρακτική τεχνικών αριθµητικήςεπίλυσης. Έτσι, ακόµα και αν ο ϕυσικός χώρος εϕαρµογής του προβλήµατος είναι µορϕολογικά περισσότεροσύνθετος από ορθογώνιος, για απλότητα συνήθως θεωρείται ένας περιβάλλοντας ορθογώνιοςχώρος, που π.χ. περικλείει τον αρχικό ή στον οποίο µπορεί εύκολα να αντιστοιχιστεί ο αρχικόςµε χρήση κατάλληλου µετασχηµατισµού. Η διακριτοποίηση του νέου ορθογώνιου ϕυσικού πεδίουθα οδηγήσει στον υπολογισµό διακριτών τιµών σε ένα επίσης ορθογώνιο χώρο επαναλήψεων,της µορϕής που θεωρήσαµε παραπάνω. Χάριν συντοµίας, θα αναϕερόµαστε στο χώρο επαναλήψεων[1 . . . X 1 ] × · · · × [1 . . . X N ] × [1 . . . Z] ως X 1 × · · · × X N × Z.3.1.3 Εξαρτήσεις ∆εδοµένωνΟι εξαρτήσεις δεδοµένων είναι ιδιαίτερα βασική έννοια στους ϕωλιασµένους βρόχους. Μάλιστα, ησηµασία της θα αναδειχθεί ιδίως κατά τη διαδικασία παραλληλοποίησης, καθώς οι εξαρτήσεις συνδέονταιάρρηκτα µε την αναγκαιότητα επικοινωνίας και συγχρονισµού µεταξύ των ϕορέων εκτέλεσηςτου παράλληλου προγράµµατος, στοιχείο που αποτελεί και το βασικότερο παράγοντα περιορισµού τηςεπίδοσης της παραλληλίας.Ορισµός 3.2 (Εξάρτηση ∆εδοµένων). Ορίζουµε ότι υπάρχει εξάρτηση δεδοµένων (data dependence) απόµια επανάληψη ⃗j προς µια επανάληψη ⃗ j ′ ενός ϕωλιασµένου βρόχου διάστασης N + 1 αν και µόνο αν• η ⃗j προηγείται λεξικογραϕικά της ⃗ j ′ (γράϕουµε ⃗j ≺ ⃗ j ′ ⇔ {∃k ∈ N, 1 ≤ k ≤ N + 1 | (j k


36 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχωνδεδοµένων ορίζεται ακριβέστερα στη διεθνή βιβλιογραϕία ως διάνυσµα απόστασης (distance vector),σε αντιδιαστολή µε το διάνυσµα κατεύθυνσης (direction vector) που είναι γενικότερο και µπορεί να περιγράψειτη ϕύση της εξάρτησης σε κάποια διάσταση [WL91b]. Τα διανύσµατα απόστασης επαρκούνγια την περιγραϕή των εξαρτήσεων του υπό εξέταση αλγοριθµικού µοντέλου, συνεπώς θα είναι αυτάπου θα χρησιµοποιηθούν στη συνέχεια.Ιδιαίτερα χρήσιµος για τη µαθηµατική µοντελοποίηση των εξαρτήσεων σε περιγραϕές ϕωλιασµένωνβρόχων είναι ο πίνακας εξάρτησης δεδοµένων:Ορισµός 3.4 (Πίνακας Εξάρτησης ∆εδοµένων). Ορίζουµε ως πίνακα εξάρτησης δεδοµένων D για αλγόριθµοN+1 ϕωλιασµένων βρόχων µε m διανύσµατα εξάρτησης δεδοµένων d ⃗ ()(l) = d (l)1 , . . . , d(l) N+1, 1 ≤l ≤ m τον πίνακα που έχει ως στήλες τα ⃗ d (l) , δηλαδή τον (N + 1) × m πίνακα⎡⎤d (1)1 d (2)1 · · · d (m)1d (1)2 d (2)2 · · · d (m)2D =(3.1)⎢⎣ . . · · · . ⎥⎦d (1)N+1d (2)N+1· · · d (m)N+1Για παράδειγµα, ο πίνακας εξάρτησης δεδοµένων του αλγορίθµου 3.2 µε τα αντίστοιχα διανύσµαταεξάρτησης ως στήλες δίνεται από τη σχέσηD =⎡⎢⎣1 0 00 1 00 0 2ενώ γεωµετρικά τα διανύσµατα εξάρτησης έχουν σηµειωθεί στο χώρο επαναλήψεων του σχήµατος 3.2.Στο πλαίσιο της παρούσας εργασίας θα περιοριστούµε στην εξέταση σταθερών εξαρτήσεων δεδοµένων,δηλαδή δεχόµαστε ότι για κάθε διάνυσµα εξάρτησης δεδοµένων d ⃗(l)= (d (l)1 , . . . , d(l) N+1 ),1 ≤ l ≤ m, του αλγορίθµου 3.1 θα ισχύει d (l)i= σταθερό, 1 ≤ i ≤ N + 1. Επιπλέον, θα εξετάσουµεεξαρτήσεις δεδοµένων τύπου ροής (flow dependencies), σε αντιδιαστολή µε τις εξαρτήσεις εξόδου (outputdependencies) ή τις αντιεξαρτήσεις (anti-dependencies). Πιο συγκεκριµένα, οι εξαρτήσεις ροής αϕορούνπεριπτώσεις στις οποίες δεδοµένα που υπολογίζονται σε κάποια επανάληψη θα χρησιµοποιηθούνγια τον υπολογισµό άλλων δεδοµένων σε µεταγενέστερη επανάληψη (η εγγραϕή προηγείται της ανάγνωσης).Η περίπτωση αυτή είναι η πλέον συνήθης που συναντάται σε επιστηµονικούς αλγορίθµουςεπαναληπτικής ϕύσεως και εξετάζεται σχεδόν κατ' αποκλειστικότητα στη διεθνή βιβλιογραϕία. Στιςεξαρτήσεις εξόδου έχουµε διαδοχικές τροποποιήσεις της τιµής του ίδιου δεδοµένου (εγγραϕή ακολουθείταιαπό εγγραϕή), συνεπώς µπορούν εύκολα να απαλειϕθούν, καθώς σηµασιολογικά µόνο η τελευταίαεγγραϕή πρέπει να διατηρηθεί. Οµοίως, οι αντιεξαρτήσεις (ανάγνωση προηγείται της εγγραϕής,⎤⎥⎦


3.2 Βασικές Παραδοχές 37<strong>for</strong>(j 1 =0; j 1


38 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχωνλιασµένων βρόχων, το είδος του υπολογισµού στο σώµα των ϕωλιασµένων βρόχων, τη µορϕή του χώρουεπαναλήψεων, καθώς και κυριότερα τις εξαρτήσεις δεδοµένων του αλγορίθµου. Με βάση τη διάκρισηαυτή, µπορούµε να επισηµάνουµε τις ακόλουθες παραδοχές στο αλγοριθµικό µας µοντέλο:1. Μορϕή ϕωλιασµένων βρόχωνΣτην παρούσα εργασία θα καταπιαστούµε µε την εξέταση τέλεια ϕωλιασµένων βρόχων, σε αντιδιαστολήµε άλλες, γενικότερες περιγραϕές ϕωλιασµένων βρόχων. Για παράδειγµα, σε αλγορίθ-µους µη τέλεια ϕωλιασµένων βρόχων παρεµβάλλονται επιπλέον κι άλλες εντολές µεταξύ τωνεντολών διάσχισης των επαναλήψεων των βρόχων. Στους τέλεια ϕωλιασµένους βρόχουςπου θα εξετάσουµε, κάθε επανάληψη συσχετίζεται µε την ίδια ακολουθία υπολογισµών και συνεπώςπροσεγγιστικά µε το ίδιο υπολογιστικό ϕορτίο. Κάτι τέτοιο δεν ισχύει στη γενική περίπτωση£ϕωλιασµένων βρόχων, γεγονός που καθιστά την οµοιόµορϕη κατανοµή των επαναλήψεων µεταξύτων ϕορέων παράλληλης εκτέλεσης µη βέλτιστη επιλογή από πλευράς απόδοσης για τηνκατηγορία αυτή. Εντούτοις, όλες οι τεχνικές που αναϕέρονται στην εργασία αυτή µπορούν ναεϕαρµοστούν και σε περιγραϕές µη τέλεια ϕωλιασµένων βρόχων, εϕόσον οι τελευταίες µετασχη-µατιστούν σε ισοδύναµες περιγραϕές τέλεια ϕωλιασµένων βρόχων µε χρήση εντολών .2. Είδος υπολογισµού¡0Για απλότητα, και χωρίς βλάβη της γενικότητας, θεωρούµε ότι οι υπολογισµοί στο σώµα τωνβρόχων σχετίζονται µε τις τιµές των στοιχείων ενός πίνακα A. Η χρήση µοναδικού πίνακα γίνεταικαθαρά για λόγους ευκολίας και δεν συνιστά περιορισµό, αϕού οι προτεινόµενες τεχνικέςκαι µεθοδολογίες µπορούν να εϕαρµοστούν αυτούσιες σε περιπτώσεις πιο σύνθετων σωµάτωντων βρόχων. Στους αλγορίθµους θα υιοθετήσουµε µια αϕαιρετική αναπαράσταση του υπολογισµούµέσω µιας γενικής συνάρτησης σε αντιδιαστολή µε αναϕορά σε συγκεκριµένοείδος υπολογισµού (π.χ. απλή εντολή ανάθεσης παράστασης, περισσότερο σύνθετη δοµή ελέγχουή ακόµα και κλήση συνάρτησης βιβλιοθήκης). Άλλωστε, το εκάστοτε σώµα υπολογισµού3¤:$©©¦θα χαρακτηρίζεται µακροσκοπικά κυρίως από το χώρο επαναλήψεων και τις εξαρτήσεις δεδοµένων,ενώ στην περίπτωση της εξισορρόπησης ϕορτίου θα κάνουµε χρήση και του µέσου χρόνουυπολογισµού ανά επανάληψη.3. Μορϕή χώρου επαναλήψεωνΓια τους λόγους που αναϕέραµε στην ενότητα 3.1.2 θα εξετάσουµε µόνο ορθογώνιους χώρουςεπαναλήψεων. Θα θεωρήσουµε συνεπώς ότι οι χώροι επαναλήψεων είναι της µορϕής [1 . . . X 1 ]×· · · × [1 . . . X N ] × [1 . . . Z] ή σε συµπτυγµένη µορϕή X 1 × · · · × X N × Z. Όπως αναλύθηκε, ηθεώρηση κατάλληλων ορθογώνιων πεδίων εϕαρµογής συνάδει µε τις συνήθεις πρακτικές αριθ-


3.2 Βασικές Παραδοχές 39µητικής επίλυσης, ακόµα και στην περίπτωση πιο σύνθετων ϕυσικών πεδίων. Κατά συνέπεια, τοπλήθος των αλγορίθµων που θεωρούν ορθογώνιους χώρους επαναλήψεων είναι ιδιαίτερα ευρύ,ώστε η συγκεκριµένη παραδοχή να µη συνιστά ιδιαίτερο περιορισµό.4. Εξαρτήσεις δεδοµένωνΟι περισσότερες παραδοχές που θα κάνουµε αϕορούν στη ϕύση των εξαρτήσεων δεδοµένων, πουσχετίζονται µε τους υπό παραλληλοποίηση αλγορίθµους. Συγκεκριµένα, δεχόµαστε τα εξής:(α) Οι εξαρτήσεις δεδοµένων είναι οµοιόµορϕες και µη αρνητικές, δηλαδή σταθερές και µε όλεςτις συνιστώσες τους µη αρνητικές. Η παραδοχή αυτή συνιστά ενδεχοµένως και το βασικότεροπεριορισµό του αλγοριθµικού µοντέλου, καθώς περιορίζει ϕαινοµενικά το εύρος τωνυπό παραλληλοποίηση εϕαρµογών σε εκείνες που σχετίζονται µε µονόδροµη ροή πληρο-ϕορίας. Ωστόσο, είναι σηµαντικό να επισηµάνουµε ότι ο περιορισµός για οµοιόµορϕες µηαρνητικές εξαρτήσεις δεδοµένων οϕείλεται αποκλειστικά στη χρήση του µετασχηµατισµούυπερκόµβων για την επίτευξη χονδροειδή παραλληλισµού. Όπως θα δούµε, οι βασικές προγραµµατιστικέςβελτιστοποιήσεις που προτείνουµε επεκτείνονται άµεσα στο σύνολο τωναλγορίθµων τέλεια ϕωλιασµένων βρόχων µε εξαρτήσεις δεδοµένων τύπου ροής.(β) Στον αλγόριθµο 3.1 θα θεωρήσουµε ότι ο βαθµός rank(D) του πίνακα D ισούται µε N +1,δηλαδή ότι υπάρχουν N + 1 γραµµικά ανεξάρτητα διανύσµατα εξάρτησης δεδοµένων. Ανυπάρχουν λιγότερα από N + 1 γραµµικά ανεξάρτητα διανύσµατα εξάρτησης (rank(D)


40 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχωνσυνθήκη:⎛⎡rank(D) = rank⎜⎢⎝⎣d (1)1 d (2)1 · · · d (m)1d (1)2 d (2)2 · · · d (m)2.. · · ·d (1)N+1d (2)N+1· · · d (m)N+1.⎤⎞= N + 1 (3.2)⎥⎟⎦⎠(γ) Επιπλέον, θα θεωρήσουµε ότι ο πίνακας εξαρτήσεων D είναι διαγώνιος, δηλαδή θα υποθέσουµεότι ο αλγόριθµος περιέχει µόνο εξαρτήσεις παράλληλες µε τις µοναδιαίες διευθύνσειςτου N +1-διάστατου χώρου. Ακόµα κι αν κάτι τέτοιο δεν ισχύει, µπορούµε να εϕαρµόσου-µε όλες τις προτεινόµενες µεθοδολογίες της παρούσας εργασίας ορίζοντας αρχικά ένα νέοπίνακα εξαρτήσεων D ′ = diag(d ′ i ), όπου d′ i = max{d(j) i, 1 ≤ j ≤ m}, και εϕαρµόζονταςτις τεχνικές έµµεσης ανταλλαγής µηνυµάτων (indirect message passing) που περιγράϕονταιστην εργασία [TZ94]. Έτσι, η παραδοχή ορθογωνίων εξαρτήσεων δεδοµένων σε καµία περίπτωσηδεν συνιστά πρόσθετο περιορισµό του αλγοριθµικού µοντέλου. Θα θεωρήσουµεσυνεπώς ότι⎡⎤d 1 0 · · · 00 d 2 · · · 0D =⎢⎣ . . · · · . ⎥⎦0 0 · · · d N+1(3.3)(δ) Το µέτρο των διανυσµάτων εξάρτησης είναι µικρότερο από τις διαστάσεις του υπερκόµβου,όπως αυτός ορίζεται από τον αντίστοιχο µετασχηµατισµό H που υιοθετείται κατά τηδιαδικασία παραλληλοποίησης του προγράµµατος. Τυπικά, δοθέντων m το πλήθος διανυσµάτωνεξάρτησης ⃗ d (l) , 1 ≤ l ≤ m, ενός χώρου επαναλήψεων X 1 × · · · × X N × Zδιάστασης N + 1 και ενός µετασχηµατισµού υπερκόµβων H = diag {h 11 , . . . , h NN , z},αρκεί να πληρείται η ακόλουθη σχέση:⌈ ⌉|d (l) Xii| < , ∀i, 1 ≤ i ≤ N (3.4)h iiΗ παραδοχή αυτή ισοδυναµεί µε τη διαπίστωση ότι στην παράλληλη διαµερισµένη εκδοχήτου προγράµµατος θα απαιτείται επικοινωνία µόνο µεταξύ γειτονικών διεργασιών, δηλαδήµεταξύ διεργασιών που αναλαµβάνουν την εκτέλεση γειτονικών ακολουθιών από υπερκόµβους.Γενικά, η συγκεκριµένη παραδοχή κρίνεται ρεαλιστική, δεδοµένου ότι µια τυπικήυπολογιστικά απαιτητική εϕαρµογή χαρακτηρίζεται από υψηλή χωρική πολυπλοκότητα,


3.3 Παράδειγµα: Μερικές ∆ιαϕορικές Εξισώσεις 41ενώ οι εξαρτήσεις στη συντριπτική πλειοψηϕία των περιπτώσεων συσχετίζουν γειτονικές ήέστω αρκούντως κοντινές επαναλήψεις. Έτσι, για κάθε δυνατή διαµέριση του αρχικού αλγορίθµουυπό την εϕαρµογή ενός µετασχηµατισµού υπερκόµβων, οι εξαρτήσεις αϕορούνµόνο γειτονικούς υπερκόµβους και δεν οδηγούν σε αναγκαιότητα επικοινωνίας µεταξύ απο-µακρυσµένων διεργασιών.(ε) Τέλος, όπως προαναϕέραµε θα περιοριστούµε σε εξαρτήσεις ροής, έναντι των αντιεξαρτήσεωνκαι των εξαρτήσεων εξόδου, καθώς οι δύο τελευταίες κατηγορίες µπορούν εύκολα νααπαλειϕθούν µε τεχνικές που αναϕέραµε παραπάνω.Επιπλέον, θα πρέπει να επισηµανθεί πως στη συνήθη περίπτωση η παράµετρος N δεν υπερβαίνειτην τιµή 2 ή το πολύ 3, καθώς οι αλγόριθµοι αυτοί ως επί το πλείστον µοντελοποιούν ϕυσικά χωροχρονικάϕαινόµενα. Η παρατήρηση αυτή δεν συνιστά παραδοχή, ενώ και η µεθοδολογία που θα αναπτυχθείστη συνέχεια είναι αρκετά γενική, ώστε να καλύπτει τη γενική N +1-διάστατη περίπτωση. Ωστόσο, τοπρακτικά περιορισµένο εύρος τιµών της διάστασης N θα πρέπει να λαµβάνεται υπόψη κατά τη θεωρητικήανάλυση εκϕράσεων πολυπλοκότητας που εµπλέκουν την παράµετρο αυτή, ώστε να αποδίδεταιµια ρεαλιστική εικόνα της αλγοριθµικής επίδοσης.3.3 Παράδειγµα: Μερικές ∆ιαϕορικές ΕξισώσειςΒασική κατηγορία εϕαρµογών που επιλύονται επαναληπτικά µέσω διακριτοποίησης αποτελούν οι Μερικές∆ιαϕορικές Εξισώσεις. Μάλιστα, σε κάποιες περιπτώσεις η διακριτοποίηση τέτοιων εξισώσεωνοδηγεί σε αλγορίθµους που µπορούν να υπαχθούν άµεσα στο υπό εξέταση αλγοριθµικό µοντέλο καικατά συνέπεια να παραλληλοποιηθούν µε χρήση όλων των προτεινόµενων τεχνικών και βελτιστοποιήσεων.Στην ενότητα αυτή θα κάνουµε µια πολύ σύντοµη αναϕορά στις Μ∆Ε, τις τεχνικές διακριτοποίησηςαυτών, καθώς και σε συγκεκριµένες διακριτοποιήσεις ορισµένων τυπικών διαϕορικών εξισώσεων.Η κεντρική θέση που κατέχουν οι Μ∆Ε σε πλείστες εϕαρµογές καθιστά σκόπιµη µια τέτοια ξεχωριστήαναϕορά, έστω και µε σχετικά σύντοµο και περιληπτικό τρόπο.3.3.1 ΓενικάΑπό µαθηµατικής πλευράς, οι Μ∆Ε διαϕοροποιούνται βάσει των χαρακτηριστικών καµπυλών διάδοσηςπληροϕορίας στις ακόλουθες τρεις κατηγορίες:• υπερβολικές π.χ. η µονοδιάστατη κυµατική εξίσωση:∂ 2 u∂t 2 = v2 ∂2 u∂x 2 (3.5)


42 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχωνόπου v η ταχύτητα διάδοσης του κύµατος.• παραβολικές π.χ. η εξίσωση διάχυσης:∂u∂t = ∂ (D ∂u )∂x ∂x(3.6)όπου D ο συντελεστής διάχυσης.• ελλειπτικές π.χ. η εξίσωση Poisson:∂ 2 u∂x 2 + ∂2 u= ρ(x, y) (3.7)∂y2 όπου ρ ο όρος της πηγής (αν ρ = 0, τότε έχουµε την εξίσωση Laplace).Από υπολογιστικής πλευράς, η παραπάνω κατηγοριοποίηση δεν έχει ιδιαίτερη πρακτική αξία. Αντίθετα,περισσότερο χρήσιµη από την συγκεκριµένη οπτική γωνία θα ήταν µια ταξινόµηση στις ακόλουθεςκατηγορίες, ανάλογα µε τη ϕύση των προβληµάτων που σχετίζονται µε τις προαναϕερθείσες οµάδεςΜ∆Ε:• Προβλήµατα Αρχικών Τιµών (Initial Value Problems - IVP) Στην κατηγορία αυτή εµπίπτουνοι εξισώσεις (3.5) και (3.6). Ουσιαστικά, στην περίπτωση αυτή παρέχονται πληροϕορίες για τηντιµή της u και ενδεχοµένως χρονικών παραγώγων αυτής σε κάποια αρχική χρονική στιγµή t 0 γιακάθε σηµείο ενός χώρου ενδιαϕέροντος (domain) και ζητείται η χρονική εξέλιξη της u σε κάθεσηµείο του χώρου αυτού για t > t 0 . Τα προβλήµατα αυτά αϕορούν συνεπώς χρονική εξέλιξη, καιτο βασικό ζητούµενο είναι η ευστάθεια (stability) του αλγορίθµου επίλυσης, δηλαδή η σύγκλισητης αριθµητικής λύσης στην πραγµατική αναϕορικά µε κάποια συγκεκριµένη ακρίβεια.• Προβλήµατα Συνοριακών Τιµών (Boundary Value Problems - BVP) Στην κατηγορία αυτή εντάσσεταιη εξίσωση (3.7). Εδώ διαθέτουµε την πληροϕορία για την τιµή της συνάρτησης u στοσύνορο της περιοχής ενδιαϕέροντος, και προσπαθούµε να εξαγάγουµε την τιµή της u σε κάθεεσωτερικό σηµείο του χώρου. Στα προβλήµατα αυτά η διασϕάλιση της ευστάθειας στον αλγόριθ-µο υπολογισµού είναι σχετικά απλό ζήτηµα, και η έµϕαση µετατοπίζεται στην επίτευξη υψηλήςεπίδοσης (efficiency).Για την αριθµητική επίλυση Μ∆Ε έχουν αναπτυχθεί πλείστες τεχνικές, κάθε µία από τις οποίες προσϕέρεταιγια συγκεκριµένο υποσύνολο των παραπάνω περιπτώσεων και επιτυγχάνει διαϕορετικούςσυµβιβασµούς στα ζητήµατα ευστάθειας και επίδοσης, ανάλογα και µε τη ϕύση του συγκεκριµένουπροβλήµατος. Ως βασικότερες µεθόδους θα µπορούσε κανείς να αναϕέρει συνοπτικά τις εξής:


3.3 Παράδειγµα: Μερικές ∆ιαϕορικές Εξισώσεις 43• Μέθοδος πεπερασµένων διαϕορών (finite differencing method).• Μέθοδος πεπερασµένων στοιχείων (finite element method).• Μέθοδος Monte Carlo.• Φασµατική µέθοδος (spectral method).• Μέθοδος των µεταβολών (variational method).Στη συγκεκριµένη εργασία, θα εστιάσουµε στη µέθοδο των πεπερασµένων διαϕορών, που αποτελείάλλωστε µια ιδιαίτερα διαδεδοµένη προσέγγιση για την αριθµητική επίλυση Μ∆Ε. Η µέθοδος τωνπεπερασµένων διαϕορών βασίζεται στη διακριτοποίηση των χωρικών και χρονικών παραγώγων τηςΜ∆Ε, ώστε να διατυπωθεί µια ισοδύναµη συνεπής (consistent) και ευσταθής (stable) εξίσωση διαϕορών(differences equation). Η εξίσωση αυτή αποτελεί τη βάση για τη διαδικασία αριθµητικής επίλυσηςτης Μ∆Ε µε την περαιτέρω υιοθέτηση κάποιας µεθόδου επίλυσης, όπως η επαναληπτική µέθοδοςή η επίλυση αραιού (π.χ. τριδιαγώνιου) γραµµικού συστήµατος, ανάλογα µε το αν η εν λόγω εξίσωσηδιαϕορών χαρακτηρίζεται αντίστοιχα ως ρητή (explicit) ή πεπλεγµένη (implicit).Στην πειραµατική αξιολόγηση των προτεινόµενων τεχνικών παραλληλοποίησης και βελτιστοποίησηςθα αναϕερθούµε σε επαναληπτική επίλυση ρητών εξισώσεων διαϕορών, που έχουν προκύψει απότη διακριτοποίηση της αρχικής Μ∆Ε. Ουσιαστικά, στις περιπτώσεις αυτές υπολογίζεται επαναληπτικάη τιµή της πληροϕορίας σε κάθε θέση και χρονική στιγµή χρησιµοποιώντας την τιµή της πληροϕορίαςσε γειτονικά χωρικά και προγενέστερα χρονικά σηµεία. Πριν προχωρήσουµε λοιπόν στην υλοποίησηεπαναληπτικών αλγορίθµων υπολογισµού της λύσης των Μ∆Ε, θα επιχειρήσουµε µια σύντοµη επισκόπησητων (ρητών) διακριτοποιήσεων χώρου και χρόνου, που βρίσκονται στον πυρήνα της µεθόδου τωνπεπερασµένων διαϕορών.3.3.2 ∆ιακριτοποιήσεις ΧώρουΤα ϕυσικά µεγέθη χαρακτηρίζονται συνήθως από την έννοια της χωρικής και χρονικής συνέχειας, ενώαντίθετα οι επαναληπτικοί αλγόριθµοι εκ ϕύσεως υπολογίζουν ένα πεπερασµένο σύνολο διακριτώντιµών για το υπό εξέταση µέγεθος. Συνεπώς, απαιτείται η διακριτοποίηση (discretization) του ϕυσικούµεγέθους (π.χ. ροή, πίεση, θερµοκρασία) µέσω της διαµέρισης του χωροχρονικού πεδίου εϕαρµογήςσε διακριτά σηµεία µε χρήση κατάλληλου πλέγµατος (grid).Για παράδειγµα, µια συνάρτηση u της συνεχούς µεταβλητής x, όπου x ∈ [a, b], διακριτοποιείταιµέσω της επιλογής κάποιας πυκνότητας διακριτοποίησης ∆x για το διάστηµα [a, b] στις τιµές u j , µεu j ≡ u(j) ≡ u(a + j∆x) (3.8)


44 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχωνόπου j ∈ N, 0 ≤ j ≤ ⌊ ⌋ ⌊b−a∆x . Από υπολογιστικής πλευράς, η ποσότητα b−a⌋∆x + 1 παρέχει το πλήθοςτων τιµών της u που θα υπολογίσουµε στο διάστηµα [a, b], καθορίζοντας έτσι τις αντίστοιχες απαιτήσειςµνήµης.Η διακριτοποίηση παραγώγων της συνάρτησης βασίζεται στο ανάπτυγµα κατά Taylor µιας συνεχούςσυνάρτησης. Συγκεκριµένα, µια συνάρτηση u(x) µε u ∈ C n , όπου C n το σύνολο όλων των συναρτήσεωνπου έχουν συνεχή n-στή παράγωγο, µπορεί να προσεγγιστεί ως πολυώνυµο n-στής τάξηςως εξής:u n,x0 (x) =n∑k=0u (k) (x 0 )(x − x 0 ) k (3.9)k!Η σχέση (3.9) αποτελεί το ανάπτυγµα Taylor n-στής τάξης της συνάρτησης u περί το σηµείο x 0 , ενώµε u (k) (x 0 ) υποδηλώνεται η παράγωγος τάξης k της u στο x 0 . Για διαδοχικές θέσεις του πλέγµατος,έστω j και j ± ∆x, αντικαθιστούµε στην (3.9) το x 0 µε j και το x µε j ± ∆x, άρα και x − x 0 = ±∆x,οπότε το ανάπτυγµα Taylor µπορεί να γραϕεί ως εξής:u(j ± ∆x) = u(j) ± ∆xu x (j) + (∆x)2 u xx (j)2!± (∆x)3 u xxx (j)3!+ . . . (3.10)όπου u x (j) η πρώτη παράγωγος της u στο σηµείο j, u xx (j) η δεύτερη παράγωγος στο j κ.ο.κ.Η βασική ιδέα της διακριτοποίησης των παραγώγων έγκειται στη χρήση αναπτυγµάτων Taylor σευποσύνολο διαδοχικών σηµείων του πλέγµατος. Για παράδειγµα, προς την κατεύθυνση της διακριτοποίησηςτης πρώτης παραγώγου, θα µπορούσε κανείς να προσεγγίσει τη σχέση (3.10) ως εξής:u(j ± ∆x) = u(j) ± ∆xu x (j) + O ( (∆x) 2) (3.11)Η (3.11) αποτελεί την προσέγγιση της τιµής u(j ± ∆x) µε ακρίβεια δεύτερης τάξης O ( (∆x) 2) . Θεωρώνταςτο θετικό πρόσηµο (περίπτωση +∆x) και επιλύοντας ως προς u x (j), προκύπτει η εξής σχέσηγια την πρώτη παράγωγο της u:u x (j) =u(j + ∆x) − u(j)∆x+ O(∆x) (3.12)όπου O(∆x) = − ∆x2 u xx(j) η ακρίβεια της προσέγγισης της πρώτης παραγώγου. Η (3.12) στη διακριτοποιηµένητης εκδοχή µας παρέχει την <strong>for</strong>ward διακριτοποίηση πρώτης τάξης της πρώτης παραγώγου:du jdx = u j+1 − u j∆x+ O(∆x) (3.13)Ακολουθώντας παρόµοια συλλογιστική και θεωρώντας το αρνητικό πρόσηµο για το ∆x στη σχέση(3.11), µπορούµε να εξαγάγουµε την backward ή upstream διακριτοποίηση πρώτης τάξης της πρώτης


3.3 Παράδειγµα: Μερικές ∆ιαϕορικές Εξισώσεις 45παραγώγου:όπου O(∆x) = ∆x2 u xx(j) η ακρίβεια της προσέγγισης.du jdx = u j − u j−1+ O(∆x) (3.14)∆xΤέλος, ο συνδυασµός των δύο παραλλαγών της (3.11) επιτρέπει την εξαγωγή central διακριτοποίησηςτης πρώτης παραγώγου, που επιτυγχάνει µάλιστα ακρίβεια δεύτερης τάξης (− (∆x)26u xxx (j)):du jdx = u j+1 − u j−1+ O ( (∆x) 2) (3.15)2∆xΠαράγωγοςdu ju j+1 −u jdx∆x+O(∆x)d 2 u j u j −2u j+1 +u j+2dx 2 (∆x) 2 +O(∆x)Μέθοδος ∆ιακριτοποίησης<strong>for</strong>ward backward centralu j −u j−1∆x+O(∆x)u j −2u j−1 +u j−2(∆x) 2 +O(∆x)Πίνακας 3.1: ∆ιακριτοποιήσεις πρώτης και δεύτερης παραγώγου χώρουu j+1 −u j−12∆x+O ( (∆x) 2)u j+1 −2u j +u j−1(∆x) 2 +O ( (∆x) 2)Με παραπλήσιο τρόπο µπορούµε να επιτύχουµε την διακριτοποίηση των µερικών παραγώγων ανώτερηςτάξης. Χάριν εποπτικότητας, ο πίνακας 3.1 συνοψίζει διαϕορετικές δυνατότητες διακριτοποίησηςτης πρώτης και της δεύτερης παραγώγου της συνάρτησης u µίας πραγµατικής µεταβλητής. Χρησιµοποιώνταςτα παραπάνω, µπορούµε να αντικαταστήσουµε συνεχείς παραγώγους χώρου σε µια Μ∆Ε µετις αντίστοιχες διακριτοποιηµένες εκδοχές στις ισοδύναµες εξισώσεις διαϕορών.3.3.3 ∆ιακριτοποιήσεις ΧρόνουΑς υποθέσουµε ότι έχουµε το ακόλουθο πρόβληµα αρχικών συνθηκών:dudt= F (t, u) (3.16)όπου u = u(t) συνάρτηση µε γνωστές αρχικές τιµές u(t = 0) = u 0 . Επιθυµούµε να διακριτοποιήσου-µε την συνάρτηση u. ∆εδοµένου ότι στόχος είναι ο υπολογισµός της χρονικής εξέλιξης της u(t) γιαt > 0, η διακριτοποίηση ισοδυναµεί µε τον καθορισµό ενός κβάντου χρόνου ∆t, βάσει του οποίου θαυπολογίσουµε µια πεπερασµένη ακολουθία διακριτών τιµών u n = u(n∆t).Στη βιβλιογραϕία έχουν επισηµανθεί διάϕορες µέθοδοι για τη διακριτοποίηση χρόνου. ∆ειγµατοληπτικάµπορούµε να αναϕέρουµε τις εξής µεθόδους, καθώς και την εϕαρµογή τους στην (3.16):


46 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχων• Adams-Bash<strong>for</strong>th διακριτοποίηση- πρώτης τάξης (Euler-<strong>for</strong>ward), µονόπλευρηu n+1 − u n∆t= F (t, u n )- δεύτερης τάξης- τρίτης τάξηςu n+1 − u n∆t= 3 2 F (t, un ) − 1 2 F (t, un−1 )u n+1 − u n∆t= 2312 F (t, un ) − 1612 F (t, un−1 ) + 512 F (t, un−2 )• leap-frog διακριτοποίηση (κεντρική, δεύτερης τάξης)u n+1 − u n−12∆t= F (t, u n )3.3.4 ∆ιακριτοποίηση της Εξίσωσης ΜεταϕοράςΧρησιµοποιώντας τις διακριτοποιήσεις χώρου και χρόνου, µπορούµε να εξαγάγουµε έναν επαναληπτικόαλγόριθµο για τον αριθµητικό υπολογισµό της λύσης της εξίσωσης µεταϕοράς (advective equation).Συγκεκριµένα, έστω ότι έχουµε µια διαταραχή u(t, x) που διαδίδεται προς την κατεύθυνση +xµε ταχύτητα διάδοσης v σύµϕωνα µε την εξίσωση∂u∂t= −v∂u∂x(3.17)Η (3.17) έχει γενική λύση της µορϕής u = f(x − vt), όπου f τυχούσα συνάρτηση και v η ταχύτηταδιάδοσης. Για τη διακριτοποίηση της εξίσωσης µεταϕοράς, και κατ' επέκταση κάθε IVP προβλήµατος,είναι ιδιαίτερα σηµαντικό να διασϕαλίζεται η ευστάθεια της αριθµητικής µεθόδου επίλυσης µέσω τηςεξίσωσης διαϕορών. Μια σχετικά χαλαρή, πλην όµως αρκετά απλή και ακριβής µέθοδος για την εξακρίβωσητης ευστάθειας της εξίσωσης διαϕορών είναι η ανάλυση ευστάθειας Von Neumann. Πιο συγκεκριµένα,δεχόµαστε ότι οι συντελεστές της εξίσωσης διαϕορών µεταβάλλονται αρκετά αργά σε σχέσηµε το χρόνο, ώστε να µπορούν να θεωρηθούν πρακτικά σταθεροί. Στην περίπτωση αυτή, οι ιδιοτιµέςτης εξίσωσης διαϕορών µπορεί να θεωρηθούν ίσες µεu n j = ξ n e ikj∆x (3.18)


3.3 Παράδειγµα: Μερικές ∆ιαϕορικές Εξισώσεις 47όπου ξ = ξ(k) µιγαδικός αριθµός, που εξαρτάται από τον κυµατικό αριθµό k της διαταραχής. Για ναείναι ευσταθής η εξίσωση διαϕορών πρέπει για κάθε κυµατικό αριθµό k να ισχύει η ακόλουθη συνθήκη:|ξ(k)| ≤ 1 (3.19)Σε περίπτωση που κάτι τέτοιο δεν ισχύει, αν δηλαδή |ξ(k)| > 1 για κάποιους κυµαταριθµούς k, τότεπαρατηρούνται ανεπιθύµητα ϕαινόµενα ενίσχυσης πλάτους (amplitude amplification) και η εξίσωσηδιαϕορών είναι ασταθής.Η διακριτοποίηση της εξίσωσης µεταϕοράς µπορεί να επιτευχθεί µεταξύ άλλων µε τις εξής τεχνικές:• FTCS - Forward Time Centered Space σχήµα:u n+1j− u n j∆t= −v un j+1 − un j−12∆xu n+1j= u n j − v ∆t2∆x (un j+1 − u n j−1)Η συγκεκριµένη διακριτοποίηση επιτυγχάνει ακρίβεια πρώτης τάξης ως προς το χρόνο (O(∆t))και δεύτερης τάξης ως προς το χώρο (O((∆x) 2 )). ∆υστυχώς, είναι σε κάθε περίπτωση ασταθής,και κατά συνέπεια παρουσιάζει µικρή πρακτική αξία.• Lax σχήµα:u n+1j= 1 2 (un j+1 + u n j−1) − v ∆t2∆x (un j+1 − u n j−1)Η διακριτοποίηση Lax προκύπτει άµεσα από την FTCS µε την προσέγγιση του u n j µε την έκϕραση12 (un j+1 + un j−1 ). Επιτυγχάνει ακρίβεια πρώτης τάξης ως προς το χρόνο και δεύτερης τάξης ωςπρος το χώρο. Είναι ευσταθής εϕόσον πληρείται η συνθήκη Courant, που προκύπτει από τηνανάλυση Von Neumann:|v|∆t∆x ≤ 1 (3.20)Στον αντίποδα, η διακριτοποίηση Lax σχετίζεται µε σϕάλµα εκ µεταϕοράς: µια διαταραχή τηςυπό εξέταση ποσότητας u στο σηµείο j του πλέγµατος διαδίδεται τόσο στο σηµείο j + 1 όσο καιστο j − 1 κατά την επόµενη χρονική στιγµή. Όµως, εϕόσον η ταχύτητα διάδοσης v είναι θετική,σηµασιολογικά η διαταραχή στο j θα έπρεπε να επηρεάσει µόνο τη θέση j + 1.


48 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχων• upwind σχήµα:u n+1j− u n j∆t= −v{ u nj −u n j−1∆x, v > 0u n j+1 −un j∆x, v < 0Αντίθετα µε τις προαναϕερθείσες, η διακριτοποίηση αυτή επιτυγχάνει ακρίβεια πρώτης τάξης τόσοως προς το χρόνο όσο και ως προς το χώρο. Χαρακτηρίζεται ως ευσταθής εϕόσον πληρείται ησυνθήκη Courant, ενώ το βασικό της πλεονέκτηµα είναι ότι προσθέτει αξιοπιστία σε προβλήµαταόπου οι διαδιδόµενες µεταβλητές υπόκεινται σε ξαϕνικές αλλαγές κατάστασης (π.χ. ξαϕνικέςδιαταραχές ή άλλες ασυνέχειες). Στη συγκεκριµένη διακριτοποίηση, ύλη που βρίσκεται αρχικά σεαπόσταση v∆t καταϕτάνει σε ένα συγκεκριµένο σηµείο µετά την παρέλευση χρονικού διαστήµατος∆t. Σε διακριτοποιήσεις µε ακρίβεια πρώτης τάξης, η ύλη προέρχεται πάντα από απόσταση∆x. Σε περίπτωση που επιλέξουµε v∆t ≪ ∆x για αύξηση της ακρίβειας, αποδεικνύεται πωςενδέχεται να προκληθεί σηµαντικό σϕάλµα.• staggered leapfrog σχήµα:u n+1j− u n−1j2∆t= −v un j+1 − un j−12∆xu n+1j= u n−1j− v ∆t∆x (un j+1 − u n j−1)Στην περίπτωση αυτή επιτυγχάνεται ακρίβεια δεύτερης τάξης τόσο ως προς το χρόνο όσο και ωςπρος το χώρο. Η τήρηση της συνθήκης Courant διασϕαλίζει την ευστάθεια της µεθόδου, ενώεπιπλέον αποϕεύγεται η διασπορά πλάτους, καθώς |ξ| = 1 για v∆t ≤ ∆x. Ενδέχεται όµωςνα εµϕανιστούν αστάθειες λόγω της αποσύζευξης των άρτιων και των περιττών σηµείων τουπλέγµατος.• two-step Lax-Wendroff σχήµα:u n+1/2j+1/2= 1 2 (un j+1 + un j ) − v∆t2∆x (un j+1 − un j )u n+1j= u n j − v∆tu n+1j= u n j − v∆t∆x∆x (un+1/2 j+1/2 − un+1/2 j−1/2⎫⎬⎭ ⇒[ 12 (un j+1 + u n j ) − v∆t2∆x (un j+1 − u n j )− 1 2 (un j + u n j−1) + v∆t]2∆x (un j − u n j−1)Η διακριτοποίηση αυτή επιτυγχάνει ακρίβεια δεύτερης τάξης σε χώρο και χρόνο, όπως και ηπροηγούµενη. Η συνθήκη Courant πρέπει να πληρείται για διασϕάλιση της ευστάθειας. Γενικά,


3.3 Παράδειγµα: Μερικές ∆ιαϕορικές Εξισώσεις 49η συγκεκριµένη διακριτοποίηση αποτελεί την πλέον ενδεδειγµένη, εκτός αν µελετάµε περιπτώσειςϕυσικών προβληµάτων µε ασυνέχειες, όπου η µονόπλευρη upwind διακριτοποίηση συνήθωςπλεονεκτεί.Με ανάλογο τρόπο µπορεί να διακριτοποιηθεί η εξίσωση µεταϕοράς σε περισσότερες διαστάσεις.Χάριν απλότητας, συνήθως θεωρείται οµοιόµορϕο πλέγµα µε χωρική διακριτοποίηση πάχους ∆ προςόλες τις διαστάσεις του πλέγµατος. Στις N διαστάσεις και για οµοιόµορϕο πλέγµα, η συνθήκη Courantδιαµορϕώνεται ως εξής:∆t ≤όπου |v| η µέγιστη ταχύτητα διάδοσης της διαταραχής.∆ √N|v|(3.21)Με χρήση των παραπάνω διακριτοποιήσεων είναι δυνατό να προκύψει αλγόριθµος ϕωλιασµένωνβρόχων για την αριθµητική επίλυση ϕαινοµένου που διέπεται από την εξίσωση µεταϕοράς. Ιδιαίτερα ηupwind διακριτοποίηση αντιστοιχεί σε αλγόριθµο ϕωλιασµένων βρόχων, που παρουσιάζει τις επιθυµητέςοµοιόµορϕες µη αρνητικές εξαρτήσεις δεδοµένων, και µπορεί να παραλληλοποιηθεί άµεσα µε όλεςτις προτεινόµενες τεχνικές. Για να αποσαϕηνιστεί η ακριβής εξαγωγή του επαναληπτικού αλγορίθµουϕωλιασµένων βρόχων από την εξίσωση µεταϕοράς µε χρήση χωρικών και χρονικών διακριτοποιήσεωνπαραθέτουµε το ακόλουθο παράδειγµα.Παράδειγµα 3.1. Έστω ότι θέλουµε να µελετήσουµε την εϕαρµογή της εξίσωσης µεταϕοράς σε ένα δισδιάστατοχώρο Ω. Αν u = u(t, x, y) η συνάρτηση µεταϕοράς, η Μ∆Ε µε αρχικές και συνοριακές συνθήκεςδίνεται από την ακόλουθη σχέση:∂u∂u∂t= −v x ∂x −v ∂u y ∂yu(t = 0, x, y) = f(x, y)u(t, x, y) = g(t, x, y) στο σύνορο ∂Ω⎫⎪⎬⎪⎭(3.22)όπου η συνάρτηση f αναπαριστά τις αρχικές συνθήκες κατά τη χρονική στιγµή t = 0, ενώ η g παρέχειτις συνοριακές συνθήκες στις επιϕάνειες x = 0 και y = 0.Αξιοποιώντας τις τεχνικές διακριτοποίησης που αναϕέρθηκαν παραπάνω, διακριτοποιούµε µε Euler<strong>for</strong>ward σχήµα ακρίβειας πρώτης τάξης τη χρονική παράγωγο∂u∂t = un+1 x,y − u n x,y∆t(3.23)


50 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχωνκαι µε backward σχήµα ακρίβειας πρώτης τάξης τις χωρικές παραγώγους∂u∂x∂u∂y= un x,y − u n x−1,y∆x= un x,y − u n x,y−1∆y(3.24)(3.25)Από τις (3.22), (3.23), (3.24) και (3.25) προκύπτει η ακόλουθη εξίσωση διαϕορών:u n+1x,y− u n x,y∆tu n+1x,y =u n x,y − u n x−1,y u n x,y − u n x,y−1= −v x − v y∆x∆y(∆t1 − v x∆x − v ∆ty∆y)u n x,y + v x∆t∆x un x−1,y + v y∆t∆y un x,y−1 (3.26)Η συνθήκη Courant για την ευστάθεια της επαναληπτικής µεθόδου υπαγορεύει την επιλογή κατάλληλουκβάντου χρόνου ∆t, που να πληρεί την ακόλουθη σχέση:∆t ≤1√ ( (2 vx) ( ) ) (3.27)2 vy2∆x +∆yή για οµοιόµορϕο πλέγµα µε ∆x = ∆y = ∆∆t ≤∆√2 ( ) (3.28)vx 2 + vy2Τέλος, βασιζόµενοι στη σχέση (3.26), µπορούµε εύκολα να προδιαγράψουµε υπό µορϕή κώδικα το σχετικόαλγόριθµο επαναληπτικού υπολογισµού της u: Αν X, Y τα µήκη των πλευρών του ορθογωνίου, πουπερικλείει τον Ω, και T το χρονικό παράθυρο, κατά τη διάρκεια του οποίου επιθυµούµε να παρατηρήσου-µε το ϕαινόµενο της µεταϕοράς, τότε ο τριπλά ϕωλιασµένος βρόχος θα έχει τη µορϕή του αλγορίθµου 3.3.Ο αλγόριθµος αποτελείται από τρεις ϕωλιασµένους βρόχους, που περικλείουν τον υπολογισµό των τιµώντης u στο διακριτοποιηµένο πλέγµα. Αν η συνθήκη t−1 == 0 αληθεύει, τότε οι τιµές της u που αναϕέρονταιστην προηγούµενη χρονική στιγµή πρέπει να ληϕθούν από το σύνολο των αρχικών τιµών, οπότε καιχρησιµοποιείται η συνάρτηση f. Αν η συνθήκη x − 1 == 0 επιστρέϕει αληθή τιµή, τότε για τη γειτονικήτιµή της u κατά x θα πρέπει να χρησιµοποιηθεί κατάλληλη τιµή από τη συνοριακή επιϕάνεια x = 0, ηοποία λαµβάνεται µέσω κλήσης της συνάρτησης g. Οµοίως, αν y − 1 == 0 η γειτονική τιµή της u στηναµέσως προηγούµενη θέση κατά y υπολογίζεται µέσω της συνάρτησης g. Κατά τ' άλλα, ο αλγόριθµος 3.3υλοποιεί άµεσα τον υπολογισµό που περιγράϕεται από τη σχέση (3.26).


3.3 Παράδειγµα: Μερικές ∆ιαϕορικές Εξισώσεις 51Αλγόριθµος 3.3: Αλγοριθµική περιγραϕή ϕωλιασµένων βρόχων για δισδιάστατη εξίσωση µετα-ϕοράς∆εδοµένα: Πεδίο εϕαρµογής (T × X × Y ), παράµετροι διακριτοποίησης (∆t,∆x,∆y),ταχύτητες ροής (v x ,v y ), αρχικές τιµές (f), οριακές τιµές (g)Ζητούµενα: Συνάρτηση µεταϕοράς u(t, x, y)1 <strong>for</strong> t ← 1 to T ∆t do2 <strong>for</strong> x ← 1 to X ∆x do3 <strong>for</strong> y ← 1 to Y ∆y do4 if t − 1 == 0 <strong>the</strong>n∆t5 u[t, x, y] = (1 − v x ∆x − v y ∆t∆y )f(x, y) + v x ∆t∆x f(x − 1, y) + v y ∆t∆yf(x, y − 1) ;6 else∆t7 u[t, x, y] = (1 − v x ∆x − v y ∆t∆y)u[t − 1, x, y];8 if x − 1 == 0 <strong>the</strong>n9 ∆tu[t, x, y]+ = v x ∆xg(t − 1, x − 1, y);10 else11 ∆tu[t, x, y]+ = v x ∆xu[t − 1, x − 1, y];12 endif13 if y − 1 == 0 <strong>the</strong>n∆t14u[t, x, y]+ = v y ∆yg(t − 1, x, y − 1);15 else∆t16u[t, x, y]+ = v y ∆yu[t − 1, x, y − 1];17 endif18 endif19 end<strong>for</strong>20 end<strong>for</strong>21 end<strong>for</strong>


52 Αλγοριθµικό Μοντέλο Φωλιασµένων Βρόχων


ΚΕΦΑΛΑΙΟ 4Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής ΜηνυµάτωνΤο προγραµµατιστικό µοντέλο ανταλλαγής µηνυµάτων αποτελεί την καθιερωµένη προσέγγιση στο χώροτης Παράλληλης Επεξεργασίας, καθώς έχει υιοθετηθεί από τη µεγάλη πλειοψηϕία της επιστηµονικήςκαι ακαδηµαϊκής κοινότητας. Το πρότυπο MPI (Message Passing Interface, [For94]) έχει συντελέσεικαθοριστικά προς την κατεύθυνση αυτή, παρέχοντας ένα ισχυρό προγραµµατιστικό περιβάλλον, πουόπως έχει αποδειχθεί στην πράξη µπορεί να εϕαρµοστεί αποδοτικά σε πληθώρα παράλληλων αρχιτεκτονικών.Η επιτυχία της διεπαϕής MPI έγκειται αϕενός στην υψηλή επιτάχυνση του χρόνου εκτέλεσηςπου επιτυγχάνεται µε τη συγκεκριµένη βιβλιοθήκη σε πραγµατικές παράλληλες εϕαρµογές µεγάληςκλίµακας (χιλιάδες διεργασίες) και αϕετέρου στη γενικότητα του SPMD προγραµµατιστικού µοντέλουπου υποστηρίζει, καθώς ο ίδιος κώδικας MPI µπορεί να εκτελεστεί επιτυχώς τόσο σε αρχιτεκτονικέςµοιραζόµενης µνήµης όσο και σε αρχιτεκτονικές κατανεµηµένης µνήµης. Το βασικότερο µειονέκτηµατης βιβλιοθήκης MPI εντοπίζεται στη σχετική προγραµµατιστική πολυπλοκότητα του µοντέλου ανταλλαγήςµηνυµάτων, που απαιτεί από τον προγραµµατιστή τη ρητή υλοποίηση συγκεκριµένων σχηµάτωνκατανοµής τόσο του υπολογισµού όσο και των δεδοµένων του αλγορίθµου µεταξύ των διεργασιών.Επίσης, η γενικότητα που παρέχει ο προγραµµατισµός µε ανταλλαγή µηνυµάτων αντισταθµίζεται ενµέρει από τον ενιαίο, µονολιθικό τρόπο αντιµετώπισης και διαχείρισης των διεργασιών, που στη θεωρίατουλάχιστον αδυνατεί να αξιοποιήσει τα επιµέρους χαρακτηριστικά µιας πολυεπίπεδης, ιεραρχικήςυποδοµής, όπως είναι µια SMP συστοιχία.Στο κεϕάλαιο αυτό θα παρουσιαστεί µια αποδοτική µέθοδος παραλληλοποίησης αλγορίθµων ϕωλιασµένωνβρόχων µε οµοιόµορϕες εξαρτήσεις δεδοµένων µε τη βοήθεια του µονολιθικού µοντέλου


54 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτωνπαράλληλου προγραµµατισµού.4.1 Μετασχηµατισµός ΥπερκόµβωνΚοµβικό ρόλο στην παραλληλοποίηση των αλγορίθµων ϕωλιασµένων βρόχων κατέχει ο µετασχηµατισµόςυπερκόµβων (tiling trans<strong>for</strong>mation). Ο µετασχηµατισµός υπερκόµβων προτάθηκε το 1988 απότους Irigoin και Triolet [IT88] και έχει έκτοτε καθιερωθεί ως ιδιαίτερα δηµοϕιλής µετασχηµατισµός γιαπεριγραϕές ϕωλιασµένων βρόχων. Ανήκει στην κατηγορία των µη γραµµικών (non-linear) µετασχηµατισµών,σε αντιδιαστολή µε τους γραµµικούς µετασχηµατισµούς. Πιο συγκεκριµένα, έστω το διάνυσµαεπαναλήψεων ⃗j = (j 1 , . . . , j N+1 ) ενός χώρου επαναλήψεων J διάστασης N + 1. Ένας γραµµικόςµετασχηµατισµός απεικονίζει τον αρχικό χώρο J σε ένα νέο χώροJ ′ = { ⃗ j ′ | ⃗ j ′ = H⃗j,⃗j ∈ J}όπου H ο ισοδύναµος πίνακας περιγραϕής του µετασχηµατισµού. Αντίθετα, ο µη γραµµικός µετασχη-µατισµός υπερκόµβων απεικονίζει τον J σε ένα νέο χώροJ ′ ={ [⃗j ′ | j ⃗′ =⌊H⃗j⌋⃗j − H −1 ⌊H⃗j⌋],⃗j ∈ JΟ µετασχηµατισµός υπερκόµβων χρησιµοποιείται τόσο για την υλοποίηση παραλληλισµού χονδρούκόκκου σε συστήµατα κατανεµηµένης µνήµης όσο και για την αξιοποίηση της ιεραρχίας των συστηµάτωνµνήµης µε ανάδειξη της τοπικότητας αναϕοράς δεδοµένων (data locality of reference). Στην παρούσαεργασία θα εξεταστεί η χρήση του µετασχηµατισµού υπερκόµβων για την υλοποίηση παραλληλισµούχονδρού κόκκου, τόσο µέσω του απλού µοντέλου ανταλλαγής µηνυµάτων όσο και µέσω υβριδικώνπαράλληλων προγραµµατιστικών µοντέλων. Περισσότερα για την εϕαρµογή του µετασχηµατισµούυπερκόµβων στην αξιοποίηση της τοπικότητας αναϕοράς των δεδοµένων µπορούν να αναζητηθούνστις εργασίες [LRW91,WL91a,KM92,LP92,CMT94,CM95,CL95,MCT96,KCS + 98,KCRB99,KRC99,CM99, SL01].Ο µετασχηµατισµός υπερκόµβων ουσιαστικά διαµερίζει τον αρχικό χώρο επαναλήψεων σε ατοµικέςµονάδες εκτέλεσης, τους υπερκόµβους. Έτσι, η συνιστώσα ⌊H⃗j⌋ του διανύσµατος ⃗ j ′ της (4.1) καθορίζειτον υπερκόµβο που περικλείει την αρχική επανάληψη⃗j, ενώ η έκϕραση⃗j −H −1 ⌊H⃗j⌋ ισοδυναµεί µε τησχετική θέση της επανάληψης ⃗j στο συγκεκριµένο υπερκόµβο. Σε ένα σύστηµα κατανεµηµένης µνή-µης, η διαµέριση αυτή µπορεί να διευκολύνει σηµαντικά την παραλληλοποίηση του αλγορίθµου, καθώςαπλοποιεί τόσο τη διαδικασία κατανοµής των υπολογισµών και των δεδοµένων του αλγορίθµου όσο}(4.1)


4.1 Μετασχηµατισµός Υπερκόµβων 55και τη διαδικασία απεικόνισης του αλγορίθµου στο υϕιστάµενο υπολογιστικό σύστηµα. Συγκεκριµένα,κάθε επεξεργαστής αναλαµβάνει την εκτέλεση των υπολογισµών που σχετίζονται µε µια ακολουθίαυπερκόµβων, ενώ τα δεδοµένα επικοινωνίας οµαδοποιούνται σε επίπεδο υπερκόµβου, ώστε να µειώνεταιο αριθµός των ανταλλασσόµενων µηνυµάτων και η σχετική καθυστέρηση που αυτά επιϕέρουν. Ουσιαστικά,ο υπερκόµβος θεωρείται στο µετασχηµατισµένο πρόγραµµα ως ατοµική µονάδα εκτέλεσης,υπό την έννοια ότι οι υπολογισµοί που σχετίζονται µε τις επαναλήψεις του υπερκόµβου εκτελούνταιαδιαίρετα σε ένα βήµα, ενώ η επικοινωνία που απαιτείται για την αποστολή/λήψη δεδοµένων αϕοράστο σύνολο των δεδοµένων που παράγονται/απαιτούνται από έναν υπερκόµβο. Το µοντέλο εκτέλεσηςπεριλαµβάνει διαδοχικές εναλλαγές µεταξύ υπολογισµών εντός του υπερκόµβου και επικοινωνίας γιατην ανταλλαγή συνοριακών δεδοµένων.Αλγόριθµος 4.1: Παράδειγµα τρισδιάστατου αλγορίθµου ϕωλιασµένων βρόχων1234567<strong>for</strong> j 1 ← 0 to 5 do<strong>for</strong> j 2 ← 0 to 3 do<strong>for</strong> j 3 ← 0 to 7 do;©§¢+§F$


56 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτων<strong>for</strong>(j 1 =0; j 1


4.1 Μετασχηµατισµός Υπερκόµβων 57τισµένος αλγόριθµος δεν χρειάζεται να περιγραϕεί περισσότερο σύνθετα από τον 4.2. Στο σχήµα 4.1(β)οµαδοποιούνται µε διαϕορετικό χρώµα οι επαναλήψεις καθενός από τους τέσσερις υπερκόµβους, που ορίζειο H.Αλγόριθµος 4.2: Μετασχηµατισµένος αλγόριθµος ϕωλιασµένων βρόχων µε χρήση µετασχηµατισµούυπερκόµβων1234567891011<strong>for</strong> jj 1 ← 0 to 1 do<strong>for</strong> jj 2 ← 0 to 1 do<strong>for</strong> j 1 ← 3 ∗ jj 1 to 3 ∗ jj 1 + 2;5R do<strong>for</strong> j 2 ← 2 ∗ jj 2 to :G¡;NSP 2 ∗ jj 2 + 1;3R do:"¡TNSP<strong>for</strong> j 3 ← 0 to 7 do;©¢+0F!


58 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτωντείνονται γρήγοροι και προγραµµατιστικά αποδοτικοί τρόποι εϕαρµογής µη ορθογώνιων µετασχηµατισµώνυπερκόµβων.Θεωρώντας λοιπόν µόνο ορθογώνιους µετασχηµατισµούς υπερκόµβων, η περαιτέρω ανάλυση απλοποιείταισηµαντικά. Έτσι, αντί για τη γενική περιγραϕή της (4.1), ο πίνακας µετασχηµατισµού H είναιδιαγώνιος πίνακας της µορϕής⎡H =⎢⎣1h 110 · · · 0 001h 22· · · 0 0.. · · ·0 0 · · ·1h NN00 0 · · · 01z{ }ή σε συµπτυγµένη µορϕή H = diag 1 1 1h 11,h 22, · · · ,h NN, 1 z. Ο λόγος για τον οποίο επιλέγουµε τησυγκεκριµένη κλασµατική αναπαράσταση για τα µη µηδενικά στοιχεία του H έγκειται στο ότι έναςµετασχηµατισµός υπερκόµβων που ορίζεται από τη σχέση (4.2) αντιστοιχεί σε ορθογώνιους υπερκόµβουςδιαστάσεων h 11 × h 22 × · · · × h NN × z. Επιπλέον, χρησιµοποιούµε διαϕορετική αναπαράστασηγια τα N πρώτα στοιχεία της διαγωνίου του H ( 1h ii, 1 ≤ i ≤ N), σε σχέση µε το τελευταίο (N + 1)στοιχείο 1 z, καθώς ο καθορισµός των πρώτων δεσµεύεται εν µέρει από το συνολικό διαθέσιµο πλήθοςτων διεργασιών, αϕού οι N εξωτερικές διαστάσεις θα χρησιµοποιηθούν ουσιαστικά για την απεικόνισητου διαµερισµένου αλγορίθµου στις διεργασίες αυτές. Αντίθετα, η τιµή της µεταβλητής z αντιστοιχείστο ύψος του κάθε υπερκόµβου, σχετίζεται αποκλειστικά µε την ακολουθιακή (σειριακή) εκτέλεσηυπερκόµβων εσωτερικά σε κάθε διεργασία, και µπορεί εύκολα να θεωρηθεί ως ελεύθερη παράµετρος,καθοριζόµενη από το χρήστη. Εϕαρµόζοντας λοιπόν ορθογώνιο µετασχηµατισµό υπερκόµβων H στοναλγόριθµο 3.1, προκύπτει η ισοδύναµη διαµερισµένη (tiled) εκδοχή του αλγορίθµου 4.3.Στο αλγόριθµο 4.3 παρατηρούµε ότι η αρχική αλγοριθµική περιγραϕή των N +1 ϕωλιασµένων βρόχωνέχει µετατραπεί σε µια ισοδύναµη εκδοχή διπλάσιου πλήθους ϕωλιασµένων βρόχων (2N +2), όπουοι N +1 εξωτερικοί (µεταβλητές ελέγχου tile i ) σαρώνουν το χώρο των υπερκόµβων (tile space), ενώ οιN + 1 εσωτερικοί βρόχοι (µεταβλητές ελέγχου j i ) απαριθµούν το σύνολο των επαναλήψεων που αντιστοιχούνσε ένα συγκεκριµένο υπερκόµβο. Η χρήση των εντολών επανάληψης <strong>for</strong>across αποσκοπείστο να υποδείξει τους N εξωτερικούς βρόχους, στους οποίους θα βασιστεί η απεικόνιση των δεδοµένωνκαι των υπολογισµών στις διαθέσιµες διεργασίες κατά την παραλληλοποίηση του προγράµµατος.Ουσιαστικά, οι εντολές <strong>for</strong>across υποδεικνύουν τη δυνατότητα παράλληλης εκτέλεσης διαϕορετικώνυπερκόµβων µε χρήση συγχρονισµού για τη διατήρηση της σηµασιολογικής ορθότητας του αλγορίθ-µου...⎤⎥⎦(4.2)


4.1 Μετασχηµατισµός Υπερκόµβων 59Αλγόριθµος 4.3: Ισοδύναµο{αλγοριθµικό}µοντέλο υπό την εϕαρµογή µετασχηµατισµού υπερκόµβωνH = diag 1 1 1h 11,h 22, · · · ,h NN, 1 z123⌈ ⌉<strong>for</strong>across tile 1 ← 0 to X1h 11− 1 do...⌈ ⌉<strong>for</strong>across tile N ← 0 to XNh NN− 1 do<strong>for</strong> tile N+1 ← 0 to ⌈ ⌉Zz − 1 do45 <strong>for</strong> j 1 ← h 11 · tile 1 + 1 to h 11 (tile 1 + 1), X 1 do R :"¡TNSP67891011121314151617...end<strong>for</strong>end<strong>for</strong>...end<strong>for</strong>end<strong>for</strong>end<strong>for</strong>across...end<strong>for</strong>across<strong>for</strong> j N ← h NN · tile N + 1 to h NN (tile N + 1), X N R do<strong>for</strong> j N+1 ← z · tile N+1 + 1 to :"¡;NSP z(tile N+1 + 1), Z R do:"¡;NSP3¤:©¦QPA,⃗j, DR ;Συγκεκριµένα, µια γενική αποδοτική προσέγγιση, που επιλέγεται για την παραλληλοποίηση αλγοριθµικώνπεριγραϕών ϕωλιασµένων βρόχων βάσει του µοντέλου ανταλλαγής µηνυµάτων, είναι η εξής:κάθε διεργασία του παράλληλου προγράµµατος αναλαµβάνει την εκτέλεση µιας ακολουθίας υπερκόµβων,που είναι διαδοχικοί κατά µήκος της µεγαλύτερης διάστασης του µετασχηµατισµένου χώρου επαναλήψεων( ⌈ Zz⌉). Ουσιαστικά, οι N βρόχοι <strong>for</strong>across αναπαριστούν την απεικόνιση του παράλληλουπρογράµµατος στις διαθέσιµες διεργασίες, ενώ οι N +2 βρόχοι <strong>for</strong> διατηρούνται αυτούσιοι στον SPMDκώδικα της κάθε διεργασίας, µε τον πρώτο από αυτούς να απαριθµεί τους υπερκόµβους που έχουν ανατεθείστη συγκεκριµένη διεργασία και τους υπόλοιπους N +1 να διατρέχουν τις επαναλήψεις στο εσωτερικόκάθε υπερκόµβου. Η µέθοδος αυτή επιτυγχάνει την αξιοποίηση του ϕαινοµένου της σωλήνωσης(pipelining), που αποτελεί θεµελιώδη αρχή στην αρχιτεκτονική υπολογιστών προς την κατεύθυνση τηςυψηλής επίδοσης.Το παραλληλοποιηµένο ισοδύναµο πρόγραµµα του αλγορίθµου 4.3 βάσει του µοντέλου ανταλλαγήςµηνυµάτων παρέχεται στον αλγόριθµο 4.4. Επιπλέον, ένα εποπτικό παράδειγµα για την καλύτερηκατανόησή του απεικονίζεται στο σχήµα 4.2.Ο αλγόριθµος 4.4 µπορεί να περιγραϕεί ως εξής: αρχικά γίνεται η κατανοµή των υπερκόµβων στιςδιαθέσιµες διεργασίες, όπου κάθε διεργασία αναλαµβάνει την ακολουθία υπερκόµβων που ταυτοποιεί-


LL60 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής ΜηνυµάτωνΑλγόριθµος 4.4: Προγραµµατιστικό µοντέλο ανταλλαγής µηνυµάτων∆εδοµένα: Αλγόριθµος ( 3¤:$©©¦ ), χώρος επαναλήψεων N ∏1 <strong>for</strong> i ← 1 to N do2 tile i = p i ;3 end<strong>for</strong><strong>for</strong> tile N+1 ← 0 to ⌈ ⌉Z4z − 1 do<strong>for</strong>each −→5 dir ∈ S ⃗p do678910111213 L14151617Z[¤\ 4$C§U'P@VXW§Y2¥N6P#V(W0Y Z[;\42end<strong>for</strong>each<strong>for</strong>each −→ dir ∈ R ⃗p doend<strong>for</strong>each2¤£§O'PX]_^T`(a Z[;\42−→ 3¤:$©©¦bPtileR ;5$C!¡¤¦$C©©;4M2<strong>for</strong>each −→ dir ∈ R ⃗p doend<strong>for</strong>eachend<strong>for</strong>IN!C§U6PX]_^T`(a Z[¤\[ −→ dir],tile N+1 − 1,⃗pR ;[ −→ dir], ¥0¦'P ⃗p + −→[ −→ dir], ¥§£¢GP ⃗p − −→dirR©R ;dirR©R ;[ −→ dir],tile N+1 + 1,⃗pR ;i=1X i Z, διεργασία ⃗pται από το αναγνωριστικό που της έχει αποδοθεί από τη βιβλιοθήκη ανταλλαγής µηνυµάτων. Εν συνεχεία,στο κυρίως τµήµα του αλγορίθµου, κάθε διεργασία απαριθµεί τους υπερκόµβους που της έχουνανατεθεί, και για κάθε έναν από αυτούς επιτελεί διαδοχικά τις εξής λειτουργίες:1. Οµαδοποιεί τα συνοριακά δεδοµένα που υπολόγισε κατά την επεξεργασία του προηγούµενουυπερκόµβου και εκκινεί µια ασύγχρονη λειτουργία αποστολής των δεδοµένων αυτών προς τιςγειτονικές διεργασίες που χρειάζεται να τα λάβουν.2. Εκκινεί µια ασύγχρονη λειτουργία λήψης των συνοριακών δεδοµένων που θα χρειαστεί για τουςυπολογισµούς που σχετίζονται µε τον επόµενο υπερκόµβο.3. Εκτελεί τους υπολογισµούς που σχετίζονται µε τις επαναλήψεις που περικλείει ο τρέχων υπερκόµβος.4. ∆ιασϕαλίζει την επιτυχή ολοκλήρωση των ασύγχρονων λειτουργιών επικοινωνίας, δηλαδή τόσοτης αποστολής όσο και της λήψης δεδοµένων, για να µεταβεί στην επεξεργασία του επόµενουυπερκόµβου.


4.1 Μετασχηµατισµός Υπερκόµβων 61j 3rp 6 = (1,2)21j 2j j12j 3j 1rrp 5 = (1,1)p 8 = (2,1)Σχήµα 4.2: Παράλληλη εκτέλεση τρισδιάστατου αλγορίθµου µε χρήση 9 διεργασιών. Ο αλγόριθµος απεικονίζεταιστις διαθέσιµες διεργασίες ως προς τις διαστάσεις j 1 , j 2 , ενώ κατά την j 3 πραγµατοποιείταιακολουθιακή εκτέλεση των υπερκόµβων σε κάθε διεργασία. Αριστερά ϕαίνεται η χρονοδροµολόγηση σωλήνωσηςπου επιτυγχάνεται, ενώ δεξιά παρατηρούµε την απεικόνιση των υπερκόµβων στο 3 × 3 πλέγµατων 9 διαθέσιµων διεργασιών, καθώς και την ανάγκη αποστολής δεδοµένων από τη διεργασία ⃗p 5 προς τις⃗p 6 και ⃗p 8 .Αναλυτικότερα, σε κάθε διεργασία αντιστοιχίζεται ένα µοναδικό διάνυσµα ⃗p = (p 1 , . . . , p N ) διάστασηςN, ενώ οι διαϕορετικοί υπερκόµβοι ταυτοποιούνται από τα διαϕορετικά στιγµιότυπα του διανύσµατος−→ tile = (tile 1 , . . . , tile N , tile N+1 ) διάστασης N + 1. Οι N εξωτερικές συνιστώσες του διανύσµατος−→ tile ενός υπερκόµβου καθορίζουν την διεργασία-ιδιοκτήτη ⃗p του υπερκόµβου, ενώ η πλέονεσωτερική συνιστώσα tile N+1 απαριθµεί την ακολουθία των υπερκόµβων που ανατίθενται στη διεργασία⃗p. Η γραµµή3;:$©¦QP −→tileRαποτελεί συντοµογραϕικό συµβολισµό των γραµµών 5-13 του αλγορίθµου 4.3, και συνοψίζει τον υπολογισµότων επαναλήψεων ⃗j = (j 1 , . . . , j N+1 ) που περικλείονται στον τρέχοντα υπερκόµβο −→ tile. Ηπαράµετρος z υποδηλώνει το ύψος του υπερκόµβου κατά µήκος της διάστασης εκτέλεσης και έµµεσακαθορίζει τον κόκκο του παραλληλισµού. Έτσι, σχετικά υψηλές τιµές της παραµέτρου z σε σχέση µετη διάσταση Z του χώρου επαναλήψεων συνεπάγονται λιγότερο συχνή επικοινωνία, καθώς επίσης καιπαραλληλισµό χονδρού κόκκου. Από την άλλη πλευρά, σχετικά χαµηλές τιµές της παραµέτρου z (σεσχέση µε τη διάσταση Z) απαιτούν συχνότερη επικοινωνία και ταυτόχρονα επιτρέπουν την επίτευξη παραλληλισµούλεπτού κόκκου. Στο πλαίσιο της παρούσας εργασίας θα θεωρήσουµε την τιµή του z σανπαράµετρο καθοριζόµενη από το χρήστη, ανάλογα µε τη ϕύση της υϕιστάµενης αρχιτεκτονικής (υλικό


62 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτωνκαι δίκτυο διασύνδεσης), καθώς και το είδος της υπό παραλληλοποίηση εϕαρµογής. Στις πειραµατικέςµετρήσεις που θα ακολουθήσουν θα θεωρήσουµε µεταβλητό κόκκο παραλληλισµού, ώστε η βέλτιστητιµή του ύψους z του υπερκόµβου να προσδιορίζεται πειραµατικά µέσω των µετρήσεων αυτών.Αξιοποιώντας το µετασχηµατισµό υπερκόµβων, η κατανοµή των υπολογισµών µεταξύ των επεξεργαστώνµπορεί να γίνει µε απλό τρόπο, όπως ϕαίνεται στις γραµµές 1-3 του αλγορίθµου 4.4. Έτσι,κάθε διεργασία ⃗p = (p 1 , . . . , p N ) αναλαµβάνει την ακολουθία των υπερκόµβων που ταυτοποιούνταιαπό διανύσµατα −→ tile της µορϕής (p 1 , . . . , p N , tile N+1 ). Το διάνυσµα ⃗p της κάθε διεργασίας µπορείνα προκύψει από το µοναδικό αναγνωριστικό που της έχει αποδοθεί από τη βιβλιοθήκη ανταλλαγήςµηνυµάτων, π.χ. το βαθµό της ( £$CNU ) εϕόσον πρόκειται για τη βιβλιοθήκη MPI. Επίσης, η κατανοµήτων δεδοµένων υλοποιείται έµµεσα µέσω της κατανοµής των υπολογισµών και της υιοθέτησης του κανόναυπολογιστή-ιδιοκτήτη (computer-owns): η διεργασία που υπολογίζει την τιµή κάποιου δεδοµένουθεωρείται και ιδιοκτήτης του συγκεκριµένου δεδοµένου, συνεπώς θα πρέπει να κοινοποιήσει την τιµήτου σε όποια διεργασία τη χρειαστεί.Το σύνολο S ⃗p υποδηλώνει τις έγκυρες κατευθύνσεις αποστολής της διεργασίας ⃗p. ∆εδοµένου ότιέχουµε θεωρήσει διαγώνιο πίνακα εξαρτήσεων δεδοµένων, κάθε διεργασία χρειάζεται να επικοινωνείµόνο µε γειτονικές, εϕαπτόµενες διεργασίες προς τις µοναδιαίες διευθύνσεις επικοινωνίας. Έτσι, ανγια µια διεύθυνση επικοινωνίας −→ dir = (0, . . . , 1, . . . , 0) και µια διεργασία ⃗p ισχύει −→ dir ∈ S ⃗p , τότε η⃗p είναι µη συνοριακή διεργασία και πρέπει να αποστείλει δεδοµένα προς τη διεργασία ⃗p + −→ dir. Οµοίως,το σύνολο R ⃗p αντιστοιχεί στις έγκυρες διευθύνσεις λήψης της διεργασίας ⃗p, καθώς η ⃗p πρέπει ναλάβει δεδοµένα από τη διεργασία ⃗p − −→ dir αν −→ dir ∈ R ⃗p . Τα σύνολα S ⃗p και R ⃗p καθορίζονται από τηνεπιλεγόµενη τοπολογία διεργασιών για την απεικόνιση του παράλληλου αλγορίθµου.Το παραπάνω σχήµα παραλληλοποίησης ενός αλγορίθµου ϕωλιασµένων βρόχων διάστασης N + 1και απεικόνισης σε µια παράλληλη αρχιτεκτονική ως προς τις N εξωτερικές διαστάσεις διευκολύνεταισηµαντικά αναϕορικά µε την κατανοµή των υπολογισµών αν σε κάθε διεργασία αποδοθεί ένα αναγνωριστικό⃗p υπό τη µορϕή διανύσµατος διάστασης N (σε αντιδιαστολή π.χ. µε το βαθµωτό £CNU πουαποδίδει το MPI). Η επιλογή αυτή επιτρέπει την εύκολη ταυτοποίηση των υπερκόµβων µιας δεδοµένηςδιεργασίας, καθώς και τη γενικότερη συσχέτιση του χώρου επαναλήψεων µε τις διαθέσιµες διεργασίεςκαι κατ' επέκταση την υϕιστάµενη αρχιτεκτονική. Η διανυσµατική ταυτοποίηση των διεργασιών εισάγειτην αναγκαιότητα θεώρησης του πλήθους των διαθέσιµων διεργασιών, έστω P , υπό τη µορϕήN-διάστατης εικονικής τοπολογίας (P 1 , . . . , P N ), ώστεP =N∏P i (4.3)i=1Εϕόσον οριστεί µια τέτοια τοπολογία απεικόνισης, σε κάθε διεργασία µπορεί να αποδοθεί ένα µονα-


4.2 Απεικόνιση σε ∆ιεργασίες 63δικό αναγνωριστικό της µορϕής ⃗p = (p 1 , . . . , p N ) µε 0 ≤ p i ≤ P i − 1, 1 ≤ i ≤ N. Είναι προϕανέςόµως ότι η παραγοντοποίηση του πλήθους των διεργασιών P σύµϕωνα µε την (4.3) µπορεί στη γενικήπερίπτωση να γίνει µε περισσότερους του ενός τρόπους, οδηγώντας έτσι σε εναλλακτικές τοπολογίεςαπεικόνισης. Η επιλογή µιας κατάλληλης τοπολογίας διεργασιών αποτελεί το αντικείµενο της επόµενηςενότητας.4.2 Απεικόνιση σε ∆ιεργασίεςΣύµϕωνα µε τη συνήθη προσέγγιση [HS98, HS99, HS02, HCF97, HCF99, HCF03], δοθέντων P διεργασιώνπρος απεικόνιση ενός παραλληλοποιηµένου επαναληπτικού αλγορίθµου διάστασης N + 1,επιλέγεται ένα πλέγµα διεργασιών P 1 × · · · × P N , που αποτελεί µια αποδεκτή λύση του ακόλουθουπροβλήµατος βελτιστοποίησης:P i → N√ P∏P = NP i ∈ NP ii=1Το πλεονέκτηµα της ανωτέρω τοπολογίας είναι πως ελαχιστοποιεί την αρχική καθυστέρηση διάδοσηςτου παράλληλου αλγορίθµου, καθώς διασϕαλίζει ότι η πιο «αποµακρυσµένη» διεργασία θα ξεκινήσειτην εκτέλεση των υπολογισµών της το ταχύτερο δυνατό. Παρότι η επιλογή αυτή αποτελεί τη συνήθηπροσέγγιση για τον καθορισµό της τοπολογίας διεργασιών, παρουσιάζει σηµαντικά µειονεκτήµαταγια τους υπό εξέταση αλγορίθµους. Πιο συγκεκριµένα, κατά τον προσδιορισµό της τοπολογίας τωνδιεργασιών µε την παραπάνω µέθοδο δεν λαµβάνονται υπόψη τόσο ο χώρος επαναλήψεων όσο και οιεξαρτήσεις τού υπό παραλληλοποίηση αλγορίθµου. Κατά συνέπεια, ενδέχεται η συγκεκριµένη τοπολογίανα επιβάλλει σηµαντικά αυξηµένες απαιτήσεις όσον αϕορά στην επικοινωνία µεταξύ διεργασιών,σε σχέση µε πιο κατάλληλες, εναλλακτικές έγκυρες τοπολογίες, που θα µπορούσαν δυνητικά να εϕαρ-µοστούν.Για παράδειγµα, έστω ότι θέλουµε να παραλληλοποιήσουµε ένα τρισδιάστατο αλγόριθµο χρησιµοποιώντας16 διεργασίες (βλ. σχήµα 4.3). Η απεικόνιση του αλγορίθµου στο πλέγµα των διεργασιώνυλοποιείται µε διαµέριση του επιπέδου j 1 j 2 του χώρου επαναλήψεων, ενώ κάθε διεργασία αναλαµβάνειτην εκτέλεση µιας ακολουθίας υπερκόµβων κατά µήκος της διάστασης j 3 του χώρου. Η συνήθηςπροσέγγιση θα ήταν να θεωρήσουµε µια τοπολογία απεικόνισης 4 × 4, καθώς επιτρέπει στην πιο απο-µακρυσµένη διεργασία να εκκινήσει τους υπολογισµούς όταν η πρώτη εκτελεί τον έβδοµο υπερκόµβοτης. Έστω ότι ο αλγόριθµος χαρακτηρίζεται από ένα χώρο επαναλήψεων X 1 ×X 2 ×Z µε X 1 = 4X 2 καιεξαρτήσεις δεδοµένων [d, 0, 0] T , [0, d, 0] T και [0, 0, d] T . Στην περίπτωση αυτή, µια εναλλακτική τοπολογίααπεικόνισης 8 × 2 θα ήταν ενδεχοµένως προτιµότερη για αρχιτεκτονική κατανεµηµένης µνήµης.⎫⎪⎬⎪⎭


64 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής ΜηνυµάτωνV comm,1= 3 d 1X 2Z+ 3 d 2X 1Z V comm,2= 7 d 1X 2Z+ d 2X 1Zj 3j 3p 2p 4p 6p 8p 10p 12p 14p 16⎡Z⎤T 1 = 6 +⎢z⎥⎡Z⎤T 2 = 8 +⎢z⎥p 1p 5p 9p 13p 2p 6p 10p 14p 3p 7p 11p 15p 4p 8p 12p 16Zj 1j 1X 2X 2X 1X 1jj 1j 12j 2p 1p 3p 5p 7p 9p 11p 13p 15Zj 2j 2Σχήµα 4.3: Σύγκριση των δεδοµένων επικοινωνίας για δύο εναλλακτικές τοπολογίες απεικόνισης τρισδιάστατουαλγορίθµουΠράγµατι, ο όγκος των συνολικών δεδοµένων επικοινωνίας ισούται µε(d1 X 2V comm,1 = 9 + d )2X 1Z + 3 d 1X 24 44 Z + 3 d 2X 1} {{ }} {{ }4 Z} {{ }επικοινωνία κατά j 1 και j 2επικοινωνία µόνο κατά j 1 επικοινωνία µόνο κατά j 2= 3d 1 X 2 Z + 3d 2 X 1 Z


4.2 Απεικόνιση σε ∆ιεργασίες 65για την περίπτωση της 4 × 4 τοπολογίας και µε(d1 X 2V comm,2 = 7 + d )2X 1Z + 7 d 1X 22 82 Z + 1 d 2X 1} {{ }} {{ }8 Z} {{ }επικοινωνία κατά j 1 και j 2επικοινωνία µόνο κατά j 1 επικοινωνία µόνο κατά j 2= 7d 1 X 2 Z + d 2 X 1 Zστην περίπτωση της 8×2 τοπολογίας. Για X 1 = 4X 2 και d 1 = d 2 = d, η επιλογή της 8×2 τοπολογίαςµειώνει το συνολικό όγκο των δεδοµένων επικοινωνίας κατάV comm,1 − V comm,2V comm,1= 3dX 2Z + 12dX 2 Z − 7dX 2 Z − 4dX 2 Z3dX 2 Z + 12dX 2 Z= 415 ή 27%Γενικότερα, µπορούµε εύκολα να εξαγάγουµε ότι όταν d 1 = d 2 = d θα είναι V comm,2 < V comm,1 στιςπεριπτώσεις των χώρων επαναλήψεων X 1 ×X 2 ×Z στις οποίες ισχύει X 1 > 2X 2 . Για τέτοιους χώρους,η τοπολογία 8 × 2 επιτυγχάνει πάντοτε µικρότερο όγκο δεδοµένων επικοινωνίας σε σχέση µε την 4 × 4τοπολογία διεργασιών.Παρατηρούµε εντούτοις ότι η τοπολογία 8 × 2 θα επιτρέψει στην πιο αποµακρυσµένη διεργασίανα εκκινήσει τους υπολογισµούς της µόνο όταν η πρώτη εκτελεί τον ένατο υπερκόµβο της, αυξάνονταςέτσι τα συνολικά βήµατα εκτέλεσης του παράλληλου αλγορίθµου κατά δύο σε σχέση µε την τοπολογία4 × 4. Αναλυτικότερα, η προτεινόµενη παραλληλοποίηση υλοποιεί γραµµική χρονοδροµολόγηση,που περιγράϕεται από το διάνυσµα Π = [1, 1, 1]. Έτσι, στην τοπολογία 4 × 4 ο πρώτος υπερκόµβος(p 1 = 0, p 2 = 0, tile 3 = 0) δροµολογείται για τη χρονική στιγµή T 1,first = 0, ενώ ο τελευταίος⌉− 1) θα εκτελεστεί τη χρονική στιγµή T1,last = 6 + ⌈ ⌉Zz − 1, οδηγώντας(p 1 = 3, p 2 = 3, tile 3 = ⌈ Zzσε συνολικό αριθµό βηµάτων εκτέλεσης T 1 = 6 + ⌈ Zz⌉. Οµοίως αποδεικνύεται για τη δεύτερη τοπολογία8 × 2 ότι το συνολικό πλήθος βηµάτων εκτέλεσης ισούται µε T 2 = 8 + ⌈ Zz⌉, δηλαδή ο T2 είναικατά δύο βήµατα µεγαλύτερος του T 1 . ∆εδοµένου όµως ότι κάθε διεργασία θα πρέπει να αναλάβει τηνεκτέλεση µιας ακολουθίας υπερκόµβων επαρκούς πλήθους ⌈ Zz⌉, ώστε να επιτευχθεί ικανοποιητική επίδοσηστο ϕαινόµενο της σωλήνωσης για το παράλληλο πρόγραµµα, η διαϕορά στα βήµατα εκτέλεσηςαναµένεται να είναι σχετικά µικρή, καθώς τα T 1 και T 2 καθορίζονται πρωτίστως από τον όρο ⌈ Zz⌉καιλιγότερο από την αρχική καθυστέρηση διάδοσης του αλγορίθµου. Έτσι, η προαναϕερθείσα επιβάρυνσητων επιπλέον βηµάτων αναµένεται να είναι αµελητέα συγκριτικά µε τα οϕέλη στους χρόνους επικοινωνίας,που αποκοµίζονται σε κάθε βήµα του αλγορίθµου από την υιοθέτηση της τοπολογίας 8 × 2.Παρακινούµενοι από την παραπάνω παρατήρηση, αναπτύξαµε µία γενική µέθοδο για τον προσδιορισµόµιας κατάλληλης τοπολογίας απεικόνισης, δοθέντων του χώρου επαναλήψεων και των εξαρτήσεωνδεδοµένων του επαναληπτικού αλγορίθµου. Η µεθοδολογία βασίζεται στο ακόλουθο λήµµα:


66 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής ΜηνυµάτωνΛήµµα 4.1. Έστω X 1 ×· · ·×X N ×Z ο χώρος επαναλήψεων ενός επαναληπτικού αλγορίθµου διάστασηςN + 1, µε εξαρτήσεις δεδοµένων τις [d 1 , . . . , 0] T , . . . , [0, . . . , d N+1 ] T . Έστω P το πλήθος των διεργασιώνπου χρησιµοποιούνται για την απεικόνιση του παράλληλου αλγορίθµου. Αν υπάρχουν µη αρνητικοίακέραιοι P i ∈ N τέτοιοι, ώστεκαιd i P iX iP =N∏P i (4.4)i=1= d jP jX j, 1 ≤ i, j ≤ N (4.5)τότε η εικονική τοπολογία P 1 × · · · × P N ελαχιστοποιεί την επικοινωνία µεταξύ διεργασιών κατά τηναπεικόνιση του παράλληλου αλγορίθµου στις P διεργασίες. Επίσης, η σχέση (4.5) είναι ισοδύναµη µε τηνP j = X jd j∏P N d iNi=1, 1 ≤ j ≤ N (4.6)√ N∏X ii=1Απόδειξη. Σύµϕωνα µε τη σχέση (4.4), ισχύειP N =PP 1 × · · · × P N−1(4.7)Υπό τη συγκεκριµένη απεικόνιση, κάθε διεργασία αναλαµβάνει την εκτέλεση⌈Xiτο πλήθος επαναλήψεωνκατά µήκος της διεύθυνσης i, όπου 1 ≤ i ≤ N. Χάριν απλότητας, υποθέτουµε ότι⌈XiP i⌉P i⌉≃ X iP i(4.8)Λόγω των εξαρτήσεων δεδοµένων του αλγορίθµου, κάθε διεργασία απαιτείται να αποστείλει προς τηνj=N ∏i-στή διεύθυνση d i Z το πλήθος δεδοµένα. Κατά συνέπεια, ο συνολικός όγκος V comm τωνj=1,j≠iX jP j


4.2 Απεικόνιση σε ∆ιεργασίες 67δεδοµένων επικοινωνίας µιας διεργασίας µπορεί να υπολογιστεί από την ακόλουθη έκϕραση:V comm = d 1 ZN∏i=1i≠1= d 1ZP 1X 1=X ii=1Z N ∏PX iP i+ · · · + d N ZN ∏i=1N∏i=1i≠NX iP iX iP i+ · · · + d NZP NX N(d1 P 1X 1N ∏i=1+ · · · + d )NP NX NX iP i(4.9)Απαλείϕοντας τον όρο P N από τις (4.7), (4.9), προκύπτειV comm = V comm (P 1 , . . . , P N−1 )∏Z N ∏X i N−1∑d N Z N X ii=1 d i P ii=1=+(4.10)P X i X N P 1 . . . P N−1i=1Παρατηρούµε ότι ο όρος V comm είναι κατ' ουσίαν συνάρτηση των µεταβλητών P 1 , . . . , P N−1 , δηλαδήV comm : N N−1 → R. Έστω V comm η συνεχής πραγµατική επέκταση της V comm , που ορίζεται από τησχέση (4.10) για P j ∈ R, 1 ≤ j ≤ N (V comm : R N−1 → R). Για ένα στάσιµο σηµείο (P 1 , . . . , P N−1 )της V comm και για 1 ≤ j ≤ N − 1, θα ισχύειή ισοδύναµα∂V comm∂P j= 0 (4.11)d j Z N ∏X ii=1P X j∏d N Z N X ii=1−X N P 1 . . . Pj 2 . . . P N−1d jN∏X ii=1P X j== 0d N P NN∏X ii=1X N P j Pd j P jX j= d NP NX N(4.12)


68 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής ΜηνυµάτωνΕπίσης,∂ 2 V comm∂P j2=2d N Z N ∏X ii=1X N P 1 . . . P 3 j . . . P N−1> 0 (4.13)Λόγω των (4.11) και (4.13), η V comm παρουσιάζει ελάχιστο στο στάσιµο σηµείο (P 1 , . . . , P N−1 ), καικαθώς P i ∈ N, 1 ≤ i ≤ N − 1 συνάγεται ότι στην ίδια θέση θα παίρνει ελάχιστη τιµή και η V comm . Συ-µπεραίνουµε λοιπόν ότι το πλήθος των δεδοµένων επικοινωνίας ελαχιστοποιείται κατά την εϕαρµογήτης τοπολογίας απεικόνισης P 1 × · · · × P N , που πληροί τη σχέση (4.12). Τέλος, ισχύειd ii=1P N ∏= d 1P 1N∏ X 1X ii=1. . . d NP NX N(4.14)και δεδοµένου ότι η V comm ελαχιστοποιείται στη θέση (P 1 , . . . , P N ), η σχέση (4.14) µπορεί να γραϕείλόγω της (4.12) ως εξής:P N ∏d ii=1=N∏X ii=1P j = X jd j(dj P jX j) N∏P N d iNi=1(4.15)√ N∏X ii=1Παρατηρούµε ότι η (4.6) δεν ορίζει πάντα µια αποδεκτή τοπολογία απεικόνισης. Πράγµατι, κάτιτέτοιο συµβαίνει στην περίπτωση που υπάρχει τουλάχιστον ένας ακέραιος j µε 1 ≤ j ≤ N τέτοιος,ώστε για την αντίστοιχη συνιστώσα P j που ορίζεται από την (4.6) να ισχύει P j /∈ N. Εντούτοις, ηµονοτονία της συνάρτησης V comm διασϕαλίζει ότι µια αποδεκτή λύση για την τοπολογία απεικόνισηςστην κοντινή περιοχή του ελαχίστου της συνάρτησης, όπως αυτό καθορίζεται από τη σχέση (4.6), πρακτικάείτε θα ελαχιστοποιεί το κόστος επικοινωνίας, είτε θα παρέχει µια αποδοτική τοπολογία για τοδεδοµένο αλγόριθµο.Σχηµατικά, αναλόγως του χώρου επαναλήψεων και των εξαρτήσεων δεδοµένων του αλγορίθµου,επιλέγεται µια τοπολογία διεργασιών που ελαχιστοποιεί το συνολικό όγκο των δεδοµένων επικοινωνίας.Η διαδικασία είναι ισοδύναµη µε την εύρεση ενός N-διάστατου ακέραιου σηµείου (P 1 , . . . , P N ),


4.2 Απεικόνιση σε ∆ιεργασίες 69V normalizedX 1 = X 2X 1 = 2X 2Optimal topology <strong>for</strong> X 1 = X 2X 1 = 4X 2Optimal topology <strong>for</strong> X 1 = 2X 2V normalizedP 1 =4P 2P 2P1 =P 2P 1Σχήµα 4.4: Επιλογή βέλτιστης τοπολογίας απεικόνισης (P 1 , P 2 ) για τρισδιάστατο αλγόριθµο βάσει τουκανονικοποιηµένου κόστους επικοινωνίαςτο οποίο να ελαχιστοποιεί τη συνάρτηση όγκου επικοινωνίας V comm . Το σχήµα 4.4 αναπαριστά τονπροσδιορισµό µιας κατάλληλης δισδιάστατης τοπολογίας απεικόνισης για τρισδιάστατο αλγόριθµο µεχώρο επαναλήψεων X 1 × X 2 × Z και εξαρτήσεις δεδοµένων [d, 0] T , [0, d] T . Για παράδειγµα, υποθέτοντας64K διεργασίες σε ένα υπολογιστικό σύστηµα µεγάλης κλίµακας, ένας τρισδιάστατος χώρος µεX 1 = 4X 2 θα επωϕελούταν περισσότερο από µία τοπολογία απεικόνισης 512 × 128. Αντίθετα, γιαχώρο επαναλήψεων µε X 1 = X 2 προτείνεται η επιλογή µιας τοπολογίας διεργασιών 256×256, ενώ γιατην περίπτωση X 1 = 2X 2 οι δύο αυτές τοπολογίες είναι ισοδύναµες, σε ό,τι αϕορά τον όγκο δεδοµένωνεπικοινωνίας. Στην τελευταία περίπτωση, θα επιλέγαµε πιθανότατα την τοπολογία που ικανοποιείτη σχέση P 1 = P 2 (εδώ 256 × 256), καθώς αυτή επιπλέον ελαχιστοποιεί την αρχική καθυστέρησηδιάδοσης του παράλληλου προγράµµατος, όπως εξηγήθηκε και παραπάνω.


70 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτων4.3 Προσδιορισµός Τοπολογίας ∆ιεργασιών Ελάχιστης ΕπικοινωνίαςΒασιζόµενοι στο λήµµα 4.1 υλοποιήσαµε µια ευριστική µέθοδο που αναζητεί εξαντλητικά µια αποδεκτήτοπολογία στην κοντινή περιοχή του ελαχίστου της V comm . Η µέθοδος υλοποιήθηκε σε γλώσσαπρογραµµατισµού C και ενσωµατώθηκε ως αυτόµατη βελτιστοποίηση σε όλες τις πειραµατικές περιπτώσεις,που θελήσαµε να επαληθεύσουµε την επίδοση της τοπολογίας απεικόνισης ελάχιστης επικοινωνίας.Η µέθοδος παρουσιάζεται στον αλγόριθµο 4.5. Ο αλγόριθµος δέχεται σαν είσοδο το συνολικό πλήθοςτων διαθέσιµων διεργασιών P , τον υπό εξέταση χώρο επαναλήψεων ∏ Ni=1 X iZ και τις εξαρτήσειςδεδοµένων [d 1 , . . . , 0] T , . . . , [0, . . . , d N+1 ] T , ενώ παρέχει ως έξοδο µια προτεινόµενη τοπολογία διεργασιών∏ Ni=1 P i για την απεικόνιση του παράλληλου αλγορίθµου. Στη γραµµή 1 ο αλγόριθµος υπολογίζειµε χρήση της (4.6) µια ακέραιη προσέγγιση ∏ Ni=1 P (0)iτης θέσης ελαχίστου της V comm . Στιςγραµµές 2-4 εξετάζεται κατά πόσο η ∏ Ni=1 P (0)iαποτελεί έγκυρη λύση του προβλήµατος βελτιστοποίησης,παρέχει δηλαδή ως γινόµενο το επιθυµητό πλήθος διεργασιών P . Αν κάτι τέτοιο συµβαίνει,αντιγράϕονται οι συνιστώσες P (0)iστις αντίστοιχες P i και πραγµατοποιείται έξοδος από τον αλγόριθµο,καθώς στην περίπτωση αυτή η (4.6) παρείχε απευθείας µία έγκυρη τοπολογία απεικόνισης. Σεαντίθετη περίπτωση, χρησιµοποιώντας ως αϕετηριακό διάνυσµα το (P (0)1 , . . . , P (0)N) πραγµατοποιείταιεξαντλητική αναζήτηση στην κοντινή περιοχή για εύρεση µιας αποδεκτής τοπολογίας απεικόνισηςστις γραµµές 6-24.Συγκεκριµένα, στο τµήµα του αλγορίθµου µεταξύ των γραµµών 7-17 σχηµατίζονται από όλα ταδιανύσµατα (P (n)1 , . . . , P (n)(n+1)N) του προηγούµενου βήµατος όλα τα διανύσµατα (P 1 , . . . , P (n+1)N),που διαϕέρουν από τα πρώτα ακριβώς σε µία συνιστώσα κατά +1 ή -1 (βλ. γραµµή 9). Από αυτά απορρίπτονταιοι συνδυασµοί εκείνοι, στους οποίους µία τουλάχιστον συνιστώσα έγκειται εκτός του διαστήµατος[1 . . . P ]. Επιπλέον, µπορούν να απορριϕθούν τα διανύσµατα που αϕενός δεν αντιστοιχούνσε περιπτώσεις ταλάντωσης της µεθόδου εκατέρωθεν της θέσης ελαχίστου και αϕετέρου αποµακρύνονταιαπό αυτή σε σχέση µε το διάνυσµα απ' το οποίο προήλθαν (γραµµές 13-15). Η συγκεκριµένηαπαλοιϕή των περιπτώσεων αυτών βασίζεται στη µονοτονία που έχει η συνάρτηση κόστους επικοινωνίαςV comm και µειώνει σηµαντικά την πολυπλοκότητα της µεθόδου, καθώς από τους 2N νέουςσυνδυασµούς που παρέχει κάθε διάνυσµα απορρίπτονται οι µισοί. Τέλος, στις γραµµές 18-22 εξετάζεταιαν µεταξύ των διανυσµάτων (P (n+1)1 , . . . , P (n+1)N) υπάρχουν έγκυρες λύσεις του προβλήµατοςτης τοπολογίας. Εϕόσον αυτό συµβαίνει, επιλέγεται εκείνη µε το ελάχιστο κόστος επικοινωνίας καιαντιγράϕεται στην ∏ Ni=1 P i, ενώ η σηµαία valid τίθεται στην τιµή 1 για να πραγµατοποιηθεί έξοδοςαπό το βρόχο αναζήτησης. Σε αντίθετη περίπτωση, η αναζήτηση συνεχίζεται µε την εξέταση όλων τωνδυνατών συνδυασµών του επόµενου επιπέδου.Λαµβάνοντας υπόψη ότι η διάσταση N του αλγορίθµου είναι µικρή στις περιπτώσεις πραγµατικών


4.3 Προσδιορισµός Τοπολογίας ∆ιεργασιών Ελάχιστης Επικοινωνίας 71Αλγόριθµος 4.5: Αλγόριθµος προσδιορισµού τοπολογίας διεργασιών ελάχιστης επικοινωνίας12∏∆εδοµένα: Πλήθος διεργασιών P , χώρος επαναλήψεων N X i Z, εξαρτήσεις δεδοµένων[d 1 , . . . , 0] T , . . . , [0, . . . , d N+1 ] TΖητούµενα: Τοπολογία διεργασιών N ∏P (0)j=if N ∏i=1⎢√⎣ X j Nd jP (0)iQP N d ii=1NQi=1= P <strong>the</strong>ni=1X i⎥ ⎥⎥⎥⎦,1 ≤ j ≤ N;P ii=13 P i = P (0)i, 1 ≤ i ≤ N; ;4 endifvalid = £$¦£N 5 n = 0; V comm min = MAX INF ;6 while valid = 0 do7 <strong>for</strong>each P (n) do8 <strong>for</strong> j ← 1 to N do9 P (n+1) = (P (n)1 , . . . , P (n)j± 1, . . . , P (n)(N );N∏) ( N∏)if P (n+1)i> P ∨ P (n+1)i< 1 <strong>the</strong>n10i=11112131415161718192021222324P (n+1) ; ;§N¦M¡;N$ ¡¥©C£©6PRendifif((( N∏<strong>the</strong>nP (n+1)i− Pi=1endifend<strong>for</strong>end<strong>for</strong>each<strong>for</strong>each P (n+1) do(( N∏if) ( N∏)P (n)i− Pi=1¡¥©C£©6PP (n+1) R ; §N¦M¡;N$ ;P (n+1)i= Pi=1P i = P (n+1)iendifend<strong>for</strong>eachn = n + 1;endwhilei=1) (∏> 0 ∧ | N P (n+1)i− P | > | N ))∏P (n)i− P |i=1i=1)∧ (c ¤::PP (n+1) R < V comm min) ) <strong>the</strong>n, 1 ≤ i ≤ N; V comm min = c ¤:©:PP (n+1) R ; valid = 1;


72 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτωνεϕαρµογών, η πολυπλοκότητα της ευριστικής µεθόδου είναι πρακτικά αποδεκτή, παρότι θεωρητικάχαρακτηρίζεται ως εκθετική. Για να επαληθεύσουµε τον ισχυρισµό αυτό µετρήσαµε το χρόνο εκτέλεσηςγια τον καθορισµό της τοπολογίας ελάχιστης επικοινωνίας σε έναν Pentium III στα 800 MHz γιαπλήθος διεργασιών 100 ≤ P ≤ 1k, όλους τους δυνατούς τετραδιάστατους χώρους επαναλήψεωντης µορϕής (100 . . . 10k) × (100 . . . 10k) × (100 . . . 10k) × Z και εξαρτήσεις δεδοµένων στο εύρος[(1 . . . 3, 0, 0, d), (0, 1 . . . 3, 0, d ′ ), (0, 0, 1 . . . 3, d ′′ )]. Οι τιµές αυτές αντιστοιχούν σε προβλήµατα καιαρχιτεκτονικές µεγάλης κλίµακας, συνεπώς η πιστοποίηση της επίδοσης της µεθόδου µε χρήση τωνσυγκεκριµένων µετρήσεων παρέχει µια πραγµατική ένδειξη της επιβάρυνσης που επιϕέρει η µέθοδοςσε ρεαλιστικές συνθήκες. Ο µέσος χρόνος υπολογισµού µιας έγκυρης τοπολογίας βάσει της προτεινό-µενης τεχνικής ήταν 21 msec, ενώ σε καµία περίπτωση ο χρόνος εκτέλεσης δεν υπερέβη τα 0.9 sec.4.4 Ισοδύναµα: Προσδιορισµός Ορθογώνιου Μετασχηµατισµού ΥπερκόµβωνΕλάχιστης ΕπικοινωνίαςΣτην παρούσα ενότητα θα επιχειρήσουµε µια διαϕορετική προσέγγιση στο πρόβληµα του προσδιορισµούτοπολογίας διεργασιών ελάχιστης επικοινωνίας. Συγκεκριµένα, θα αναδείξουµε την ισοδυναµίατου προβλήµατος αυτού µε το πρόβληµα του καθορισµού κατάλληλου ορθογώνιου µετασχηµατισµούυπερκόµβων για τη διαµέριση του αρχικού αλγορίθµου. Όπως αναϕέρθηκε, ο µετασχηµατισµός υπερκόµβωντυγχάνει εκτενούς µελέτης στη διεθνή βιβλιογραϕία. Αντίθετα όµως µε τη δική µας προσέγγιση,σε κάποιες περιπτώσεις χρησιµοποιούνται µη ορθογώνιοι υπερκόµβοι, που δυσχεραίνουν σηµαντικάτην πρακτική εϕαρµογή των τεχνικών στην SPMD παραλληλοποίηση αλγορίθµων. Ακόµα πιοσηµαντική διαϕορά συνιστά το γεγονός πως στη σχετική βιβλιογραϕία το πλήθος των διεργασιών πουδιατίθενται για την παράλληλη εκτέλεση σπανίως θεωρείται εξ αρχής ως περιορισµός, καταλήγονταςέτσι σε διαϕωνία µεταξύ του εκάστοτε προτεινόµενου µετασχηµατισµού υπερκόµβων και της υϕιστά-µενης υπολογιστικής υποδοµής.Στη δική µας προσέγγιση, για τον προσδιορισµό αποδοτικού µετασχηµατισµού υπερκόµβων δεχό-µαστε τα ακόλουθα δεδοµένα:• Το πλήθος των διαθέσιµων διεργασιών είναι γνωστό και πεπερασµένο, έστω ίσο µε P . Η παραδοχήαυτή αντανακλά τη ρεαλιστική ανάγκη να προσαρµόσουµε την παράλληλη υλοποίησή µας στηνυϕιστάµενη επεξεργαστική υποδοµή, καθώς η τελευταία θέτει άλλωστε ένα άνω ϕράγµα στηµέγιστη επιτάχυνση του χρόνου εκτέλεσης, που µπορεί πρακτικά να επιτευχθεί.• Θεωρούµε ένα δεδοµένο κόκκο παραλληλισµού, έστω g, που ισοδυναµεί πρακτικά µε το µέγεθοςτου υπερκόµβου, δηλαδή το πλήθος των επαναλήψεων που θα περικλείει ο κάθε υπερκόµβος.


4.4 Ισοδύναµα: Προσδιορισµός Ορθογώνιου Μετασχηµατισµού Υπερκόµβων Ελάχιστης Επικοινωνίας 73Ο υπολογισµός του βέλτιστου κόκκου παραλληλισµού είναι ανοιχτό ερευνητικό ζήτηµα και ξε-ϕεύγει από το αντικείµενο της παρούσας διατριβής, µπορεί δε να καθοριστεί όπως θα δούµε µετην επιλογή του ύψους του υπερκόµβου z, που επίσης θεωρήσαµε ως ελεύθερη παράµετρο στηνενότητα 4.2. Πάντως είναι σηµαντικό να θεωρηθεί ο κόκκος παραλληλισµού ως δεδοµένος περιορισµός,γιατί αν µια τέτοια πληροϕορία διατίθεται ή µπορεί να εξαχθεί µε κάποιο τρόπο για ένασυγκεκριµένο συνδυασµό αλγορίθµου-αρχιτεκτονικής, θα πρέπει να αξιοποιηθεί σε οποιαδήποτετεχνική µετασχηµατισµού υπερκόµβων. Επιπλέον, όπως θα δούµε, ακόµα κι αν διατηρήσουµε τοg ως ελεύθερο άγνωστο, µπορούµε παρόλα αυτά να καταλήξουµε στον αναλυτικό προσδιορισµόενός µετασχηµατισµού υπερκόµβων ελάχιστης επικοινωνίας, λόγω του ότι η επικοινωνία θα αϕοράτις N διαστάσεις ενός αλγορίθµου διάστασης N + 1, αϕήνοντας έτσι ένα βαθµό ελευθερίαςστον προσδιορισµό του ζητούµενου πίνακα µετασχηµατισµού H.• Θεωρούµε τέλος ότι αναϕερόµαστε σε ένα συγκεκριµένο αλγόριθµο ϕωλιασµένων βρόχων διάστασηςN + 1, δηλαδή κατά τα γνωστά θα θεωρήσουµε ένα δεδοµένο χώρο επαναλήψεων X 1 ×· · ·×X N ×Z, καθώς και συγκεκριµένες εξαρτήσεις δεδοµένων [d 1 , . . . , 0] T , . . . , [0, . . . , d N+1 ] T .Ο προτεινόµενος µετασχηµατισµός υπερκόµβων για την ελαχιστοποίηση της επικοινωνίας µεταξύτων διεργασιών µπορεί να υπολογιστεί µε χρήση του ακόλουθου λήµµατος:Λήµµα 4.2. Έστω X 1 ×· · ·×X N ×Z ο χώρος επαναλήψεων ενός επαναληπτικού αλγορίθµου διάστασηςN + 1, µε εξαρτήσεις δεδοµένων τις [d 1 , . . . , 0] T , . . . , [0, . . . , d N+1 ] T . Έστω P το πλήθος των διεργασιώνπου χρησιµοποιούνται για την απεικόνιση του παράλληλου αλγορίθµου. Αν υπάρχουν µη αρνητικοίακέραιοι P i ∈ N που πληρούν τις (4.4) και (4.5), τότε ο µετασχηµατισµός υπερκόµβων που ορίζεται απότον πίνακα⎡H =⎢⎣P 1X 10 . . . 0 0. . .0 0 . . .0 0 . . . 0P NX N0NQX ii=1Qg N P ii=1⎤⎥⎦(4.16)ελαχιστοποιεί την επικοινωνία µεταξύ διεργασιών κατά την παράλληλη εκτέλεση µε χρήση του αλγορίθ-µου 4.4 µε κόκκο παραλληλισµού g.Απόδειξη. Είναι σαϕές ότι ο προτεινόµενος µετασχηµατισµός είναι ορθογώνιος, καθώς ο πίνακας Hείναι διαγώνιος. Αρκεί να δείξουµε ότι ο µετασχηµατισµός αυτός ισοδυναµεί µε επιλογή τοπολογίαςP 1 × · · · × P N και χαρακτηρίζεται από κόκκο παραλληλισµού g. Ο προτεινόµενος υπερκόµβος έχει ως


74 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτωνπλευρές τις στήλες του αντιστρόϕου του H, δηλαδή του πίνακα⎡H −1 =⎢⎣X 1P 10 . . . 0 0. . .0 0 . . .0 0 . . . 0X NP N0Qg N P ii=1NQX ii=1⎤⎥⎦Πρόκειται εποµένως για ορθογώνιους υπερκόµβους µεγέθους∏|H −1 | = X g N P i1· · · · · XN i=1·P 1 P NN∏X ii=1και πλευράς µήκους X jP jκατά µήκος της διάστασης X j του αλγορίθµου, διαιρώντας έτσι την τελευταίασε X j / X jP j= P j διεργασίες. Τέλος, παρατηρούµε ότι η εσωτερική διάσταση σειριακής εκτέλεσης τουυπερκόµβου (ύψος z) σχετίζεται µε τον κόκκο παραλληλισµού g µέσω της σχέσης:= gz =∏g N P ii=1N∏X ii=14.5 Χρονοδροµολόγηση µε Επικάλυψη Επικοινωνίας - ΥπολογισµώνΕπανερχόµενοι στον αλγόριθµο 4.4, θα πρέπει να σχολιάσουµε ένα ακόµη πολύ επιθυµητό χαρακτηριστικότης συγκεκριµένης προσέγγισης παραλληλοποίησης: τη δυνατότητα επικάλυψης υπολογισµούκαι επικοινωνίας. Πιο συγκεκριµένα, σε κάθε υπερκόµβο που απαριθµείται από τη µεταβλητή ελέγχουtile N+1 , µία διεργασία ⃗p = (p 1 , . . . , p N ) ταυτόχρονα εκτελεί τους υπολογισµούς που σχετίζονταιµε τον τρέχοντα υπερκόµβο (p 1 , . . . , p N , tile N+1 ), λαµβάνει δεδοµένα που απαιτούνται για τον υπολογισµότου επόµενου υπερκόµβου (p 1 , . . . , p N , tile N+1 + 1), καθώς και αποστέλλει δεδοµένα πουπαρήχθησαν κατά τους υπολογισµούς του προηγούµενου υπερκόµβου (p 1 , . . . , p N , tile N+1 − 1).Η εϕαρµοζόµενη χρονοδροµολόγηση συγκεντρώνει τις εξής σηµαντικές ιδιότητες:• δεν παραβιάζει τις εξαρτήσεις δεδοµένων του υπό παραλληλοποίηση αλγορίθµου


4.5 Χρονοδροµολόγηση µε Επικάλυψη Επικοινωνίας - Υπολογισµών 75• επιτρέπει την επικάλυψη υπολογισµού και επικοινωνίας• υλοποιεί παραλληλισµό χονδρού κόκκου, κατάλληλο για αρχιτεκτονικές κατανεµηµένης µνήµης• επιτυγχάνει ένα ικανοποιητικό συµβιβασµό µεταξύ του βαθµού παραλληλισµού και της αναγκαιότηταςεπικοινωνίας και συγχρονισµούΗ εν λόγω χρονοδροµολόγηση παρέχει απλά τη δυνατότητα για επικάλυψη επικοινωνίας και υπολογισµού.Η αξιοποίηση της δυνατότητας αυτής προϋποθέτει όµως προηγµένα χαρακτηριστικά επικοινωνίαςτου δικτύου διασύνδεσης, όπως υποστήριξη DMA επικοινωνίας µε άµεση προσπέλαση της µνή-µης, καθώς και µηδενική αντιγραϕή (zero-copy) µε σταθερή συσχέτιση ϕυσικών-εικονικών διευθύνσεωνµνήµης. Για το τελευταίο εϕαρµόζονται τεχνικές όπως η απαγκίστρωση εικονικών σε ϕυσικές διευθύνσεις(pinned-down memory addresses) ή κλείδωµα µνήµης (memory locking). ∆υστυχώς, η πειραµατικήαξιολόγηση σε ένα δίκτυο διασύνδεσης που υλοποιεί τη στοίβα πρωτοκόλλων TCP/IP, όπως το E<strong>the</strong>rnet,σε συνδυασµό µε την αντίστοιχη ADI-2 συσκευή της υλοποίησης του MPICH (κανάλι ch p4),απαγορεύει την αξιοποίηση τέτοιων προηγµένων χαρακτηριστικών. Θα πρέπει πάντως να σηµειωθείότι οι ίδιοι περιορισµοί ισχύουν και για τα υβριδικά µοντέλα προγραµµατισµού, συνεπώς δεν αναµένεταινα επηρεάσουν τη σύγκριση µεταξύ των διαϕορετικών τεχνικών παράλληλου προγραµµατισµού.Στον αντίποδα όµως, το συγκεκριµένο δεδοµένο περιπλέκει τη θεωρητική µας ανάλυση, καθώς θα θεωρήσουµεεν γένει διακριτές, µη επικαλυπτόµενες ϕάσεις υπολογισµού και επικοινωνίας, παραδοχή πουεν µέρει υποτιµά την αποδοτικότητα των λειτουργιών ανταλλαγής µηνυµάτων.Αναλυτικότερα, ο συνολικός χρόνος εκτέλεσης T του παράλληλου προγράµµατος υπό το µετασχη-µατισµό υπερκόµβων µπορεί θεωρητικά να προσεγγιστεί ωςT = N × T tile (4.17)όπου N ο συνολικός αριθµός βηµάτων παράλληλης εκτέλεσης και T tile ο µέσος χρόνος εκτέλεσης πουαπαιτείται για την περάτωση ενός βήµατος και ταυτίζεται µε το µέσο χρόνο εκτέλεσης υπερκόµβου. Οσυνολικός αριθµός παράλληλων βηµάτων N µπορεί να προκύψει από τη σχέσηN = t last − t first + 1 (4.18)όπου t first η χρονική στιγµή στην οποία δροµολογείται ο πρώτος υπερκόµβος που θα εκτελεστεί, ενώt last η χρονική στιγµή δροµολόγησης του τελευταίου υπερκόµβου. Βάσει της θεωρίας γραµµικής χρονοδροµολόγησης,η χρονική στιγµή t στην οποία δροµολογείται ένας υπερκόµβος ⃗ j ′ = ⌊H⃗j⌋ παρέχεται


76 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτωναπό τη σχέσηt =⌊Π ⃗ j ′ + t 0dispΠ⌋(4.19)όπου t 0 η σταθερά έναρξης και dispΠ η σταθερά µετατόπισης. Αναϕορικά µε τη θεωρητική ανάλυσητης γραµµικής χρονοδροµολόγησης, ο ενδιαϕερόµενος αναγνώστης µπορεί να βρει περισσότεραστα [SF91, AKPT99, Hod99, GSK01, KSG03, Σωτ04]. Εν προκειµένω, για την περίπτωσή µας αποδεικνύεταιότι t 0 = 0 και dispΠ = 1. Αυτό που παρουσιάζει ιδιαίτερο ενδιαϕέρον είναι αυτό καθ' αυτό τογραµµικό διάνυσµα δροµολόγησης Π (linear scheduling vector) που διαϕοροποιείται από το κατά πόσοέχουµε ή όχι επικάλυψη υπολογισµών και επικοινωνίας. Έτσι, στην περίπτωση της µη επικαλυπτόµενηςχρονοδροµολόγησης, προκύπτει ότι το βέλτιστο διάνυσµα δροµολόγησης ισούται µεΠ non−overlap = [1, 1, . . . , 1, 1] (4.20)ενώ για την περίπτωση της επικαλυπτόµενης χρονοδροµολόγησης έχουµεΠ overlap = [2, 2, . . . , 2, 1] (4.21)Για το µέσο χρόνο εκτέλεσης υπερκόµβου, στην περίπτωση της µη επικαλυπτόµενης χρονοδροµολόγησηςθεωρούνται διακριτές ϕάσεις υπολογισµού και επικοινωνίας. Συνεπώς, ο αντίστοιχος χρόνοςεκτέλεσης υπερκόµβου T non−overlap προκύπτει αθροίζοντας το χρόνο υπολογισµού t comp µε το χρόνοεπικοινωνίας t startup + t comm (αρχικοποίηση+µετάδοση δεδοµένων):T non−overlap = t comp + t startup + t comm (4.22)Αντίθετα, στην περίπτωση πραγµατικής επικάλυψης υπολογισµού και επικοινωνίας, ο µέσος χρόνοςεκτέλεσης του υπερκόµβου ισούται µε τη σταθερή συνιστώσα αρχικοποίησης της επικοινωνίας t startupαθροιζόµενη µε την ποσότητα max(t comp , t comm ) λόγω επικάλυψης:T overlap = t startup + max(t comp , t comm ) (4.23)Παρότι σηµασιολογικά το σχήµα δροµολόγησης που υλοποιείται µέσω του αλγορίθµου 4.4 επιτρέπειτην επικάλυψη υπολογισµού και επικοινωνίας, για τη θεωρητική µοντελοποίηση της συµπεριϕοράςτου συστήµατος θα προτιµήσουµε τη χρήση των (4.20) και (4.22) έναντι των (4.21) και (4.23). Αν καιη DMA λειτουργία µας επιτρέπει µέχρι κάποιου βαθµού να επιτύχουµε αρκετά υψηλούς ρυθµούς παροχήςδικτύου, ο συνδυασµός του καναλιού ch p4 του MPICH µε τη στοίβα πρωτοκόλλων TCP/IPτου E<strong>the</strong>rnet οδηγούν σε ένα σηµαντικό αριθµό αντιγραϕών των δεδοµένων, απασχολώντας έτσι τον


4.5 Χρονοδροµολόγηση µε Επικάλυψη Επικοινωνίας - Υπολογισµών 77επεξεργαστή όχι µόνο κατά τη σταθερή συνιστώσα αρχικοποίησης t startup , αλλά τουλάχιστον και κατάµια συνιστώσα που είναι ανάλογη του µεγέθους του µηνύµατος και είναι δύσκολο να µοντελοποιηθείθεωρητικά. Για το σκοπό αυτό επιλέξαµε να προσεγγίσουµε σε θεωρητικό επίπεδο την επίδοση των µοντέλωνπαραλληλοποίησης µε χρήση της µη επικαλυπτόµενης προσέγγισης, θεωρώντας παράλληλα,όπου χρειάστηκε, υψηλό ρυθµό παροχής δικτύου για να προσοµοιάσουµε την περιορισµένη επικάλυψηπου επιτυγχάνεται στη συγκεκριµένη αρχιτεκτονική υποδοµή.


78 Παράλληλο Προγραµµατιστικό Μοντέλο Ανταλλαγής Μηνυµάτων


ΚΕΦΑΛΑΙΟ 5Υβριδικό Παράλληλο Προγραµµατιστικό ΜοντέλοΤο υβριδικό προγραµµατιστικό µοντέλο διαισθητικά ανταποκρίνεται αποδοτικότερα σε µια αρχιτεκτονικήκατανεµηµένης µοιραζόµενης µνήµης. Προς την κατεύθυνση αξιοποίησης µιας τέτοιας αρχιτεκτονικήςυποδοµής (π.χ. µιας συστοιχίας κόµβων συµµετρικής πολυεπεξεργασίας) η υβριδική προσέγγισηπαραλληλοποίησης κάνει διάκριση µεταξύ της επικοινωνίας που εµπλέκει επεξεργαστές του ίδιουκόµβου µοιραζόµενης µνήµης (intra-node communication) και της επικοινωνίας µεταξύ επεξεργαστώνδιαϕορετικών κόµβων (inter-node communication). Έτσι, στο εσωτερικό του ίδιου κόµβου αξιοποιείταιη δυνατότητα µοιραζόµενης µνήµης, σε συνδυασµό µε κατάλληλο συγχρονισµό. Αντίθετα, µεταξύδιαϕορετικών κόµβων διατηρείται η επικοινωνία µέσω ανταλλαγής µηνυµάτων, στη µορϕή που αυτήπαρουσιάστηκε στο κεϕάλαιο 4. Στο κεϕάλαιο αυτό θα περιγραϕούν υβριδικά µοντέλα παραλληλοποίησηςαλγορίθµων ϕωλιασµένων βρόχων, που αξιοποιούν τη χρονοδροµολόγηση υπερεπιπέδων για τηνελαχιστοποίηση του συγχρονισµού και την επίτευξη υψηλού βαθµού παραλληλίας. Θα αναϕερθούµεσε υβριδικά µοντέλα παραλληλισµού τόσο λεπτού όσο και χονδρού κόκκου και θα αναπτύξουµε βασικέςτεχνικές εξισορρόπησης του ϕορτίου µεταξύ των νηµάτων, που αποδεικνύονται ιδιαίτερα χρήσιµεςσε περιπτώσεις ελλιπούς πολυνηµατικής υποστήριξης από τη βιβλιοθήκη ανταλλαγής µηνυµάτων.5.1 Υβριδικό ΜοντέλοΣε όλες τις παραλλαγές του, το υβριδικό µοντέλο βασίζεται στη θεµελιώδη διάκριση µεταξύ των νηµάτων(threads) και των διεργασιών (processes). Κάθε διεργασία του υβριδικού προγράµµατος αποτελείται


80 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοαπό περισσότερα του ενός νήµατα εκτέλεσης. Τα νήµατα µοιράζονται τον κοινό χώρο διευθύνσεωντης διεργασίας, αλλά παράλληλα κάθε ένα διατηρεί το δικό του µετρητή προγράµµατος, σύνολο καταχωρητώνκαι στοίβα δεδοµένων. Το βασικό πλεονέκτηµα των νηµάτων σε σχέση µε τις διεργασίεςείναι η σηµαντικά µικρότερη επιβάρυνση που συνεπάγονται κατά τη µεταγωγή περιβάλλοντος (contextswitching) λόγω του ότι επιϕέρουν ελάχιστη ή καθόλου αναγκαιότητα διαχείρισης µνήµης. Το υβριδικόπαράλληλο προγραµµατιστικό µοντέλο στοχεύει στην αξιοποίηση της δυνατότητας επικοινωνίας µέσωτου κοινού χώρου µνήµης που βλέπουν τα νήµατα, αποσκοπώντας ταυτόχρονα στην ελαχιστοποίησητου µεταξύ τους συγχρονισµού, που απαιτείται για τη διασϕάλιση ελεγχόµενης πρόσβασης στα µοιραζόµεναδεδοµένα. Οι δύο αυτές παράµετροι συνιστούν και τις βασικές προτεραιότητες του σχήµατοςχρονοδροµολόγησης υπερεπιπέδων, που αποτελεί το αντικείµενο της επόµενης ενότητας.Η πολυνηµατική επεξεργασία χρησιµοποιείται κατά κόρον στον παράλληλο προγραµµατισµό σεαρχιτεκτονικές µοιραζόµενης µνήµης. Το µοντέλο προγραµµατισµού µοιραζόµενης µνήµης παρουσιάζειδύο πολύ βασικά πλεονεκτήµατα: κατά πρώτον, είναι σχετικά απλό, δεδοµένου ότι χρησιµοποιεί τησυνήθη σύνταξη της γλώσσας προγραµµατισµού για την προσπέλαση του µοιραζόµενου χώρου µνή-µης. Συγκριτικά µε το µοντέλο ανταλλαγής µηνυµάτων, το πολυνηµατικό µοντέλο δεν επιϕέρει τηνπρογραµµατιστική πολυπλοκότητα που σχετίζεται µε την κατανοµή των δεδοµένων και των υπολογισµώνκατά την απεικόνιση του αλγορίθµου στην υϕιστάµενη αρχιτεκτονική. Κατά δεύτερον, η πολυνηµατικήεπεξεργασία παρέχει τη δυνατότητα βελτίωσης της απόδοσης σε υποδοµή µοιραζόµενηςµνήµης, τόσο µέσω ρητού διαχωρισµού της επικοινωνίας και του συγχρονισµού όσο και µέσω ελαχιστοποίησηςτης ενδιάµεσης αποθήκευσης και της αντιγραϕής δεδοµένων. Στο µοντέλο ανταλλαγής µηνυµάτων,η χρήση λειτουργιών επικοινωνίας για την ανταλλαγή δεδοµένων µεταξύ διεργασιών συχνάεπιβάλλει έµµεσα και µια συγκεκριµένη χρονική ακολουθία εκτέλεσης, τουλάχιστον σε ό,τι αϕορά τιςεµπλεκόµενες διεργασίες [GLT99]. Για παράδειγµα, για την ανταλλαγή ενός µηνύµατος θα πρέπει ηδιεργασία-αποστολέας να καλέσει µια ρουτίνα αποστολής, ενώ η διεργασία-παραλήπτης να απαντήσειµε µια κατάλληλη ρουτίνα λήψης. Εάν για κάποιο λόγο η ρουτίνα αποστολής µπορεί να επιστρέψειµόνο εϕόσον βεβαιωθεί ότι τα δεδοµένα έχουν παραληϕθεί επιτυχώς (π.χ. λόγω έλλειψης πόρων γιαενδιάµεση αποθήκευση), τότε οι δύο διεργασίες θα πρέπει ουσιαστικά να συγχρονιστούν, γεγονός πουέχει δυσµενή επίδραση στην απόδοση του προγράµµατος. Η πολυνηµατική επεξεργασία επιτρέπει τονδιαχωρισµό της πρόσβασης σε ιδιωτική και µοιραζόµενη µνήµη µέσω κατάλληλου ρητού (explicit) συγχρονισµού,που µπορεί να χρησιµοποιείται επιλεκτικά από τον προγραµµατιστή µόνο εϕόσον κρίνεταισηµασιολογικά απαραίτητος, χωρίς να επιβαρύνει έτσι την επίδοση περισσότερο απ' ό,τι απαιτείται.Επίσης, ο συνδυασµός του συγχρονισµού και της µοιραζόµενης µνήµης επιτρέπει την εξάλειψη όλωντων ενδιάµεσων αντιγραϕών δεδοµένων, που επιβάλλει το µοντέλο ανταλλαγής µηνυµάτων.Για να εϕαρµοστεί το πολυνηµατικό µοντέλο προγραµµατισµού, είναι σαϕές ότι προϋποτίθεται υϕι-


5.1 Υβριδικό Μοντέλο 81στάµενη αρχιτεκτονική µοιραζόµενης µνήµης. Όπως αναλύθηκε στην ενότητα 2.1.3, οι αρχιτεκτονικέςαµιγώς µοιραζόµενης µνήµης υστερούν σε σχέση µε τις αντίστοιχες κατανεµηµένης µνήµης σε ό,τι αϕοράστην επεκτασιµότητα, καθώς οι περιορισµοί του ρυθµού παροχής δεδοµένων που επιβάλλει η χρήσηενός κεντρικού συστήµατος µνήµης σε συνδυασµό µε τη δυσκολία αποδοτικής κλιµάκωσης ενός πρωτοκόλλουσυνάϕειας κρυϕής µνήµης µεταξύ των επεξεργαστών επιτρέπουν την επέκταση µιας τέτοιαςαρχιτεκτονικής κατά µέγιστο σε λίγες δεκάδες επεξεργαστών. Εντούτοις, ο συνδυασµός των δύο βασικώναρχιτεκτονικών προς τη σύνθεση µιας νέας, υβριδικής αρχιτεκτονικής κατανεµηµένης µοιραζόµενηςµνήµης επιτυγχάνει να συγκεράσει τα επιθυµητά στοιχεία κάθε αρχιτεκτονικής, παρακάµπτονταςταυτόχρονα αρκετούς από τους δυσµενείς περιορισµούς. Πέρα από τις υπόλοιπες ιδιαιτερότητές τους,οι αρχιτεκτονικές αυτές παρέχουν τη δυνατότητα τόσο για πολυνηµατική επεξεργασία στο εσωτερικόκάθε κόµβου όσο και για ανταλλαγή µηνυµάτων µεταξύ διαϕορετικών κόµβων, επιτρέποντας έτσι τηνανάπτυξη ενός νέου προγραµµατιστικού µοντέλου, που συχνά χαρακτηρίζεται ως υβριδικό προγραµµατιστικόµοντέλο. Το µοντέλο αυτό αποσκοπεί στην αξιοποίηση της διεπίπεδης ιεραρχίας που ενυπάρχεισε τέτοια συστήµατα, µε απώτερο στόχο τη µείωση του συνολικού χρόνου εκτέλεσης του παράλληλουπρογράµµατος, κυρίως µέσω µείωσης της απαιτούµενης επικοινωνίας.Μολονότι η αξιοποίηση της υϕιστάµενης αρχιτεκτονικής αποτελεί βασική επιδίωξη του υβριδικούπαράλληλου προγραµµατιστικού µοντέλου, τα συγκριτικά θεωρητικά πλεονεκτήµατα του τελευταίουδεν εξαντλούνται στο στοιχείο αυτό. Στην εργασία [SB01] γίνεται εκτενής αναϕορά σε αρκετά από ταπλεονεκτήµατα του υβριδικού παράλληλου προγραµµατισµού, τα οποία συνοψίζουµε εδώ χάριν πληρότητας,µαζί µε περαιτέρω συµπεράσµατα που προέκυψαν κατά την ενασχόλησή µας µε το ζήτηµα τηςυβριδικής παραλληλοποίησης:1. Σε κάποιες περιπτώσεις, η µονολιθική υλοποίηση ανταλλαγής µηνυµάτων µπορεί να παρουσιάζειµειωµένη επεκτασιµότητα για διαϕορετικούς λόγους απ' ότι η ισοδύναµη πολυνηµατική υλοποίησηγια περιβάλλον µοιραζόµενης µνήµης. Για παράδειγµα, είναι πιθανό η πρώτη να εµϕανίζειπροβλήµατα στην αποδοτική εξισορρόπηση του υπολογιστικού ϕορτίου, ενώ η δεύτερη να αντι-µετωπίζει προβλήµατα συµϕόρησης κατά την προσπέλαση µεγάλου όγκου δεδοµένων στο κοινόυποσύστηµα µνήµης. Η χρήση υβριδικής παραλληλοποίησης επιτρέπει την άµβλυνση αµϕότερωνπροβληµάτων, καθώς η κατανεµηµένη µνήµη διασϕαλίζει πολλαπλάσια δυνατότητα παροχήςδεδοµένων σε σχέση µε το µονολιθικό πολυνηµατικό µοντέλο, ενώ η χρήση πολυνηµατικήςεπεξεργασίας στο εσωτερικό µιας διεργασίας προσϕέρει ευελιξία ως προς την αποτελεσµατικότερηεξισορρόπηση του ϕορτίου κατά το χρόνο εκτέλεσης.2. Στην περίπτωση παραλληλοποίησης εϕαρµογών που χαρακτηρίζονται εγγενώς από σχετικά µικρήδυνατότητα στατικής εκτίµησης του συνολικού υπολογιστικού ϕορτίου, η πολυνηµατική επεξεργασίαπλεονεκτεί διευκολύνοντας το δυναµικό επαναπροσδιορισµό της κατανοµής των δεδο-


82 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοµένων και των υπολογισµών, καθώς δεν επιβαρύνει µε την επιπλέον επικοινωνία που θα χρειαζόµαστανστο µονολιθικό µοντέλο ανταλλαγής µηνυµάτων. Σε τέτοιες εϕαρµογές το υβριδικόµοντέλο µπορεί να επιτύχει αποδοτική δυναµική κατανοµή των δεδοµένων και των υπολογισµώνµεταξύ των νηµάτων στο εσωτερικό της διεργασίας, ενώ διατηρείται παράλληλα η χρήση ανταλλαγήςµηνυµάτων για την επικοινωνία µεταξύ των κόµβων του κατανεµηµένου περιβάλλοντος.3. Γενικά, ο βέλτιστος κόκκος παραλληλισµού υπαγορεύεται τόσο από τη ϕύση των υπολογισµώντου προβλήµατος όσο και από την υϕιστάµενη αρχιτεκτονική και ιδιαίτερα τις επιβαρύνσεις στηνεπικοινωνία που σχετίζονται µε την τελευταία. Σε περιπτώσεις λοιπόν που από αλγοριθµικήςπλευράς απαιτείται παραλληλισµός λεπτού κόκκου, η πολυνηµατική επεξεργασία µπορεί να παρέχειπολύ καλύτερα αποτελέσµατα, καθώς κατά τη µονολιθική προσέγγιση µε ανταλλαγή µηνυµάτωντο κόστος της επικοινωνίας γίνεται εµϕανές στη συνολική επίδοση. Η χρήση πολυνη-µατικής επεξεργασίας στο εσωτερικό της διεργασίας µας επιτρέπει να επιτύχουµε τον επιθυµητόλεπτό κόκκο παραλληλισµού, αµβλύνοντας έτσι τα µειονεκτήµατα της αναπόϕευκτης χρήσηςανταλλαγής µηνυµάτων στις περιπτώσεις αρχιτεκτονικών κατανεµηµένης µνήµης.4. Τα κατανεµηµένα περιβάλλοντα µνήµης µπορεί να επιτρέπουν την αποϕυγή της συµϕόρησηςπου παρατηρείται κατά την ταυτόχρονη προσπέλαση δεδοµένων σε ένα κοινό υποσύστηµα µοιραζόµενηςµνήµης, αλλά συνεπάγονται συχνά και την διατήρηση πολλαπλών αντιγράϕων τωνδεδοµένων εκείνων, που επιθυµούν να προσπελάσουν ταυτόχρονα περισσότερες διεργασίες. Τουβριδικό µοντέλο παραλληλοποίησης µπορεί να πετύχει έναν αποδοτικό συµβιβασµό µεταξύτης κατανοµής των δεδοµένων για την ταυτόχρονη αξιοποίηση πολλαπλών µονοπατιών εισόδου/εξόδουκαι της αποδοτικής αξιοποίησης των διαθέσιµων πόρων για την αντιµετώπιση αλγορίθµωνυψηλής χωρικής πολυπλοκότητας.5. Είναι προϕανές ότι η επίδοση που επιτυγχάνεται στο µοντέλο ανταλλαγής µηνυµάτων εξαρτάταιαπό τη συγκεκριµένη υλοποίηση της βιβλιοθήκης επικοινωνίας που χρησιµοποιείται. Σε ορισµένεςπεριπτώσεις ενδέχεται η χρησιµοποιούµενη βιβλιοθήκη ανταλλαγής µηνυµάτων να επιβάλλειπεριορισµούς π.χ. στο µέγιστο δυνατό πλήθος διεργασιών που µπορούν να εκκινήσουν, ή ακό-µα να υλοποιεί µη αποδοτικά την επικοινωνία στο εσωτερικό του κόµβου µοιραζόµενης µνήµης.Στις περιπτώσεις αυτές η χρήση του υβριδικού µοντέλου µπορεί να µας επιτρέψει να παρακάµψουµεαρκετούς τέτοιους περιορισµούς, π.χ. συµπληρώνοντας µε νήµατα τον επιθυµητό αριθ-µό µονάδων παράλληλης εκτέλεσης όταν ο τελευταίος υπερβαίνει το µέγιστο επιτρεπτό πλήθοςδιεργασιών, ή κάνοντας διάκριση µεταξύ τοπικής και αποµακρυσµένης επικοινωνίας, όπως στηνπαρούσα εργασία.6. Σε πολλές περιπτώσεις, το υϕιστάµενο δικτυακό πρωτόκολλο και το δίκτυο διασύνδεσης συνε-


5.1 Υβριδικό Μοντέλο 83πάγονται σηµαντική επιβάρυνση αρχικοποίησης για κάθε µήνυµα που αποστέλλεται. Η χρήσητου υβριδικού µοντέλου, όπως θα δούµε και στην ενότητα 5.3, επιτρέπει την αποστολή µικρότερουαριθµού µηνυµάτων, µειώνοντας έτσι το σχετικό κόστος αρχικοποίησης.Η παραλληλοποίηση των υπό εξέταση αλγοριθµικών περιγραϕών ϕωλιασµένων βρόχων µε χρήσητου υβριδικού µοντέλου απαιτεί κατάλληλο συγχρονισµό για τη διατήρηση των εξαρτήσεων δεδοµένωντου αλγορίθµου κατά την εκτέλεση του προγράµµατος. Ο απαιτούµενος συγχρονισµός διασϕαλίζεταιαπό την εϕαρµογή κατάλληλου σχήµατος χρονοδροµολόγησης των επαναλήψεων, της χρονοδροµολόγησηςυπερεπιπέδων.5.1.1 Χρονοδροµολόγηση ΥπερεπιπέδωνΗ χρονοδροµολόγηση σωλήνωσης που χρησιµοποιήσαµε στην περίπτωση του µοντέλου ανταλλαγήςµηνυµάτων δεν αντιµετωπίζει µε τον πλέον αποδοτικό τρόπο την παράλληλη εκτέλεση των υπό εξέτασηαλγορίθµων σε διεπίπεδες αρχιτεκτονικές µέσω του υβριδικού µοντέλου. Πράγµατι, το σχήµαχρονοδροµολόγησης που εϕαρµόσαµε στο κεϕάλαιο 4 θεωρεί ως ισότιµες τις µονάδες εκτέλεσης τουπαράλληλου προγράµµατος και κατ' επέκταση τους υπερκόµβους που εκτελούνται σε µια δεδοµένηχρονική στιγµή. Στο υβριδικό µοντέλο όµως κάνουµε διάκριση µεταξύ δύο διαϕορετικών µονάδωνεκτέλεσης, των διεργασιών και των νηµάτων, καθώς επίσης διαϕοροποιούµε το συγχρονισµό µέσω τηςµοιραζόµενης µνήµης από την επικοινωνία µέσω του δικτύου διασύνδεσης. Για το σκοπό αυτό, σε όλατα υβριδικά µοντέλα θα υιοθετήσουµε ένα πιο κατάλληλο σχήµα χρονοδροµολόγησης των υπερκόµβων,τη χρονοδροµολόγηση υπερεπιπέδων, που περιγράϕεται στις εργασίες [ASTK02, Αθα05] και στοπαρόν κεϕάλαιο το εξειδικεύουµε για την περίπτωση ορθογώνιων χώρων και υπερκόµβων.Η χρονοδροµολόγηση υπερεπιπέδων (hyperplane scheduling) οµαδοποιεί τους υπερκόµβους, πουέχουν ανατεθεί στα νήµατα µιας δεδοµένης διεργασίας, σε οµάδες (groups), που µπορούν να εκτελεστούνταυτόχρονα. Κάθε οµάδα αποτελείται από εκείνους τους υπερκόµβους, των οποίων η εκτέλεσηµπορεί να ανατεθεί σε ένα ισάριθµο πλήθος νηµάτων T , διατηρώντας όµως παράλληλα τις εξαρτήσειςδεδοµένων του αρχικού αλγορίθµου. Υπό µία έννοια, κάθε οµάδα µπορεί να θεωρηθεί ως µια διακριτήχρονική στιγµή της ακολουθίας εκτέλεσης µιας διεργασίας, που καθορίζει ποια νήµατα της εν λόγωδιεργασίας θα πρέπει να εκτελέσουν κάποιον υπερκόµβο τη δεδοµένη χρονική στιγµή και ποια όχι.Η χρονοδροµολόγηση υπερεπιπέδων θεωρεί τη γενική περίπτωση εξαρτήσεων προς όλες τις µοναδιαίεςκατευθύνσεις του χώρου, αϕού όλες οι άλλες εξαρτήσεις µπορούν να εκϕραστούν ως γραµµικόςσυνδυασµός των µοναδιαίων διανυσµάτων εξάρτησης. Θεωρούµε µόνο την ανάγκη επικοινωνίας µεταξύγειτονικών διεργασιών, όπως άλλωστε και ρεαλιστικά συµβαίνει στη συντριπτική πλειοψηϕία τωναλγορίθµων ϕωλιασµένων βρόχων, για την ανταλλαγή π.χ. συνοριακών τιµών ή επιϕανειών. Η χρονοδροµολόγησηυπερεπιπέδων επιδιώκει την ελαχιστοποίηση τόσο του συνολικού αριθµού των βηµάτων


84 Υβριδικό Παράλληλο Προγραµµατιστικό ΜοντέλοΑλγόριθµος 5.1: Χρονοδροµολόγηση υπερεπιπέδων∆εδοµένα: Αλγόριθµος ( 3¤:$©©¦ ), χώρος επαναλήψεων N ∏1 #pragma omp parallel2 begin3 <strong>for</strong> i ← 1 to N do4 tile i = p i T i + T i − 1 − t i ;5 end<strong>for</strong>6 <strong>for</strong>each group ∈ G ⃗p dotile N+1 = group − ∑ N7i=1 tile i;if 0 ≤ tile N+1 ≤ ⌈ ⌉Z8z − 1 <strong>the</strong>n3¤:$¦QP −→9 tileR ;endif10111213#pragma omp barrierend<strong>for</strong>eachendi=1X i Z, διεργασία ⃗p, νήµα ⃗tεκτέλεσης του υβριδικού προγράµµατος όσο και του απαιτούµενου συγχρονισµού µεταξύ των νηµάτων.j 2j 1f i r s t _ g r o u p = 2f i r s t _ g r o u p = 53 4 5 6 7 8rrp 2 = (0,1)p 4 = (1,1)2 3 4 5 6 7( P1 , P 2) = ( 2, 2) , P = 4( T1 , T 2) = ( 3, 2) , T = 61 2 3 4 5 6rrp 1 = (0 ,0 )p 3 = (1,0)0 1 2 3 4 5j 3f i r s t _ g r o u p = 0 f i r s t _ g r o u p = 3Σχήµα 5.1: Χρονοδροµολόγηση υπερεπιπέδων µε 4 διεργασίες σε τοπολογία 2 × 2 και 6 νήµατα ανάδιεργασία σε τοπολογία 3 × 2. Οι πλάγιες διακεκοµµένες γραµµές αντιστοιχούν στα διαϕορετικά υπερεπίπεδα,ενώ η µεταβλητή first group αντιστοιχεί στο υπερεπίπεδο εκκίνησης του πρώτου νήµατοςκάθε διεργασίας.Σχηµατικά, η χρονοδροµολόγηση υπερεπιπέδων µπορεί να επιτευχθεί βάσει του αλγορίθµου 5.1.Θεωρείται ότι έχει επιλεγεί τόσο µια τοπολογία διεργασιών ∏ Ni=1 P i όσο και µια τοπολογία νηµάτων


5.1 Υβριδικό Μοντέλο 85rp 4 = (0,3)rp 8=(1,3 )s r c _ o f f [ 0 ]p t i l e [ 0 ]rp 1 6 = (3,3)p t i l e [ 1 ]s r c _ o f f [ 1 ]j 2j 1rt 3 = (1,0)o f frt 4 = (1,1)j 3t t i l e [ 0 ]rt 1 = (0,0)rt 2 = (0,1)t t i l e [ 1 ]rp 1 4 = (3,1 )rp 1 3 = (3,0 )rp 1 = (0,0)Σχήµα 5.2: Απεικόνιση τρισδιάστατου αλγορίθµου σε 16 διεργασίες × 4 νήµατα ανά διεργασία κατά τηχρονοδροµολόγηση υπερεπιπέδων. Επιλέγεται τοπολογία 4 × 4 τόσο για τις διεργασίες όσο και για τανήµατα. Στο κάτω αριστερά µέρος ϕαίνεται σε λεπτοµέρεια η διεργασία ⃗p 1 , για να αναδειχθεί ο ανάστρο-ϕος τρόπος απεικόνισης της τοπολογίας των νηµάτων ⃗t 1 -⃗t 4 . Επιπλέον, ενδεικτικά παρατίθενται τέσσεριςπίνακες που είναι ιδιαίτερα χρήσιµοι για την αϕαιρετική υλοποίηση του παράλληλου υβριδικού προγράµ-µατος, ήτοι οι ptile (διαστάσεις υπερκόµβου διεργασίας), ttile (διαστάσεις υπερκόµβου νήµατος),off (αρχική θέση υπερκόµβου νήµατος) και src off (αρχικές θέσεις δεδοµένων επικοινωνίας γειτονικώνδιεργασιών).∏ Ni=1 T i. Κάθε υπερκόµβος ταυτοποιείται από ένα διάνυσµα −→ tile διάστασης N + 1, όπου οι N πρώτεςσυνιστώσες σχετίζονται τόσο µε την ιδιοκτήτρια διεργασία ⃗p όσο και µε το συγκεκριµένο νήµα ⃗t,ενώ η πιο εσωτερική απαριθµεί τις διακριτές χρονικές στιγµές. Το G ⃗p είναι το σύνολο όλων των χρονικώνστιγµών του διαστήµατος εκτέλεσης της διεργασίας ⃗p και καθορίζεται τόσο από την τοπολογία


86 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοαπεικόνισης των διεργασιών όσο και από αυτή των νηµάτων. Τυπικά, το σύνολο G ⃗p ορίζεται ως εξής:G ⃗p ={N∑group ∈ N| p i T i ≤ group ≤i=1N∑p i T i +i=1N∑{T i − 1} +i=1⌈ ⌉ }Z− 1zΣε κάθε χρονική στιγµή group της εκτέλεσης της διεργασίας ⃗p, κάθε νήµα ⃗t υπολογίζει έναν υποψήϕιοπρος εκτέλεση υπερκόµβο −→ tile και αποτιµά µια συνθήκη τύπου if για να καθορίσει εάν το −→ tile αντιστοιχείσε κάποιο έγκυρο υπερκόµβο που πρέπει να εκτελεστεί στην τρέχουσα χρονική στιγµή. Ουσιαστικά,κάθε υπερκόµβος ταυτοποιείται από µια τριάδα (⃗p,⃗t, tile N+1 ), στοιχείο που θα αξιοποιήσουµεστα υβριδικά προγράµµατα. Μια οδηγία F!C£©£M¡§£ διασϕαλίζει ότι όλα τα νήµατα συγχρονίζονται µετάτην εκτέλεση των έγκυρων υπερκόµβων, ώστε να µπορεί να εκκινήσει η επόµενη χρονική στιγµή.Στο σχήµα 5.1 απεικονίζεται σχηµατικά η χρονοδροµολόγηση υπερεπιπέδων για την περίπτωση 4διεργασιών, 6 νηµάτων ανά διεργασία και τρισδιάστατου αλγορίθµου. Ο αλγόριθµος απεικονίζεται στιςµονάδες εκτέλεσης (διεργασίες, νήµατα) κατά το επίπεδο j 1 j 2 , ενώ κάθε νήµα πραγµατοποιεί ακολουθιακήεκτέλεση κατά µήκος της διάστασης j 3 , κάθετα στο επίπεδο του χαρτιού. Κάθε διεργασία ταυτοποιείταιαπό ένα δισδιάστατο διάνυσµα ⃗p = (p 1 , p 2 ), που της αποδίδεται έµµεσα από τη βιβλιοθήκηανταλλαγής µηνυµάτων. Σε κάθε νήµα αναγράϕεται η τιµή group του υπερεπιπέδου εκείνου, στο οποίοτο νήµα θα προβεί στην εκτέλεση του πρώτου υπερκόµβου του. Η ¡¤£!¥§¦ ¨£$© παρέχει την τιµή τηςπαραµέτρου group για το πρώτο νήµα της διεργασίας και ουσιαστικά σηµατοδοτεί το υπερεπίπεδο στοοποίο εκκινεί η εκτέλεση των υπολογισµών της εν λόγω διεργασίας.Τέλος, στο σχήµα 5.2 απεικονίζεται η ανάθεση των υπερκόµβων στα διαθέσιµα νήµατα. Η αντιστοίχισηυπερκόµβων tile σε νήµατα ⃗t µέσω της εντολής ανάθεσηςtile i = p i T i + T i − 1 − t iτου αλγορίθµου 5.1 οδηγεί στην «ανάστροϕη» απεικόνιση της τοπολογίας των νηµάτων, που ϕαίνεταιστο σχήµα. Η επιλογή αυτή θα αιτιολογηθεί στην ενότητα 5.2.5.1.2 Πολυνηµατική ΥποστήριξηΜια θεµελιώδης παράµετρος για τη δυνατότητα υβριδικής παραλληλοποίησης είναι ο βαθµός υποστήριξηςτης πολυνηµατικής επεξεργασίας από τη χρησιµοποιούµενη βιβλιοθήκη ανταλλαγής µηνυµάτων.Οι βιβλιοθήκες ανταλλαγής µηνυµάτων κατά κανόνα δεν υποστηρίζουν πλήρως την πολυνηµατικήεπεξεργασία, είτε µη επιτρέποντας καν την ύπαρξη πολλαπλών νηµάτων εκτέλεσης είτε περιορίζοντας/απαγορεύονταςτην ταυτόχρονη κλήση ρουτινών ανταλλαγής µηνυµάτων από πολλαπλά νήµατα.Το γεγονός αυτό οϕείλεται στο ότι οι υλοποιήσεις των βιβλιοθηκών ανταλλαγής µηνυµάτων δεν πα-


5.1 Υβριδικό Μοντέλο 87ρέχουν ασϕάλεια νήµατος (thread-safety): ορισµένα τµήµατα του κώδικα της βιβλιοθήκης δεν µπορούννα κληθούν ταυτόχρονα από πολλαπλά νήµατα εκτέλεσης, κυρίως γιατί δεν έχει ληϕθεί µέριµνα ώστε ηπροσπέλαση µοιραζόµενων δοµών να γίνεται µέσω ατοµικών λειτουργιών. Για παράδειγµα, η προσπέλασητης ουράς µηνυµάτων από δύο νήµατα για την επεξεργασία αιτήσεων επικοινωνίας ενδέχεται ναοδηγήσει σε συνθήκες ανταγωνισµού και τελικά εσϕαλµένη λειτουργία. Η υλοποίηση πλήρους πολυνηµατικήςυποστήριξης συνεπάγεται εν γένει επιπτώσεις στην επίδοση ενός προγράµµατος, π.χ. λόγωτης αναπόϕευκτης χρήσης µηχανισµών κλειδώµατος (locking) και κρίσιµων περιοχών (critical sections)για τη διασϕάλιση της απαιτούµενης ατοµικότητας σε συγκεκριµένες λειτουργίες.Στη βιβλιογραϕία γίνεται αναϕορά κυρίως σε πέντε διακριτά επίπεδα πολυνηµατικής υποστήριξης:1. singleΗ βιβλιοθήκη ανταλλαγής µηνυµάτων δεν υποστηρίζει πολυνηµατική επεξεργασία. Είναι προ-ϕανές ότι σε τέτοια περίπτωση η υλοποίηση υβριδικών προγραµµατιστικών µοντέλων είναι αδύνατη.2. masteronlyΗ βιβλιοθήκη ανταλλαγής µηνυµάτων επιτρέπει πολυνηµατική επεξεργασία, αλλά περιορίζει τηδυνατότητα κλήσης ρουτινών ανταλλαγής µηνυµάτων µόνο εκτός της δυναµικής εµβέλειας τωνπαράλληλων περιοχών πολυνηµατικής επεξεργασίας. Η περίπτωση αυτή ουσιαστικά επιτρέπειτην εϕαρµογή µόνο του υβριδικού µοντέλου λεπτού κόκκου (όχι δηλαδή του εναλλακτικού µοντέλουχονδρού κόκκου).3. funneledΗ βιβλιοθήκη ανταλλαγής µηνυµάτων επιτρέπει πολυνηµατική επεξεργασία, αλλά µόνο το πρωτεύοννήµα µπορεί να καλέσει λειτουργίες ανταλλαγής µηνυµάτων. Ταυτόχρονα, τα υπόλοιπανήµατα µπορούν να εκτελούν άλλες λειτουργίες. Η περίπτωση αυτή αποτελεί τη συνηθέστερηδυνατότητα που παρέχεται από τις υπάρχουσες ελεύθερες βιβλιοθήκες ανταλλαγής µηνυµάτωνκαι επιτρέπει την υλοποίηση αµϕότερων των υβριδικών µοντέλων παραλληλοποίησης που περιγράϕηκανπαραπάνω.4. serializedΗ βιβλιοθήκη ανταλλαγής µηνυµάτων επιτρέπει πολυνηµατική επεξεργασία, και µάλιστα όλα τανήµατα µπορούν να καλούν λειτουργίες ανταλλαγής µηνυµάτων, στο βαθµό που διασϕαλίζεταιη σειριοποίηση του ϕαινοµένου αυτού. Με άλλα λόγια, δεν επιτρέπεται σε περισσότερα του ενόςνήµατος να καλούν την ίδια χρονική στιγµή ρουτίνες ανταλλαγής µηνυµάτων, αλλά δεν υπάρχει


88 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοπεριορισµός ως προς την ταυτότητα του νήµατος που µπορεί να αναλάβει το ρόλο αυτό σε κάθεχρονική στιγµή (δεν χρειάζεται π.χ. να πρόκειται για το πρωτεύον νήµα).5. multipleΗ βιβλιοθήκη ανταλλαγής µηνυµάτων παρέχει πλήρη πολυνηµατική υποστήριξη. Κάθε νήµαµπορεί να καλεί λειτουργίες ανταλλαγής µηνυµάτων, χωρίς κανένα απολύτως περιορισµό.Κάθε κατηγορία αποτελεί υπερσύνολο όλων των προηγουµένων. Στην παρούσα ϕάση, οι πιο δη-µοϕιλείς βιβλιοθήκες ανταλλαγής µηνυµάτων ανοιχτού κώδικα παρέχουν πολυνηµατική υποστήριξηµέχρι το funneled επίπεδο, ενώ µόνο λίγες εµπορικές κλειστού τύπου υλοποιήσεις επιτρέπουν πλήρηπολυνηµατική υποστήριξη (περίπτωση multiple). Συνέπεια του γεγονότος αυτού είναι πως οι περισσότερεςυβριδικές υλοποιήσεις, που έχουν µέχρι σήµερα προταθεί ή υλοποιηθεί, περιορίζονται στα τρίαπρώτα επίπεδα πολυνηµατικής υποστήριξης. Το δεύτερο επίπεδο πολυνηµατικής υποστήριξης (masteronly)εµϕανίζεται συχνά στη σχετική βιβλιογραϕία, καθώς η υβριδική παραλληλοποίηση επιτυγχάνεταισυνήθως µε επαυξητική παραλληλοποίηση των υπολογιστικά απαιτητικών τµηµάτων µε οµαδοποίησηκαι κατανοµή των υπολογισµών µεταξύ των νηµάτων. Η προσέγγιση αυτή χαρακτηρίζεται ωςυβριδικός παραλληλισµός λεπτού κόκκου και επιτυγχάνεται συνήθως µε άµεσο τρόπο περικλείονταςτους κατάλληλους βρόχους µε λειτουργίες κατανοµής εργασίας της πολυνηµατικής διεπαϕής. Από τηνάλλη µεριά, ο υβριδικός παραλληλισµός χονδρού κόκκου µε πολυνηµατική επεξεργασία SPMD τύπουαναϕέρεται σπανιότερα στη διεθνή βιβλιογραϕία, λόγω της προγραµµατιστικής πολυπλοκότητας πουσυνεπάγεται.5.1.3 Υβριδικό Μοντέλο Λεπτού ΚόκκουΤο υβριδικό προγραµµατιστικό µοντέλο λεπτού κόκκου (fine-grain ή masteronly) αποτελεί τη δηµοϕιλέστερηπροσέγγιση για υβριδική παραλληλοποίηση, παρότι όπως θα δούµε θέτει σηµαντικούς περιορισµούςστην επίτευξη υψηλής απόδοσης. Η δηµοϕιλία του υβριδικού µοντέλου λεπτού κόκκου οϕείλεταικυρίως στην προγραµµατιστική απλότητά του: στις περισσότερες περιπτώσεις µπορεί να προκύψειάµεσα από το µοντέλο ανταλλαγής µηνυµάτων µε περαιτέρω επαυξητικό παραλληλισµό (incrementalparallelization) των υπολογιστικά απαιτητικών τµηµάτων. Έτσι, δεν απαιτεί ιδιαίτερη τροποποίηση τηςδοµής ενός υπάρχοντος κώδικα ανταλλαγής µηνυµάτων και µπορεί να υλοποιηθεί σχετικά απλά, αρχικάµε ανάλυση της απόδοσης του κώδικα στα επιµέρους τµήµατα και ακολούθως µε πρόσθετη παραλληλοποίησητων περισσότερο «βαριών» τµηµάτων µε χρήση πολυνηµατικής επεξεργασίας. Θα πρέπειεπίσης να αναϕερθεί ότι συχνά η υβριδική παραλληλοποίηση λεπτού κόκκου συνιστά τη µόνη εϕικτήδυνατότητα υβριδικής παραλληλοποίησης σε περιπτώσεις που η βιβλιοθήκη ανταλλαγής µηνυµάτων


5.1 Υβριδικό Μοντέλο 89επιτρέπει την κλήση ρουτινών επικοινωνίας µόνο εκτός των περιοχών πολυνηµατικής επεξεργασίας(επίπεδο masteronly πολυνηµατικής υποστήριξης, βλ. ενότητα 5.1.2).Το τίµηµα για την προγραµµατιστική απλότητα του υβριδικού µοντέλου λεπτού κόκκου εντοπίζεταικυρίως στους σηµαντικούς περιορισµούς που επιβάλλει στην προσπάθεια επίτευξης υψηλής απόδοσης.Κατά κύριο λόγο, η αποδοτικότητα του µοντέλου αυτού είναι άρρηκτα συνυϕασµένη µε το ποσοστότου κώδικα, για το οποίο εϕαρµόζεται ο επαυξητικός πολυνηµατικός παραλληλισµός. Σύµϕωνα µε τονόµο του Amdahl, καθώς η ανταλλαγή µηνυµάτων στο µοντέλο αυτό περιορίζεται εκτός των περιοχώνπολυνηµατικής επεξεργασίας, κατά την ανταλλαγή µηνυµάτων όλα τα νήµατα πλην του πρωτεύοντοςπαραµένουν ανενεργά, κατασπαταλώντας µέρος της υπολογιστικής ισχύος του συστήµατος και επιτυγχάνονταςϕτωχή εξισορρόπηση ϕορτίου. Επιπροσθέτως, το µοντέλο λεπτού κόκκου εµϕανίζει τηνεπιβάρυνση της επαναρχικοποίησης των πολυνηµατικών δοµών, καθώς τα νήµατα αρχικοποιούνται καιτερµατίζονται κατά την επαναλαµβανόµενη είσοδο και έξοδο προς και από παράλληλες περιοχές πολυνηµατικήςεπεξεργασίας. Στα παραπάνω µειονεκτήµατα του υβριδικού µοντέλου λεπτού κόκκου θαπρέπει κανείς να προσθέσει πως ο επαυξητικός παραλληλισµός αποτελεί µια αρκετά περιοριστική προσέγγισηπαραλληλοποίησης και κρίνεται ανεπαρκής για αρκετούς πραγµατικούς αλγορίθµους, στουςοποίους είτε δεν υπάρχουν οι απαιτούµενοι επαναληπτικοί βρόχοι, είτε δεν µπορούν να συµπεριλη-ϕθούν άµεσα σε παράλληλες περιοχές πολυνηµατικής επεξεργασίας. Αποτελεί άλλωστε κοινό τόποπως η επιτυχία του προγραµµατιστικού µοντέλου ανταλλαγής µηνυµάτων µπορεί σε µεγάλο βαθµό νααποδοθεί στη γενικότητα του SPMD προγραµµατιστικού µοντέλου, το οποίο µπορεί να υποκατασταθείµόνο µερικώς από το υβριδικό µοντέλο λεπτού κόκκου.Η προτεινόµενη υβριδική παραλληλοποίηση λεπτού κόκκου για την περίπτωση επαναληπτικών αλγορίθµωνϕωλιασµένων βρόχων µπορεί να υλοποιηθεί βάσει του σχήµατος του αλγορίθµου 5.2. Η χρονοδροµολόγησηυπερεπιπέδων συνδυάζεται µε το µοντέλο ανταλλαγής µηνυµάτων για την περαιτέρωπολυνηµατική παραλληλοποίηση του υπολογιστικού τµήµατος του βρόχου µε την επαυξητική προσέγγιση.Όλη η απαιτούµενη επικοινωνία για την ανταλλαγή µηνυµάτων διεξάγεται εκτός της πολυνη-µατικής περιοχής (γραµµές 2-8 και 19-22) ενώ η πολυνηµατική παραλληλοποίηση του υπολογισµούυλοποιείται στις γραµµές 9-18. Συγκεκριµένα, στις γραµµές 2-8 οµαδοποιούνται και αποστέλλονταιτα δεδοµένα που υπολογίστηκαν κατά το προηγούµενο υπερεπίπεδο group − 1, ενώ πραγµατοποιείταιλήψη των δεδοµένων που θα χρειαστούµε κατά τους υπολογισµούς του επόµενου υπερεπιπέδουgroup + 1. Όλες οι λειτουργίες αποστολής και λήψης είναι ασύγχρονες, ώστε να επιτρέψουν την επικάλυψητης επικοινωνίας µε τους υπολογισµούς του τρέχοντος υπερεπιπέδου group, εϕόσον παρέχεταιη σχετική δυνατότητα από το υλικό. Σε γενικές γραµµές, η επικοινωνία ακολουθεί τη λογική του µοντέλουανταλλαγής µηνυµάτων, µε τη µόνη διαϕορά ότι αναϕέρεται σε υπερεπίπεδα που αϕορούν εν γένειT υπερκόµβους ισάριθµων νηµάτων, σε αντιδιαστολή µε την επικοινωνία ανά υπερκόµβο διεργασίας


LLL90 Υβριδικό Παράλληλο Προγραµµατιστικό ΜοντέλοΑλγόριθµος 5.2: Υβριδικό προγραµµατιστικό µοντέλο λεπτού κόκκου1234567891011121314∆εδοµένα: Αλγόριθµος ( 3¤:$©©¦ ), χώρος επαναλήψεων N ∏<strong>for</strong>each group ∈ G ⃗p do<strong>for</strong>each −→ dir ∈ S ⃗p doZ[¤\ 4$C§U'P@VXW§Y2¥N6P#V(W0Y Z[;\42end<strong>for</strong>each<strong>for</strong>each −→ dir ∈ R ⃗p do42 2¤£§O'PX]_^T`(a Z[;\[ −→ dir],group 1,⃗pR − ;[ −→ dir], ⃗p + −→ ¥0¦'P[ −→ dir], ¥§£¢GP ⃗p − −→end<strong>for</strong>each#pragma omp parallelbegin<strong>for</strong> i ← 1 to N dotile i = p i T i + T i − 1 − t i ;end<strong>for</strong>tile N+1 = group − ∑ Ni=1 tile i;if 0 ≤ tile N+1 ≤ ⌈ ⌉Zz − 1 <strong>the</strong>ntileR ;153¤:$¦QP −→1617 endif18 end19202122235$C!¡¤¦$C©©;4M2<strong>for</strong>each −→ dir ∈ R ⃗p doend<strong>for</strong>eachend<strong>for</strong>eachIN!C§U6PX]_^T`(a Z[¤\[ −→ dir],group + 1,⃗pR ;dirR©R ;dirR©R ;i=1X i Z, διεργασία ⃗p, νήµα ⃗tπου είχαµε στο µονολιθικό µοντέλο.Παρατηρούµε τέλος ότι δεν απαιτείται ρητή λειτουργία barrier για το συγχρονισµό των νηµάτων,καθώς κάτι τέτοιο επιτυγχάνεται έµµεσα κατά την έξοδο από την παράλληλη πολυνηµατική περιοχή.Είναι επίσης αξιοσηµείωτο ότι µόνο το τµήµα του κώδικα µεταξύ των γραµµών 9-18 αξιοποιεί πλήρωςτην υϕιστάµενη επεξεργαστική υποδοµή, γεγονός που περιορίζει σηµαντικά την παράλληλη απόδοσητου προγράµµατος. Πράγµατι, µόνο στο συγκεκριµένο κοµµάτι του κώδικα έχουµε παράλληλη εκτέλεσησε όλους τους διαθέσιµους επεξεργαστές, καθώς αποτελεί κοινή πρακτική το γινόµενο του αριθµούτων διεργασιών P επί το πλήθος των νηµάτων T που εκκινεί κάθε διεργασία να ισούται µε το σύνολοτων επεξεργαστών για πλήρη εκµετάλλευση της υποδοµής. Έτσι, παρότι το υβριδικό µοντέλο µειώνειγενικά το συνολικό όγκο των δεδοµένων που πρέπει να ανταλλαγούν µεταξύ των διεργασιών λόγω της


5.1 Υβριδικό Μοντέλο 91µερικής δυνατότητας πρόσβασης σε κοινή µνήµη, γίνεται ϕανερό ότι κατά την υβριδική προσέγγισηλεπτού κόκκου υποπολλαπλασιάζονται κατά ένα παράγοντα T και οι µονάδες επικοινωνίας, δηλαδή οιδιαθέσιµες διεργασίες που µπορούν να καλέσουν ρουτίνες ανταλλαγής µηνυµάτων. Για το λόγο αυτό,ήδη σε θεωρητικό επίπεδο είναι αµϕίβολο κατά πόσο το υβριδικό µοντέλο λεπτού κόκκου θα πλεονεκτείτελικά του αντίστοιχου µοντέλου ανταλλαγής µηνυµάτων, καθώς η σχετική υπεροχή της µίας ήτης άλλης προσέγγισης ϕαίνεται να εξαρτάται από το κατά πόσο η µείωση των δεδοµένων επικοινωνίαςµπορεί να υπερκεράσει την αντίστοιχη µείωση του αριθµού των διεργασιών που υλοποιούν τηνεπικοινωνία αυτή. Το γεγονός αυτό έχει επισηµανθεί στη διεθνή βιβλιογραϕία [RW03] και αποτελεί τοβασικότερο µειονέκτηµα του υβριδικού µοντέλου λεπτού κόκκου για παράλληλες εϕαρµογές µε υψηλέςανάγκες επικοινωνίας.5.1.4 Υβριδικό Μοντέλο Χονδρού Κόκκου - FunneledΤο υβριδικό µοντέλο χονδρού κόκκου (coarse-grain) διαϕοροποιείται από το αντίστοιχο του λεπτούκόκκου κυρίως ως προς το ότι τα νήµατα αρχικοποιούνται µόνο µία ϕορά στην αρχή του προγράµµατοςκαι τα αναγνωριστικά τους (thread ids) χρησιµοποιούνται για τη διαϕοροποίηση της ροής εκτέλεσήςτους, όπως ακριβώς συµβαίνει και στο SPMD προγραµµατιστικό µοντέλο. Αναλυτικότερα, τα αναγνωριστικάτων νηµάτων βοηθούν στον καθορισµό τόσο του υπολογιστικού ϕορτίου τους όσο και τωνδεδοµένων επικοινωνίας τους. Η ανταλλαγή µηνυµάτων µεταξύ των διεργασιών διαϕορετικών πολυεπεξεργαστικώνκόµβων λαµβάνει χώρα εντός της δυναµικής εµβέλειας των περιοχών πολυνηµατικήςεπεξεργασίας, αλλά συνήθως διεκπεραιώνεται αποκλειστικά από το πρωτεύον νήµα, όπως υπαγορεύειη συνήθης περιορισµένη πολυνηµατική υποστήριξη επιπέδου funneled της βιβλιοθήκης ανταλλαγήςµηνυµάτων.Σε γενικές γραµµές, το υβριδικό µοντέλο χονδρού κόκκου αναπληρώνει τη σχετικά υψηλότερη προγραµµατιστικήπολυπλοκότητα µε τη δυνατότητα επίτευξης ανώτερης επίδοσης σε σχέση µε το υβριδικόµοντέλο λεπτού κόκκου. Το βασικό πλεονέκτηµα της προσέγγισης αυτής έγκειται στο ότι επιτρέπειτην πραγµατοποίηση κλήσεων ρουτινών ανταλλαγής µηνυµάτων εντός της εµβέλειας πολυνηµατικώνπεριοχών, αντίθετα µε το µοντέλο λεπτού κόκκου. Έτσι, η υβριδική προσέγγιση χονδρού κόκκου παρέχειτη δυνατότητα επικάλυψης της πολυνηµατικής επεξεργασίας µε την επικοινωνία µέσω ανταλλαγήςµηνυµάτων. Επιπλέον, το µοντέλο χονδρού κόκκου επιτρέπει την αποϕυγή της πρόσθετης επιβάρυνσηςπου σχετίζεται µε την επαναλαµβανόµενη αρχικοποίηση και αναστολή των πολυνηµατικών δοµών,καθώς τα νήµατα αρχικοποιούνται µία µόνο ϕορά στην αρχή του προγράµµατος. Εξίσου σηµαντικήκρίνεται η δυνατότητα που παρέχει το µοντέλο χονδρού κόκκου για την υλοποίηση γενικότερων σχη-µάτων παραλληλίας, σε αντιδιαστολή µε το περιοριστικό µοντέλο λεπτού κόκκου.Στη διεθνή βιβλιογραϕία γίνεται διάκριση µεταξύ του funneled υβριδικού µοντέλου χονδρού κόκ-


92 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοκου, στο οποίο κλήσεις ανταλλαγής µηνυµάτων γίνονται µόνο από το πρωτεύον νήµα, και του multipleυβριδικού µοντέλου χονδρού κόκκου, όπου όλα τα νήµατα µπορούν να διεκπεραιώνουν επικοινωνίαµε µηνύµατα. Ουσιαστικά, οι δύο εναλλακτικές υβριδικές υλοποιήσεις χονδρού κόκκου αντιστοιχούνστα οµώνυµα επίπεδα πολυνηµατικής υποστήριξης που παρουσιάστηκαν στην ενότητα 5.1.2. Στην παρούσαενότητα θα προτείνουµε µια funneled προσέγγιση υβριδικής παραλληλοποίησης αλγορίθµωνϕωλιασµένων βρόχων, ενώ η multiple παραλλαγή θα αποτελέσει αντικείµενο της επόµενης ενότητας.Στην περίπτωση της συνήθους funneled προσέγγισης, η προϕανής υλοποίηση του υβριδικού µοντέλουχονδρού κόκκου αντιµετωπίζει πρόβληµα στην αποτελεσµατική εξισορρόπηση του ϕορτίου µεταξύτων νηµάτων. Πιο συγκεκριµένα, µια ισοκατανοµή του υπολογιστικού ϕορτίου µεταξύ των διαθέσιµωννηµάτων θα επιβάρυνε περισσότερο το πρωτεύον νήµα, το οποίο επιπλέον έχει και την αποκλειστικήαρµοδιότητα της περάτωσης της επικοινωνίας µέσω ανταλλαγής µηνυµάτων. Καθίσταται συνεπώς σα-ϕές πως προκειµένου να είναι αποτελεσµατικό το υβριδικό µοντέλο χονδρού κόκκου απαιτείται ειδικήµέριµνα κατά την εξισορρόπηση του ϕορτίου µεταξύ των νηµάτων, έτσι ώστε το πρωτεύον νήµα νααναλάβει αναλογικά µικρότερο ϕόρτο υπολογισµού σε σχέση µε τα υπόλοιπα νήµατα, κατά τρόπο πουνα εξισώνονται οι συνολικοί χρόνοι εκτέλεσης υπερκόµβου (υπολογισµός+επικοινωνία) για κάθε νήµα.Σχηµατικά, το funneled υβριδικό µοντέλο χονδρού κόκκου µπορεί να υλοποιηθεί για την περίπτωσηαλγοριθµικών περιγραϕών ϕωλιασµένων βρόχων όπως στον αλγόριθµο 5.3. Η επικοινωνία µεταξύδιεργασιών διαϕορετικών πολυεπεξεργαστικών κόµβων (γραµµές 10-18 και 25-30) διεξάγεται από τοπρωτεύον νήµα, ανά κατεύθυνση επικοινωνίας και ανά νήµα-ιδιοκτήτη των δεδοµένων επικοινωνίας.Συγκεκριµένα, στις γραµµές 10-18 το πρωτεύον νήµα αναλαµβάνει να οµαδοποιήσει τα συνοριακά δεδοµέναπου υπολογίστηκαν κατά το προηγούµενο υπερεπίπεδο από όλα τα νήµατα σε ένα µήνυµα ανάκατεύθυνση επικοινωνίας −→ dir ∈ S ⃗p της διεργασίας ⃗p, ενώ αντίστοιχα διαµορϕώνεται και η διαδικασίαλήψης. Αποστέλλοντας ένα µόνο µήνυµα V(W0Y Z[;\ [ ⃗ dir] σε κάθε γειτονική διεργασία ⃗p + −→ dir επιτυγχάνουµενα ελαχιστοποιήσουµε την αρχική καθυστέρηση του δικτύου διασύνδεσης, που γενικά αυξάνειµε το πλήθος των αποστελλόµενων µηνυµάτων. Τα τµήµατα κώδικα που αϕορούν σε ανταλλαγή µηνυ-µάτων περικλείονται από τη σχετική λειτουργία :MC¥§¦£ , ώστε να εκτελεστούν µόνο από το πρωτεύοννήµα. Η διασϕάλιση αυτού του σχήµατος επικοινωνίας επιϕέρει πρόσθετη επιβάρυνση, τόσο σε σχέσηµε το µοντέλο ανταλλαγής µηνυµάτων όσο και συγκριτικά µε το υβριδικό µοντέλο λεπτού κόκκου.Η έκϕραση F!C©QP ⃗p,⃗tR , που εµϕανίζεται στο υπολογιστικό τµήµα του αλγορίθµου, αναϕέρεται στηνυλοποίηση σχήµατος εξισορρόπησης ϕορτίου για το νήµα ⃗t της διεργασίας ⃗p και θα αναλυθεί εκτενέστεραστην ενότητα 5.2. Τέλος, παρατηρούµε ότι το υβριδικό µοντέλο χονδρού κόκκου απαιτεί ρητόσυγχρονισµό των νηµάτων µε τη βοήθεια λειτουργίας barrier, κάτι που όµως αναµένεται να επιϕέρειµικρή µόνο επιβάρυνση σε σχέση µε το όϕελος που αντλείται από την αποϕυγή της επαναλαµβανόµενηςαρχικοποίησης των πολυνηµατικών δοµών, όπως συµβαίνει στην περίπτωση του µοντέλου λεπτού


LLL5.1 Υβριδικό Μοντέλο 93Αλγόριθµος 5.3: Υβριδικό προγραµµατιστικό µοντέλο χονδρού κόκκου - funneled12345678910111213141516171819∆εδοµένα: Αλγόριθµος ( 3¤:$¦ ), χώρος επαναλήψεων N ∏#pragma omp parallelbegin<strong>for</strong> i ← 1 to N dotile i = p i T i + T i − 1 − t i ;end<strong>for</strong><strong>for</strong>each group ∈ G ⃗p dotile N+1 = group − ∑ Ni=1 tile i;#pragma omp masterbegin<strong>for</strong>each −→ dir ∈ S ⃗p do<strong>for</strong> th ← 1 to T do[ dir],group ⃗ −Z[¤\ 4C§U'P#V(W§Y; 1,⃗p,thRend<strong>for</strong>[ −→ dir], ⃗p + −→4M2 2¥N6P#V(W§Y Z[¤\end<strong>for</strong>each¥§¦'P<strong>for</strong>each −→ dir ∈ R ⃗p do[ −→ dir], ⃗p − −→4M2 2¤£$0O'PX]_^;`Xa Z[¤\end<strong>for</strong>eachend¥0£¢"Pif 0 ≤ tile N+1 ≤ ⌈ ⌉Zz − 1 <strong>the</strong>n; ⃗p,⃗tR©R20−→ 3¤:©¦QP F!C"P21tile,22232425262728293031323334endif#pragma omp masterbegin5!C!¡;¦$C 4M2;<strong>for</strong>each −→ dir ∈ R ⃗p do<strong>for</strong> th ← 1 to T doend<strong>for</strong>end<strong>for</strong>eachend#pragma omp barrierend<strong>for</strong>eachendI©N©!C0U'PX]_^T`(a Z[;\dirR©R ;dirR©R ;[ −→ dir],group + 1,⃗p,thR ;i=1X i Z, διεργασία ⃗p, νήµα ⃗tκόκκου.


94 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλο5.1.5 Υβριδικό Μοντέλο Χονδρού Κόκκου - MultipleΣτην περίπτωση που η χρησιµοποιούµενη βιβλιοθήκη ανταλλαγής µηνυµάτων παρέχει πλήρη πολυνη-µατική υποστήριξη, καθίσταται εϕικτή µια εναλλακτική υλοποίηση του υβριδικού µοντέλου χονδρούκόκκου. Έτσι, αν η βιβλιοθήκη ανταλλαγής µηνυµάτων επιτρέπει την κλήση ρουτινών επικοινωνίαςαπό όλα τα νήµατα, µπορούµε να υιοθετήσουµε µια προγραµµατιστικά απλούστερη προσέγγιση, στηνοποία κάθε νήµα αναλαµβάνει την πλήρωση των ιδίων αναγκών επικοινωνίας. Μια τέτοια παραλλαγήτου υβριδικού µοντέλου χονδρού κόκκου κατονοµάζεται συχνά ως multiple και χαρακτηρίζεταιεγγενώς από περισσότερο ισορροπηµένη κατανοµή του συνολικού ϕορτίου επικοινωνίας µεταξύ τωννηµάτων, σε αντιδιαστολή µε τη funneled παραλλαγή που επιβαρύνει σχετικά µόνο το πρωτεύον νήµα.Η υλοποίηση της επικοινωνίας µεταξύ των αποµακρυσµένων νηµάτων στο multiple µοντέλο είναιµη τετριµµένη διαδικασία. Πράγµατι, καθώς οι βιβλιοθήκες ανταλλαγής µηνυµάτων θεωρούν µόνο τιςδιεργασίες ως επικοινωνούσες οντότητες, η επικοινωνία σε επίπεδο νηµάτων δεν µπορεί να γίνει άµεσα,µε κλήση ρουτινών της βιβλιοθήκης. Για παράδειγµα, σύµϕωνα µε το πρότυπο MPI δεν υπάρχει άµεσοςτρόπος να απευθυνθεί ένα νήµα ⃗t i της διεργασίας ⃗p σε ένα νήµα ⃗t j της αποµακρυσµένης διεργασίας ⃗ p ′ .Ανταλλαγή µηνύµατος µπορεί να διεκπεραιωθεί µόνο µεταξύ των ⃗p και ⃗ p ′ και όχι σε ένα πιο λεπτοµερέςεπίπεδο µεταξύ νηµάτων. Για να παρακάµψουµε αυτήν τη δυσκολία, είναι δυνατό να χρησιµοποιήσουµετην ετικέτα (tag) του µηνύµατος MPI ώστε να ενσωµατώσουµε έµµεσα στο ϕάκελο του µηνύµατος τηναντιστοιχία µεταξύ τοπικού και αποµακρυσµένου νήµατος. Έτσι, ένα µήνυµα που αποστέλλεται από τονήµα ⃗t i µέσω κλήσης ρουτίνας αποστολής από την ιδιοκτήτρια διεργασία ⃗p θα αντιστοιχιστεί µε τηνκατάλληλη κλήση ρουτίνας λήψης στη διεργασία ⃗ p ′ .Ο αλγόριθµος 5.4 συνοψίζει τα κυριότερα σηµεία της multiple υβριδικής υλοποίησης χονδρού κόκκου.Ο αλγόριθµος είναι παρόµοιος µε τον 5.3 της funneled περίπτωσης, χωρίς όµως τις οδηγίες master,καθώς όλα τα νήµατα -και όχι µόνο το πρωτεύον- συνεισϕέρουν στην επικοινωνία µε αποµακρυσµένεςδιεργασίες. Τα σύνολα επικοινωνίας S ⃗p και R ⃗p έχουν αντικατασταθεί από τα S ⃗p, ⃗t και R ⃗p,⃗t, καθώς στηνεπικοινωνία πλέον µετέχουν ενεργά και τα νήµατα. Για παράδειγµα, το σύνολο S ⃗p, ⃗tαντιστοιχεί σε όλεςτις έγκυρες διευθύνσεις µετάδοσης δεδοµένων για το νήµα ⃗t της ιδιοκτήτριας διεργασίας ⃗p. Συγκεκρι-µένα, αν για µια κατεύθυνση επικοινωνίας −→ dir ισχύει −→ dir ∈ S ⃗p, ⃗t, τότε δεδοµένα που υπολογίζονται απότο νήµα ⃗t της µη συνοριακής διεργασίας ⃗p πρέπει να αποσταλούν στη διεργασία ⃗p + −→ dir. Οµοίως, αν−→−→dir ∈ R ⃗p, ⃗t, τότε η διεργασία ⃗p πρέπει να λάβει δεδοµένα από τη γειτονική της ⃗p − dir, λόγω εξαρτήσεωνπου σχετίζονται µε υπολογισµούς δεδοµένων του νήµατος ⃗t της ⃗p. Λόγω της απεικόνισης τηςτοπολογίας νηµάτων που επιλέγεται (βλ. σχήµα 5.2), το νήµα ⃗t = (t 1 , . . . , t N ) της διεργασίας ⃗p πρέπεινα στείλει δεδοµένα προς όλες τις κατευθύνσεις επικοινωνίας j ∈ S ⃗p , για τις οποίες ισχύειt j = 0


LL5.1 Υβριδικό Μοντέλο 95Αλγόριθµος 5.4: Υβριδικό προγραµµατιστικό µοντέλο χονδρού κόκκου - multiple1234567∆εδοµένα: Αλγόριθµος ( 3¤:$¦ ), χώρος επαναλήψεων N ∏#pragma omp parallelbegin<strong>for</strong> i ← 1 to N dotile i = p i T i + T i − 1 − t i ;end<strong>for</strong><strong>for</strong>each group ∈ G ⃗p dotile N+1 = group − ∑ Ni=1 tile i;<strong>for</strong>each −→ dir ∈ S ⃗p, ⃗t do[ −→ dir],group 1,⃗p,⃗tR − ;8Z[;\ 4$C0U'P@VXW§Y92¥§N6P#V(W0Y Z[¤\4M210[ −→ dir], ¥§¦6P ⃗p + −→11 end<strong>for</strong>each<strong>for</strong>each −→12 dir ∈ R ⃗p, ⃗t do2¤£$§O'PX]_^T`(a Z[;\4M2[ −→ dir], ⃗p − −→13 L14 end<strong>for</strong>eachif 0 ≤ tile ¥§£¢"P N+1 ≤ ⌈ ⌉Z15z − 1 <strong>the</strong>n3¤:©¦QP −→16 tileR ;17 endif4M2 5!C$¡¤¦$C©©18;<strong>for</strong>each −→19 dir ∈ R ⃗p, ⃗t doIN©$C§U6PX]_^;`Xa Z[¤\[ −→ 1,⃗p,⃗tR 20dir],group + ;21 end<strong>for</strong>each22 #pragma omp barrier23 end<strong>for</strong>each24 endi=1dirR , ¦$C¨'P ⃗tR©R ;dirR , ¦$C¨'P ⃗tR©R ;X i Z, διεργασία ⃗p, νήµα ⃗tκαι να λάβει δεδοµένα από όλες τις κατευθύνσεις j ∈ R ⃗p , για τις οποίες ισχύειt j = T j − 1Καθώς όλα τα νήµατα καλούν ρουτίνες ανταλλαγής µηνυµάτων βάσει των συνόλων S ⃗p, ⃗t και R ⃗p,⃗t , ηπαράµετρος ¦$C¨6P R αναπαριστά το ρόλο της ετικέτας του µηνύµατος για τη διάκριση ζευγών µηνυµάτων.Συγκεκριµένα, ας υποθέσουµε ότι κάθε διεργασία εκκινεί T νήµατα σε τοπολογία ∏ Ni=1 T i, οπότετο τυχόν νήµα έχει αναγνωριστικό της µορϕής (t 1 , . . . , t N ) µε 0 ≤ t i ≤ T i − 1, 1 ≤ i ≤ N. Βάσειτου σχήµατος απεικόνισης των νηµάτων που επιλέγουµε, το νήµα (t 1 , . . . , t j = 0, . . . , t N ) µιας µη συνοριακήςδιεργασίας πρέπει να αποστείλει δεδοµένα που απαιτούνται για υπολογισµούς του νήµατος


96 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλο( 2 , 0 )( 1 , 0 )( 0 , 0 )T a g = 0( 2 , 0 )( 1 , 0 )( 0 , 0 )( 2 , 1 )δ ι ε ρ γ α σ ί α 2( 1 , 1 )( 0 , 1 )T a g = 1( 2 , 1 )δ ι ε ρ γ α σ ί α 4( 1 , 1 )( 0 , 1 )j 2j 1T a g = 1 2 T a g = 6 T a g = 0T a g = 1 2 T a g = 6 T a g = 0( 2 , 0 ) ( 1 , 0 ) ( 0 , 0 )δ ι ε ρ γ α σ ί α 1( 2 , 1 ) ( 1 , 1 ) ( 0 , 1 )j 3T a g = 0T a g = 1( 2 , 0 )( 2 , 1 )( 1 , 0 )δ ι ε ρ γ α σ ί α 3( 1 , 1 )( 0 , 0 )( 0 , 1 )δ ι ε ρ γ α σ ί ε ς ν ή µ α τ α α ν τ α λ λ α γ ή µ η ν υ µ ά τ ω νΣχήµα 5.3: Επικοινωνία µεταξύ διεργασιών στο multiple υβριδικό µοντέλο χονδρού κόκκου. Ο αλγόριθµοςαπεικονίζεται σε 4 διεργασίες σε τοπολογία 2 × 2, όπου κάθε διεργασία εκκινεί 6 νήµατα σε τοπολογία3 × 2. Η επικοινωνία διεξάγεται θεωρητικά µόνο µεταξύ των 4 διεργασιών, αλλά η χρήση διαϕορετικώνετικετών στα µηνύµατα επιτρέπει έµµεσα την υλοποίηση επικοινωνίας µεταξύ των νηµάτων.(t 1 , . . . , t j = T j − 1, . . . , t N ) της γειτονικής διεργασίας κατά τη διεύθυνση j. Η αντιστοιχία µεταξύαυτών των µηνυµάτων µπορεί να επιτευχθεί αν επιλέξουµε κατάλληλη ετικέτα που να µπορεί να υποδηλώσειτην ταυτότητα του νήµατος αποστολέα και να υποδείξει το αντίστοιχο νήµα παραλήπτη. Κάτιτέτοιο µπορεί να επιτευχθεί π.χ. αν αντιστοιχίσουµε το διάνυσµα (t 1 , . . . , 0, . . . , t N ) του αναγνωριστικούαποστολέα σε αριθµό T ag αριθµητικού συστήµατος βάσης T . Πράγµατι, αϕού 0 ≤ t i ≤ T i −1, θαυπάρχει αµϕιµονοσήµαντη αντιστοιχία µεταξύ του βαθµωτού αριθµού ετικέτας και του διανυσµατικούαναγνωριστικού του νήµατος. Έτσι, επιλέγουµεT ag =N∑t i T N−i (5.1)i=1Για παράδειγµα, στο σχήµα 5.3 απεικονίζεται η πολυνηµατική επικοινωνία στο multiple υβριδικόµοντέλο χονδρού κόκκου για 4 διεργασίες και 6 νήµατα ανά διεργασία. Το νήµα (1, 0) της διεργασίας1 θα καλέσει συνάρτηση αποστολής κατά τη διεύθυνση j 2 (αϕού η δεύτερη συνιστώσα του νήµατοςείναι µηδενική) και θα χρησιµοποιήσει ως ετικέτα την 1 × 6 1 + 0 × 6 0 = 6. Αντίστοιχα, το νήµα (1, 1)


LL5.2 Εξισορρόπηση Φορτίου µεταξύ των Νηµάτων 97της διεργασίας 2 θα καλέσει ρουτίνα λήψης κατά τη διεύθυνση j 2 (αϕού η δεύτερη συνιστώσα ισούταιµε T 2 − 1 = 1) µε την ίδια ετικέτα, επιτυγχάνοντας έτσι έµµεσα την αντιστοιχία των λειτουργιώναποστολής και λήψης. Πράγµατι, παρατηρούµε ότι µεταξύ των διεργασιών 1 και 2 ανταλλάσσονται συνολικάτρία µηνύµατα µε ισάριθµες διαϕορετικές ετικέτες (0, 6 και 12), επιτρέποντας έτσι τη λήψη τωνδεδοµένων από το κατάλληλο νήµα στη διεργασία παραλήπτη. Τέλος, θα πρέπει να σηµειωθεί πως ηπροτεινόµενη µέθοδος multiple επικοινωνίας είναι γενική και µπορεί να εϕαρµοστεί στην N-διάστατηπερίπτωση multiple υβριδικής παραλληλοποίησης χονδρού κόκκου. Παρότι για τον υπολογισµό µικρότερωντιµών ετικετών θα µπορούσε να χρησιµοποιηθεί περισσότερο αποδοτική µέθοδος κωδικοποίησης,επιλέξαµε τη συγκεκριµένη λόγω της απλότητάς της και της χαµηλής καθυστέρησης που επιϕέρειστο χρόνο εκτέλεσης.Το multiple υβριδικό µοντέλο χονδρού κόκκου εµϕανίζεται σπανιότερα στη διεθνή βιβλιογραϕίαλόγω της περιορισµένης ύπαρξης υλοποιήσεων MPI που παρέχουν πολυνηµατική υποστήριξη επιπέδου4M2 Jd©K©e©f>I$HJM2;4©He. Στην παρούσα διατριβή, κάθε αόριστη αναϕορά στο υβριδικό µοντέλο χονδρούκόκκου θα υπονοεί πάντοτε τη funneled εκδοχή, ενώ αντίθετα η multiple υβριδική υλοποίηση θαµνηµονεύεται µόνο ρητά.5.2 Εξισορρόπηση Φορτίου µεταξύ των ΝηµάτωνΚατά την επισκόπηση των υβριδικών µοντέλων παρατηρήσαµε πως το υβριδικό µοντέλο χονδρού κόκκουεπιτρέπει την επικάλυψη της απαραίτητης επικοινωνίας µε ωϕέλιµους υπολογισµούς, επιτυγχάνονταςθεωρητικά καλύτερη επίδοση από το αντίστοιχο µοντέλο λεπτού κόκκου. Όµως, καθώς οι υπάρχουσεςυλοποιήσεις βιβλιοθηκών ανταλλαγής µηνυµάτων επιτρέπουν κατά κανόνα µόνο στο πρωτεύοννήµα να πραγµατοποιεί κλήσεις επικοινωνίας µε αποµακρυσµένες διεργασίες, το υβριδικό µοντέλο χονδρούκόκκου χαρακτηρίζεται εγγενώς από αναποτελεσµατική εξισορρόπηση του ϕορτίου µεταξύ τωννηµάτων. Πράγµατι, αν εϕαρµόσουµε στη funneled προσέγγιση ισοκατανοµή του συνολικού υπολογιστικούϕορτίου της διεργασίας µεταξύ των διαθέσιµων νηµάτων αυτής, το πρωτεύον νήµα θα επιβαρυνθείαναπόϕευκτα περισσότερο από τα υπόλοιπα νήµατα, αϕού πέραν του υπολογισµού θα πρέπεινα διεκπεραιώσει και τις ανάγκες επικοινωνίας για ανταλλαγή µηνυµάτων µε άλλες διεργασίες. Ακό-µα κι αν διασϕαλίζεται πλήρης πολυνηµατική υποστήριξη από τη µεριά της βιβλιοθήκης ανταλλαγήςµηνυµάτων (multiple εκδοχή), η ελεύθερη κλήση ρουτινών επικοινωνίας σε πολυνηµατικό περιβάλλοναπαιτεί τη χρήση κλειδωµάτων και κρίσιµων περιοχών στην υλοποίηση της βιβλιοθήκης ανταλλαγήςµηνυµάτων, που επιβαρύνουν και περιορίζουν την απόδοση του προγράµµατος. Κατά συνέπεια, η επίδοσητου υβριδικού προγραµµατιστικού µοντέλου χονδρού κόκκου συναρτάται άµεσα µε την υλοποίησηαποδοτικού σχήµατος εξισορρόπησης ϕορτίου µεταξύ των νηµάτων, που να ανταπεξέρχεται στους


98 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοπεριορισµούς που θέτει η βιβλιοθήκη ανταλλαγής µηνυµάτων, αποϕεύγοντας παράλληλα και τις επιβαρύνσειςπου συνεπάγεται η απαίτηση πλήρους πολυνηµατικής υποστήριξης. Σε αντίθετη περίπτωση,αν δηλαδή ανατεθούν αδιακρίτως ισοµερή τµήµατα υπολογισµού σε όλα τα νήµατα, το πρωτεύον νήµαθα αναλάβει τελικά αναπόϕευκτα µεγαλύτερο συνολικό ϕορτίο εκτέλεσης, επιδρώντας έτσι δυσµενώςστο συνολικό χρόνο εκτέλεσης του προγράµµατος.Η χρονοδροµολόγηση υπερεπιπέδων καθιστά εϕικτό ένα πολύ πιο αποδοτικό σχήµα εξισορρόπησηςϕορτίου µεταξύ των νηµάτων: εϕόσον σε κάθε υπερεπίπεδο οι υπολογισµοί που πραγµατοποιούνταιείναι ανεξάρτητοι της επικοινωνίας που λαµβάνει χώρα, καθώς η τελευταία αϕορά λήψη δεδοµένωνγια το επόµενο υπερεπίπεδο και αποστολή δεδοµένων που υπολογίστηκαν κατά το προηγούµενουπερεπίπεδο, υπάρχει δυνατότητα κατάλληλης αναδιανοµής των υπολογισµών αυτών µεταξύ των νη-µάτων. Έτσι, το πρωτεύον νήµα θα µπορούσε να αναλάβει ένα σχετικά µικρότερο υπολογιστικό ϕορτίοσυγκριτικά µε τα υπόλοιπα νήµατα, αποσκοπώντας τελικά σε µια οµοιόµορϕη κατανοµή του συνολικούϕορτίου της παράλληλης εκτέλεσης (υπολογισµός+επικοινωνία) µεταξύ όλων των διαθέσιµωννηµάτων.Στο πλαίσιο της παρούσας εργασίας υλοποιήσαµε σχήµατα τόσο στατικής όσο και δυναµικής εξισορρόπησηςϕορτίου. Σύµϕωνα µε το πρώτο, η εξισορρόπηση ϕορτίου εϕαρµόζεται κατά το χρόνο µεταγλώττισης(compile time) βάσει θεωρητικής εκτίµησης της συµπεριϕοράς του συστήµατος και ιδιαίτερατου σχετικού κόστους υπολογισµού και επικοινωνίας. Για το σκοπό αυτό περιοριστήκαµε στη µελέτητης επίδρασης µόνο θεµελιωδών συστηµικών χαρακτηριστικών, όπως ο µέσος χρόνος εκτέλεσηςανά επανάληψη, η αρχική καθυστέρηση και ο ρυθµός παροχής δεδοµένων του δικτύου διασύνδεσης,ώστε να διατηρήσουµε την προτεινόµενη µεθοδολογία κατά το δυνατόν απλή και εϕαρµόσιµη. Εναλλακτικά,η δυναµική εξισορρόπηση ϕορτίου υιοθετεί µια περισσότερο παρεµβατική προσέγγιση, κατάτην οποία τα σχετικά κόστη υπολογισµού και επικοινωνίας του αλγορίθµου δειγµατοληπτούνται κατάτο χρόνο εκτέλεσης (run-time), και δεν είναι αναγκαίο να γίνουν a priori στατικές παραδοχές ήεκτιµήσεις.Στις ακόλουθες ενότητες θα αναϕερθούµε αναλυτικά στα συνολικά τρία προτεινόµενα σχήµαταεξισορρόπησης ϕορτίου των νηµάτων, ήτοι δύο σχήµατα στατικής εξισορρόπησης (σταθερό και µεταβλητό),καθώς και ένα σχήµα δυναµικής εξισορρόπησης ϕορτίου.5.2.1 Στατική Εξισορρόπηση ΦορτίουΣτο πλαίσιο της παρούσας έρευνας υλοποιήθηκαν δύο σχήµατα στατικής εξισορρόπησης ϕορτίου µεταξύτων νηµάτων για το υβριδικό µοντέλο χονδρού κόκκου. Το πρώτο απαιτεί τον υπολογισµό ενόςσταθερού συντελεστή, που εϕαρµόζεται από κοινού σε όλες τις διεργασίες. Ο συντελεστής αυτός καθορίζειτο ποσοστό επί του ισοκατανεµηµένου υπολογιστικού ϕορτίου, που θα πρέπει να αναλάβει το


5.2 Εξισορρόπηση Φορτίου µεταξύ των Νηµάτων 99πρωτεύον νήµα, ενώ το λοιπό υπολογιστικό ϕορτίο διαµοιράζεται οµοιόµορϕα στα υπόλοιπα νήµατα.Για παράδειγµα, συντελεστής εξισορρόπησης 100% συνεπάγεται ισοκατανοµή του υπολογιστικούϕορτίου σε όλα τα διαθέσιµα νήµατα, ενώ ένας συντελεστής 50% υποδηλώνει ότι το πρωτεύον νήµαθα πρέπει να αναλάβει το µισό υπολογιστικό ϕορτίο σε σχέση µε εκείνο που θα του αναλογούσε σεπερίπτωση οµοιόµορϕης κατανοµής των υπολογισµών. Θα αναϕερόµαστε στο σχήµα αυτό ως σταθερήεξισορρόπηση ϕορτίου. Για τον υπολογισµό ενός κατάλληλου συντελεστή εξισορρόπησης ϕορτίου θαθεωρήσουµε µια µη συνοριακή διεργασία, που πρέπει να επικοινωνήσει προς όλες τις διαστάσεις τουN-διάστατου χώρου των διεργασιών, ώστε να αποστείλει δεδοµένα προς όλες τις γειτονικές της διεργασίες.Για µια τέτοια διεργασία καθορίζουµε το συντελεστή εξισορρόπησης ϕορτίου για το πρωτεύοννήµα, που επιτυγχάνει την εξίσωση των συνολικών χρόνων εκτέλεσης υπερκόµβου για όλα τα νήµατα.j 2j 1δ ι ε ρ γ α σ ί α 2 δ ι ε ρ γ α σ ί α 4δ ι ε ρ γ α σ ί α 1δ ι ε ρ γ α σ ί α 3ε φ α ρ µ ο γ ή σ τ α θ ε ρ ή ς ε ξ ι σ ο ρ ρ ό π η σ η ςφ ο ρ τ ί ο υ ν η µ ά τ ω νδ ι ε ρ γ α σ ί α 2 δ ι ε ρ γ α σ ί α 4δ ι ε ρ γ α σ ί α 3t r 4 t r 3 t r2 t r 1t r 4 t r 3 t r2 t r1j 3j 1Σχήµα 5.4: Σταθερή εξισορρόπηση ϕορτίου για 4 διεργασίες σε 2 × 2 τοπολογία και 4 νήµατα ανά διεργασίασε 4 × 1 τοπολογία. Το πρωτεύον νήµα ⃗t 1 αναλαµβάνει µικρότερο ϕορτίο από τα υπόλοιπα γιανα εξισωθούν οι συνολικοί χρόνοι υπολογισµού και επικοινωνίας όλων των νηµάτων. Παρατηρούµε ότι οίδιος συντελεστής εξισορρόπησης ϕορτίου εϕαρµόζεται σε όλες τις διεργασίες, παρότι λ.χ. η διεργασία 4δεν αποστέλλει δεδοµένα προς άλλη διεργασία.Η εϕαρµογή σταθερής εξισορρόπησης ϕορτίου απεικονίζεται στο σχήµα 5.4. Στο πάνω µέρος απεικονίζεταιτο απλό υβριδικό µοντέλο χονδρού κόκκου για την περίπτωση 4 διεργασιών και τρισδιά-


100 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοστατου αλγορίθµου, όπου κάθε διεργασία εκκινεί 4 νήµατα. Παρατηρούµε ότι σε κάθε διεργασία τοπρωτεύον νήµα ⃗t 1 παρουσιάζεται πιο επιβαρυµένο από τα υπόλοιπα 3 νήµατα, αϕού εκτός του υπολογιστικούτου ϕορτίου οϕείλει να αναλάβει και την επικοινωνία µε το οµότιµο νήµα κάθε γειτονικήςδιεργασίας. Κατά την εϕαρµογή σταθερής εξισορρόπησης ϕορτίου, σε όλες τις διεργασίες το εκάστοτεπρωτεύον νήµα αναλαµβάνει ένα σχετικά µικρότερο όγκο υπολογισµών, µε απώτερο στόχο την εξίσωσητων συνολικών χρόνων εκτέλεσης των νηµάτων. Ο λόγος για τον οποίο πραγµατοποιείται απεικόνισητου υπερκόµβου της διεργασίας στα διαθέσιµα νήµατα µε τη δοθείσα ακολουθία ⃗t 4 − ⃗t 1 έχει να κάνειµε ζητήµατα οµοιοµορϕίας προς τα υπόλοιπα σχήµατα εξισορρόπησης ϕορτίου (µεταβλητό, δυναµικό),και θα αναλυθεί στη συνέχεια.Το δεύτερο σχήµα εξισορρόπησης ϕορτίου χαρακτηρίζεται ως µεταβλητή εξισορρόπηση ϕορτίου.∆ιαϕοροποιώντας ελαϕρά τη συλλογιστική του σχήµατος σταθερής εξισορρόπησης ϕορτίου, παρατηρούµεότι οι συνοριακές διεργασίες επιβαρύνονται αναλογικά λιγότερο µε επικοινωνία µέσω ανταλλαγήςµηνυµάτων, κάτι που δεν λαµβάνεται υπόψη στο σταθερό σχήµα εξισορρόπησης. Για το σκοπό αυτό,το µεταβλητό σχήµα εξισορρόπησης ϕορτίου αγνοεί για κάθε διεργασία τις κατευθύνσεις επικοινωνίαςπου τέµνουν τα όρια του καθολικού χώρου επαναλήψεων του αλγορίθµου, καθώς αυτές ουσιαστικά δεναντιστοιχούν σε αποστολή µηνυµάτων και κατά συνέπεια δεν επιβαρύνουν την επικοινωνία της εν λόγωδιεργασίας. Έτσι, για κάθε διεργασία υπολογίζεται ένας διαϕορετικός συντελεστής εξισορρόπησηςϕορτίου των νηµάτων, αϕού το πρωτεύον νήµα πρέπει να ελαϕρύνεται υπολογιστικά λιγότερο ή περισσότερογια συνοριακές και µη συνοριακές διεργασίες, αντίστοιχα. Επιπλέον, το SPMD προγραµµατιστικόµοντέλο διευκολύνει την εξισορρόπηση του ϕορτίου των νηµάτων µε εϕαρµογή διαϕορετικούσυντελεστή για κάθε διεργασία, όπως απαιτεί το σχήµα µεταβλητής εξισορρόπησης.Στο σχήµα 5.5 απεικονίζεται η εϕαρµογή του σχήµατος µεταβλητής εξισορρόπησης ϕορτίου για8 διεργασίες και 2 νήµατα ανά διεργασία. Στην περίπτωση αυτή υπολογίζεται διαϕορετικός συντελεστήςεξισορρόπησης για συνοριακές και µη συνοριακές διεργασίες, αϕού βλέπουµε ότι σε όλες τις µησυνοριακές διεργασίες στο πρωτεύον νήµα ανατίθεται το 1/4 του συνολικού υπολογιστικού ϕορτίουτης διεργασίας (συντελεστής εξισορρόπησης 50%), ενώ στις συνοριακές επιλέγεται συντελεστής 67%,83% ή ακόµα και καθόλου εξισορρόπηση ϕορτίου (συντελεστής 100%). Παρατηρούµε ότι στην περίπτωσηπου επιλέξουµε ακολουθία νηµάτων ⃗t 1 − ⃗t 2 (άνω σχήµα) παραβιάζεται η χρονοδροµολόγησηυπερεπιπέδων, αϕού λ.χ. κατά το δεύτερο υπερεπίπεδο το πρωτεύον νήµα της διεργασίας 2 δεν διαθέτειόλα τα συνοριακά δεδοµένα που χρειάζεται για τους υπολογισµούς του, καθώς κάποια από αυτάθα υπολογιστούν στο ίδιο υπερεπίπεδο από το δευτερεύον νήµα της διεργασίας 1. Αντίθετα, κατά τηναντίστροϕη ακολουθία απεικόνισης νηµάτων ⃗t 2 −⃗t 1 , γίνεται σε κάποιες περιπτώσεις πρώιµη αποστολήδεδοµένων, όπως π.χ. αυτά που υπολογίζει το δευτερεύον νήµα της διεργασίας 1 κατά το πρώτο υπερεπίπεδοκαι αποστέλλονται κατά το δεύτερο υπερεπίπεδο, ενώ στην πραγµατικότητα απαιτούνται σε


5.2 Εξισορρόπηση Φορτίου µεταξύ των Νηµάτων 101πα ρα β ί α σ η χ ρονοδ ροµ ολ ό γ η σ η ς υ περεπι πέ δ ωνπρωτεύον νή µ α8 3 8 3 8 3 16 7% % % 00%j 250% 50% 50% %δ ευ τερεύον νή µ αδ ι εργ α σ ί α 2 δ ι εργ α σ ί α 4 δ ι εργ α σ ί α 6 δ ι εργ α σ ί α 8δ ι εργ α σ ί α 1 δ ι εργ α σ ί α 3 δ ι εργ α σ ί α 5 δ ι εργ α σ ί α 7j 3j 1α να δ ι ά τα ξ η τοπολ ογ ί α ς νη µ ά των8 3 8 3 8 3 16 7% % % 00%j 250% 50% 50% %δ ι εργ α σ ί α 2 δ ι εργ α σ ί α 4 δ ι εργ α σ ί α 6 δ ι εργ α σ ί α 8δ ι εργ α σ ί α 1 δ ι εργ α σ ί α 3 δ ι εργ α σ ί α 5 δ ι εργ α σ ί α 7j 3 j 1Σχήµα 5.5: Μεταβλητή εξισορρόπηση ϕορτίου για 8 διεργασίες σε 4×2 τοπολογία και 2 νήµατα ανά διεργασίασε 2 × 1 τοπολογία. Το πρωτεύον νήµα αναλαµβάνει µικρότερο ϕορτίο από το δευτερεύον, αλλάγενικά οι συντελεστές εξισορρόπησης ϕορτίου αυξάνουν σε συνοριακές διεργασίες που δεν αποστέλλονταιδεδοµένα προς µία ή περισσότερες διευθύνσεις (π.χ. στη διεργασία 8 δεν εϕαρµόζεται εξισορρόπηση ϕορτίουκαι οι υπολογισµοί ισοκατανέµονται µεταξύ των νηµάτων). Παρατηρούµε ότι η προσέγγιση του άνωσχήµατος παραβιάζει τη χρονοδροµολόγηση υπερεπιπέδων, καθώς π.χ. στο δεύτερο υπερεπίπεδο το πρωτεύοννήµα της διεργασίας 2 θα χρειαζόταν τιµές που θα υπολογίσει στο ίδιο υπερεπίπεδο το δευτερεύοννήµα της διεργασίας 1.υπολογισµούς του πρωτεύοντος νήµατος της διεργασίας 2 κατά το τρίτο υπερεπίπεδο. Η ακολουθίανηµάτων ⃗t 2 − ⃗t 1 διατηρεί την εγκυρότητα της χρονοδροµολόγησης υπερεπιπέδων, καθώς λόγω τουότι οι συντελεστές εξισορρόπησης µειώνονται για συνοριακές διεργασίες, ενδέχεται να αποστέλλονταιδεδοµένα είτε έγκαιρα είτε πρόωρα, αλλά σε καµία περίπτωση καθυστερηµένα.Συνοψίζοντας τα παραπάνω, σε όλες τις περιπτώσεις υβριδικού µοντέλου παραλληλοποίησης αλγορίθµουϕωλιασµένων βρόχων διάστασης N +1 που εϕαρµόζεται κάποιο σχήµα εξισορρόπησης ϕορτίου,


102 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοθεωρείται ότι τα T νήµατα αξιοποιούνται σε µια γραµµική N-διάστατη τοπολογία της µορϕής1 × . . . 1 × T × 1 × · · · × 1και εξισορρόπηση ϕορτίου εϕαρµόζεται κατά τη διάσταση της τοπολογίας που εµϕανίζεται η συνιστώσαT , και στην οποία στο εξής θα αναϕερόµαστε ως διάσταση εξισορρόπησης. Επιπλέον, κατά τηδιάσταση αυτή θεωρούµε την ακολουθία ⃗t T − ⃗t 1 των T νηµάτων, ώστε να µην παραβιάζεται η χρονοδροµολόγησηυπερεπιπέδων.Αµϕότερα τα προτεινόµενα σχήµατα εξισορρόπησης ϕορτίου µπορούν να βασιστούν στο ακόλουθολήµµα για τον υπολογισµό του µοναδικού συντελεστή εξισορρόπησης (περίπτωση σταθερής εξισορρόπησης)ή των διαϕορετικών συντελεστών (µεταβλητή εξισορρόπηση ϕορτίου):Λήµµα 5.1. Έστω X 1 ×· · ·×X N ×Z ο χώρος επαναλήψεων ενός επαναληπτικού αλγορίθµου διάστασηςN +1 µε εξαρτήσεις δεδοµένων τις [d 1 , . . . , 0] T , . . . , [0, . . . , d N+1 ] T . Έστω P το πλήθος των διεργασιώνπου χρησιµοποιούνται για την απεικόνιση του παράλληλου αλγορίθµου και T το αντίστοιχο πλήθος τωννηµάτων που διατίθενται ανά διεργασία, υπό το υβριδικό µοντέλο χονδρού κόκκου. Ο συνολικός χρόνοςεκτέλεσης του παράλληλου αλγορίθµου ελαχιστοποιείται αν στο πρωτεύον νήµα ανατεθεί ένα ποσοστόbalTτου συνολικού υπολογιστικού ϕορτίου της διεργασίας, όπουbal = 1 − T − 1 N∑( )di P(t Xz)i Xzt commcomp XP i=1i Pi∈S ⃗p(5.2)t comp (x) ο χρόνος υπολογισµού x επαναλήψεωνt comm (x) ο χρόνος µετάδοσης ενός µηνύµατος x στοιχείωνz το ύψος του υπερκόµβου για κάθε βήµα εκτέλεσης του παράλληλου αλγορίθµουS ⃗p οι έγκυρες κατευθύνσεις αποστολής δεδοµένων της διεργασίας ⃗pX ίσο µε N ∏X ii=1Απόδειξη. Χάριν απλότητας και χωρίς βλάβη της γενικότητας, υποθέτουµε ότι όλες οι διαιρέσεις οδηγούνσε ακέραιο πηλίκο, ώστε να µην περιπλέξουµε την ανάλυσή µας µε την εισαγωγή τελεστών ceilκαι floor. Έτσι, σε κάθε διεργασία ανατίθεται η εκτέλεση Z zοποίους αποτελείται από XzPτο πλήθος υπερκόµβων, καθένας από τουςτο πλήθος επαναλήψεις. Επιπλέον, καθώς το πρωτεύον νήµα αναλαµβάνειτην εκτέλεση ενός ποσοστού balTτου υπολογιστικού ϕορτίου της διεργασίας (ή ισοδύναµα, bal% τουεπί ισοκατανεµηµένου ϕορτίου), σε κάθε ένα από τα υπόλοιπα T −1 θα ανατεθεί η εκτέλεση ποσοστού


5.2 Εξισορρόπηση Φορτίου µεταξύ των Νηµάτων 103T −balT (T −1)του υπολογιστικού ϕορτίου της διεργασίας. Επειδή µόνο το πρωτεύον νήµα θα υλοποιήσει τηνεπικοινωνία µεταξύ των διεργασιών µέσω ανταλλαγής µηνυµάτων, θα πρέπει να λαµβάνει µέριµνα τόσογια τα δικά του συνοριακά δεδοµένα επικοινωνίας όσο και για τα δεδοµένα επικοινωνίας των υπολοίπωννηµάτων. Ο συνολικός χρόνος εκτέλεσης του αλγορίθµου µπορεί να προσεγγιστεί ως το γινόµενοτου συνολικού αριθµού υπολογιστικών βηµάτων επί το χρόνο εκτέλεσης T tile , που απαιτείται για τονυπολογισµό ενός υπερκόµβου σε κάθε βήµα. ΙσχύειT tile = max (T m tile , T o tile ) (5.3)όπουT m tile = t comp( balT)XzN∑( )di P i Xz+ t commPXi=1i Pi∈S ⃗p(5.4)ο χρόνος εκτέλεσης υπερκόµβου του πρωτεύοντος νήµατος καιT o tile = t comp( T − balT (T − 1))XzP(5.5)ο χρόνος εκτέλεσης υπερκόµβου ενός µη πρωτεύοντος νήµατος.Η ελαχιστοποίηση του συνολικού χρόνου εκτέλεσης του παράλληλου αλγορίθµου ισοδυναµεί πρακτικάµε την ελαχιστοποίηση του χρόνου εκτέλεσης υπερκόµβου, αϕού ο αριθµός των συνολικών βη-µάτων εξαρτάται κυρίως από το πλήθος των υπερκόµβων ανά διεργασία και δεν επηρεάζεται από τηνκατανοµή του ϕορτίου µεταξύ των νηµάτων. Ο χρόνος εκτέλεσης υπερκόµβου, όπως προκύπτει απότην (5.3), ελαχιστοποιείται γιαT m tile = T o tile (5.6)Πράγµατι, αν αυτό δεν συµβαίνει, αν δηλαδή Ttile m ≠ T tile o , µπορεί πάντα να επιτευχθεί µια πιο αποτελεσµατικήεξισορρόπηση ϕορτίου µε την ανάθεση επιπλέον υπολογιστικού ϕορτίου στα λιγότερο επι-ϕορτισµένα νήµατα. Υποθέτοντας κατά προσέγγιση ότι ο χρόνος υπολογισµού t comp είναι γραµµικήσυνάρτηση του πλήθους των επαναλήψεων, δηλαδή ότι ισχύει t comp (ax) = at comp (x), ο συνδυασµόςτων (5.4), (5.5) και (5.6) δίνει την (5.2).Στην πράξη, για να αξιοποιήσουµε τον υπολογιζόµενο συντελεστή εξισορρόπησης ϕορτίου µε χρήσητου λήµµατος 5.1 (πραγµατικός αριθµός) για τον καθορισµό των ακεραίων διαστάσεων των υπερκόµβωντων νηµάτων εργαζόµαστε ως εξής: έστω bal ο υπολογιζόµενος συντελεστής εξισορρόπησηςϕορτίου από την (5.2) και s 1 ×· · ·×s N ×z οι διαστάσεις του υπερκόµβου που αναλαµβάνει κάθε νήµα


104 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοκατά την οµοιόµορϕη διαµέριση του υπερκόµβου της διεργασίας, µε z το ελεύθερο ύψος υπερκόµβουπου καθορίζει εν τέλει τον κόκκο παραλληλισµού. Αν ∏ Ni=1 P i η τοπολογία των διεργασιών, ∏ Ni=1 T iη τοπολογία των νηµάτων και ∏ Ni=1 X iZ ο χώρος επαναλήψεων του αλγορίθµου διάστασης N + 1, θαισχύει κατά την ισοκατανοµή (χωρίς εξισορρόπηση ϕορτίου)s i =⌈XiP i T i⌉, 1 ≤ i ≤ N (5.7)Αν υποθέσουµε ότι bal dim είναι η διάσταση εξισορρόπησης, δηλαδή T bal dim = T και T i = 1 γιαi ≠ bal dim, τότε οι διαστάσεις του υπερκόµβου διαϕοροποιούνται για ένα µη πρωτεύον νήµα κατάτη σχέση⎧⎨s o i =⎩(int) 1T −1⌈ ⌉Xi(⌈P i T iXiP i⌉, i ≠ bal dim⌈ ⌉)XiP i, i = bal dim− balTόπου µε τον τελεστή (int) συµβολίζεται η πράξη της στρογγυλοποίησης ενός πραγµατικού αριθµούστον πλησιέστερο ακέραιο. Αντίστοιχα, για το πρωτεύον νήµα οι διαστάσεις του υπερκόµβου διαµορ-ϕώνονται σύµϕωνα µε τη σχέση⎧⎨s m i =⎩⌈ ⌉Xi⌈ ⌉P i T iXiP i(5.8), i ≠ bal dim− (T − 1)s o i , i = bal dim (5.9)Έτσι, το πρωτεύον νήµα θα αναλάβει την εκτέλεση υπερκόµβων διαστάσεων s m 1 × · · · × sm N× z, ενώκάθε ένα από τα υπόλοιπα νήµατα εκτελεί τους υπολογισµούς που περικλείονται από υπερκόµβους µεγέθουςs o 1 × · · · × so N × z. Ο προσδιορισµός των sm i και s o i µέσω των (5.9) και (5.8) επιτρέπει αϕενόςτην ισοκατανοµή του υπολογιστικού ϕορτίου για τα µη πρωτεύοντα νήµατα, και αϕετέρου την εξισορρόπησητου ϕορτίου του πρωτεύοντος νήµατος κοντά στον επιθυµητό συντελεστή bal.5.2.2 ∆υναµική Εξισορρόπηση ΦορτίουΕναλλακτικά της εϕαρµογής στατικού σχήµατος εξισορρόπησης του ϕορτίου βάσει θεωρητικής µοντελοποίησηςτης συµπεριϕοράς υλικού και λογισµικού και της εκτίµησης του σχετικού κόστους υπολογισµούκαι επικοινωνίας, είναι δυνατό να υπολογίζουµε τους συντελεστές εξισορρόπησης ϕορτίουδυναµικά κατά το χρόνο εκτέλεσης. Αρχικά, θα µπορούσαµε να µετράµε τους χρόνους υπολογισµούκαι επικοινωνίας των νηµάτων για ένα µικρό διάστηµα της παράλληλης εκτέλεσης του προγράµµατος.Στη συνέχεια, οι χρόνοι αυτοί µπορούν να αξιοποιηθούν για τη διόρθωση της τιµής των συντελεστώνεξισορρόπησης ϕορτίου και την εϕαρµογή ενός ενδεχοµένως πιο αποδοτικού σχήµατος εξισορρόπησηςϕορτίου.


5.2 Εξισορρόπηση Φορτίου µεταξύ των Νηµάτων 105Πιο συγκεκριµένα, έστω ότι εϕαρµόζουµε έναν αρχικό συντελεστή bal για την εξισορρόπηση τουϕορτίου µεταξύ T νηµάτων κάποιας διεργασίας. Η τιµή του αρχικού συντελεστή bal µπορεί να υπολογιστείµε χρήση κάποιου σχήµατος στατικής εξισορρόπησης ϕορτίου, όπως αυτά που παρουσιάστηκανστην ενότητα 5.2.1. Υποθέτοντας παράλληλη εκτέλεση µε χρήση P διεργασιών, ο στόχος µας είναιη δειγµατοληψία των µερικών χρόνων υπολογισµού και επικοινωνίας για τουλάχιστον P T υπερεπίπεδα,ώστε το κυµατοµέτωπο εκτέλεσης να ϕτάσει µέχρι την πιο αποµακρυσµένη διεργασία, καθώςεπιθυµούµε να καταγράψουµε τη συµπεριϕορά του προγράµµατος πρωτίστως όταν όλα τα στάδια τηςσωλήνωσης είναι πλήρη. Στο εξής, θα αναϕερόµαστε στην περίοδο κατά την οποία καταγράϕουµε τουςχρόνους υπολογισµού και επικοινωνίας του παράλληλου προγράµµατος µε τον όρο περίοδο δειγµατοληψίας.Βάσει των χρονικών µετρήσεων που λαµβάνονται κατά την περίοδο δειγµατοληψίας, µπορούµεαπό τον αρχικό συντελεστή εξισορρόπησης ϕορτίου bal να υπολογίσουµε έναν πιο κατάλληλο συντελεστήbal ′ µε χρήση του ακόλουθου λήµµατος:Λήµµα 5.2. Έστω συντελεστής bal για την εξισορρόπηση του ϕορτίου T νηµάτων και t m comp, t m comm οιµέσοι χρόνοι υπολογισµού και επικοινωνίας υπερκόµβου για το πρωτεύον νήµα, όπως καταγράϕονταικατά το χρόνο εκτέλεσης. Ένας περισσότερο αποδοτικός συντελεστής εξισορρόπησης ϕορτίου bal ′ µπορείνα υπολογιστεί µε χρήση της ακόλουθης σχέσης:bal ′ = 1 − bal T − 1 t m commT t m comp(5.10)Απόδειξη. Υποθέτουµε ότι η αρχική εξισορρόπηση ϕορτίου που επιτυγχάνεται µε την εϕαρµογή του συντελεστήbal είναι µη βέλτιστη, δηλαδή για τους χρόνους εκτέλεσης υπερκόµβου πρωτεύοντος (T m tile )και µη πρωτεύοντος νήµατος (T o tile ) ισχύει T m tile ≠ T o tile ⇒t m comp + t m comm ≠ t o compΗ αστοχία της στατικής εξισορρόπησης ϕορτίου πιθανότατα οϕείλεται σε ανακριβή θεωρητική µοντελοποίησητης υϕιστάµενης αρχιτεκτονικής, καθώς και στις διάϕορες προσεγγίσεις που θεωρήσαµε στηνεκτίµηση της προγραµµατιστικής επίδοσης (π.χ. γραµµικό κόστος υπολογισµού, που αγνοεί τα ϕαινό-µενα τοπικότητας αναϕοράς στην ιεραρχία µνήµης). Ο στόχος µας είναι ο προσδιορισµός ενός νέουσυντελεστή bal ′ , που ιδεατά θα εξισώνει το µέσο χρόνο εκτέλεσης υπερκόµβου για όλα τα νήµατα,δηλαδήt ′ mcomp + t ′ mcomm = t ′ ocomp (5.11)Υποθέτουµε ότι ο χρόνος που απαιτείται για τον υπολογισµό ενός υπερκόµβου είναι ανάλογος προς το


106 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοπλήθος των επαναλήψεων που περικλείονται από το συγκεκριµένο υπερκόµβο. Τυπικά δηλαδή θεωρούµεt m comp ∼ balTt o comp ∼ T − balT (T − 1)∏ Ni=1 X izP∏ Ni=1 X izP(5.12)(5.13)Λόγω της (5.12) ισχύειενώ η (5.13) συνεπάγεταιt ′ mcomp = bal′bal tm comp (5.14)t ′ ocomp = T − bal′T − bal to comp (5.15)Επιπλέον, δεχόµαστε ότι ο χρόνος επικοινωνίας δεν διαϕοροποιείται κατά την αναδιανοµή του υπολογιστικούϕορτίου µεταξύ των νηµάτων, δηλαδή δεχόµαστε ότιΣυνδυάζοντας τις (5.14), (5.15) και (5.16), από την (5.11) προκύπτειt ′ mcomm ≃ t m comm (5.16)bal ′bal tm comp + t m comm = T − bal′T − bal to comp ⇒bal ′ = balT to comp − bal(T − bal)t m comm(T − bal)t m comp + balt o comp(5.17)Τέλος, προσεγγίζοντας το χρόνο υπολογισµού ενός µη πρωτεύοντος νήµατος t o comp µελόγω των (5.12) και (5.13) µπορούµε εύκολα να συµπεράνουµε την (5.10).T −balbal(T −1) tm comp,Η βασική ιδέα της δυναµικής εξισορρόπησης ϕορτίου απεικονίζεται στο σχήµα 5.6, όπου η προτεινόµενηµεθοδολογία εϕαρµόζεται κατά την υβριδική παραλληλοποίηση χονδρού κόκκου τρισδιάστατουαλγορίθµου ϕωλιασµένων βρόχων. Ο αλγόριθµος απεικονίζεται στις διαθέσιµες διεργασίες κατάτο επίπεδο j 1 j 2 , και κάθε διεργασία εκκινεί νήµατα που αναλαµβάνουν ακολουθιακή εκτέλεση κατάµήκος της διάστασης j 3 . Το παράλληλο πρόγραµµα διαιρείται σε δύο περιόδους, την κατά το δυνατόνµικρή περίοδο δειγµατοληψίας και την κυρίως περίοδο εκτέλεσης. Κατά την περίοδο δειγµατοληψίαςµετρώνται οι χρόνοι υπολογισµού και επικοινωνίας του πρωτεύοντος νήµατος, βάσει των οποίωνυπολογίζεται ένας νέος υποψήϕιος συντελεστής εξισορρόπησης ϕορτίου µε χρήση της (5.10). Οι συντελεστέςαυτοί ανταλλάσσονται µεταξύ των γειτονικών διεργασιών, και εϕόσον διασϕαλιστεί ότι οι


5.2 Εξισορρόπηση Φορτίου µεταξύ των Νηµάτων 107νήµα 1 (πρωτεύον)νήµα 2νήµα 3j 3δ ι εργ ασ ί α 1 δ ι εργ ασ ί α 2 δ ι εργ ασ ί α 3εφ αρµογ ή νέ ωνσ υ ντελ εσ τώ νεξ ι σ ορρό πη σ η ς φ ορτί ουανταλ λ αγ ή νέ ων σ υ ντελ εσ τώ νεξ ι σ ορρό πη σ η ς φ ορτί ου µεταξ ύγ ει τονι κ ώ ν δ ι εργ ασ ι ώ νj 2 j 1περί οδ ος δ ει γ µατολ η ψ ί ας χ ρό νωνυ πολ ογ ι σ µού/επι κ οι νωνί αςπρωτεύοντος νήµατοςΣχήµα 5.6: ∆υναµική εξισορρόπηση ϕορτίου. Κατά την περίοδο δειγµατοληψίας µετρώνται οι χρόνοιυπολογισµού και επικοινωνίας του πρωτεύοντος νήµατος, ώστε να επαναπροσδιοριστούν οι συντελεστέςεξισορρόπησης ϕορτίου.νέοι συντελεστές δεν παραβιάζουν τη χρονοδροµολόγηση υπερεπιπέδων αποϕασίζεται η ταυτόχρονηεϕαρµογή τους σε όλες τις διεργασίες το ταχύτερο δυνατό. Η εγκυρότητα των νέων συντελεστών εξισορρόπησηςϕορτίου έγκειται στο κατά πόσο οδηγούν απλώς στην πρόωρη ανταλλαγή συνοριακών


108 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοδεδοµένων, χωρίς όµως σε καµία περίπτωση να καθυστερούν την αποστολή δεδοµένων επικοινωνίαςπου κρίνονται απαραίτητα στη ροή της χρονοδροµολόγησης υπερεπιπέδων.Η δυναµική εξισορρόπηση ϕορτίου συνδυάζει τη θεωρητική µοντελοποίηση της απόδοσης του προγράµµατοςµε τη συνεκτίµηση της πραγµατικής επίδοσης του τελευταίου κατά το χρόνο εκτέλεσης. Στηχειρότερη περίπτωση µπορεί να αποϕασιστεί ότι η προτεινόµενη διόρθωση των συντελεστών εξισορρόπησηςδεν είναι συµβατή µε τη χρονοδροµολόγηση υπερεπιπέδων, οπότε απλά διατηρείται η αρχικήστατική εξισορρόπηση ϕορτίου. Φυσικά, είναι προϕανές ότι η δυναµική εξισορρόπηση ϕορτίου θα επι-ϕέρει πρόσθετη επιβάρυνση στο πρόγραµµα, τόσο λόγω των µετρητών χρόνου που εισάγει όσο καιεξαιτίας της επιπλέον επικοινωνίας που επιβάλλει για ανταλλαγή των νέων συντελεστών. Επίσης, κατάτην απόδειξη του λήµµατος 5.2 θεωρήσαµε κάποιες περαιτέρω παραδοχές, παρότι αυτές βασίζονται σεδειγµατοληψία της συµπεριϕοράς του συστήµατος µε τον εκάστοτε εξεταζόµενο αλγόριθµο και πραγ-µατικό χώρο επαναλήψεων. Έτσι, θεωρήσαµε ότι το κόστος υπολογισµού είναι ανάλογο του πλήθουςτων επαναλήψεων, υπόθεση που εν µέρει αγνοεί ϕαινόµενα τοπικότητας αναϕοράς, αν και σε µικρότεροβαθµό απ' ότι στον αντίστοιχο υπολογισµό της στατικής προσέγγισης. Τέλος, η παραδοχή περίσταθερού χρόνου επικοινωνίας παραβλέπει µερικώς τη δυνατότητα επικάλυψης της επικοινωνίας µετον υπολογισµό, θεωρώντας τα δύο τελευταία κατά προσέγγιση ασυσχέτιστες έννοιες.5.3 Σύγκριση Μοντέλου Ανταλλαγής Μηνυµάτων µε Υβριδικό ΜοντέλοΈστω T mp ο συνολικός χρόνος εκτέλεσης του παράλληλου µονολιθικού προγράµµατος ανταλλαγήςµηνυµάτων και T hyb ο αντίστοιχος χρόνος του ισοδύναµου υβριδικού. Στην ενότητα αυτή θα συγκρίνουµεσε θεωρητικό επίπεδο τους δύο αυτούς χρόνους, αποσκοπώντας ουσιαστικά σε µια θεωρητικήσύγκριση των δύο προγραµµατιστικών µοντέλων. Θα πρέπει πάντως να σηµειωθεί ότι η ανάλυση τηςσυγκεκριµένης ενότητας θα είναι σχετικά απλουστευµένη και µέχρι κάποιου βαθµού εξιδανικευµένη,υπό την έννοια ότι θα µας απασχολήσει µόνο η µοντελοποίηση του υπολογισµού και της επικοινωνίαςτων παράλληλων προγραµµάτων και όχι π.χ. λοιπές επιβαρύνσεις της βιβλιοθήκης ανταλλαγής µηνυ-µάτων, της διεπαϕής πολυνηµατικής επεξεργασίας, του εϕαρµοζόµενου σχήµατος χρονοδροµολόγησηςκ.ο.κ.Έστω ένας αλγόριθµος ϕωλιασµένων βρόχων διάστασης N + 1, µε χώρο επαναλήψεων X 1 × · · · ×X N × Z και εξαρτήσεις δεδοµένων [d 1 , . . . , 0] T , . . . , [0, . . . , d N+1 ] T , τον οποίο θέλουµε να παραλληλοποιήσουµετόσο µε χρήση του µονολιθικού µοντέλου ανταλλαγής µηνυµάτων σε P mp διεργασίες όσοκαι µέσω του υβριδικού προγραµµατιστικού µοντέλου µε P hyb διεργασίες και T νήµατα ανά διεργασία.Έστω επίσης ότι έχουν επιλεγεί οι τοπολογίες απεικόνισης για τα νήµατα και τις διεργασίες, δηλαδή οι


5.3 Σύγκριση Μοντέλου Ανταλλαγής Μηνυµάτων µε Υβριδικό Μοντέλο 109όροι P mp , P hyb και T έχουν παραγοντοποιηθεί ως εξής:P mp =P hyb =T =N∏i=1N∏i=1N∏i=1P mp,iP hyb,iT iΣε αµϕότερες τις περιπτώσεις, δηλαδή τόσο στο µονολιθικό όσο και στο υβριδικό µοντέλο, η παραλληλοποίησηθα βασιστεί στο µετασχηµατισµό υπερκόµβων. Θεωρούµε συνεπώς ότι κάθε διεργασία/νήµααναλαµβάνει την εκτέλεση ακολουθίας υπερκόµβων ύψους z κατά µήκος της εσωτερικής διάστασης Z,που απαριθµούνται από τη µεταβλητή tile µε 0 ≤ tile ≤ ⌈ Zz⌉− 1.Ο συνολικός χρόνος εκτέλεσης µπορεί να προσεγγιστεί ικανοποιητικά ως το γινόµενο του συνολικούαριθµού βηµάτων εκτέλεσης επί το µέσο χρόνο εκτέλεσης ενός υπερκόµβου ύψους z. Έτσι, για τηνπερίπτωση του προγράµµατος ανταλλαγής µηνυµάτων έχουµεT mp = N mp × T mp,tile (5.18)ενώ για το µοντέλο της υβριδικής παραλληλοποίησης θα ισχύειT hyb = N hyb × T hyb,tile (5.19)όπου T mp , N mp και T mp,tile ο συνολικός χρόνος εκτέλεσης, το συνολικό πλήθος βηµάτων και ο µέσοςχρόνος εκτέλεσης υπερκόµβου στην περίπτωση του µοντέλου ανταλλαγής µηνυµάτων, ενώ T hyb , N hybκαι T hyb,tile τα αντίστοιχα µεγέθη για το υβριδικό µοντέλο. Αναλυτικότερα, για το µοντέλο ανταλλαγήςµηνυµάτων θα έχουµεN mp = t mp,last − t mp,first + 1 (5.20)όπου t mp,first , t mp,last οι χρονικές στιγµές εκτέλεσης του πρώτου και του τελευταίου υπερκόµβου,αντίστοιχα. Είδαµε ότι ο µετασχηµατισµός υπερκόµβων εϕαρµόζεται κατά τέτοιο τρόπο, ώστε οι Nεξωτερικές διαστάσεις του µετασχηµατισµένου διανύσµατος διάσχισης των υπερκόµβων να ταυτοποιούντην ιδιοκτήτρια διεργασία, ενώ η πλέον εσωτερική απαριθµεί τον τρέχοντα υπερκόµβο. Κάθευπερκόµβος χαρακτηρίζεται συνεπώς από ένα αναγνωριστικό διάνυσµα (⃗p = (p 1 , . . . , p N ), tile),και µπορεί εύκολα να δειχθεί µε χρήση θεωρίας χρονοδροµολόγησης (βλ. ενότητα 4.5) ότι η χρονική


110 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοστιγµή της εκτέλεσής του παρέχεται από την έκϕρασηt(⃗p = (p 1 , . . . , p N ), tile) =N∑p i + tilei=1Συνεπώς, θα είναικαιt mp,first = t((0, . . . , 0), 0) = 0(⌈ ⌉ ) Zt mp,last = t (P mp,1 − 1, . . . , P mp,N − 1) , − 1z=N∑i=1⌈ ⌉ ZP mp,i − N + − 1zΕποµένως, βάσει της (5.20), προκύπτειN mp =N∑i=1⌈ ⌉ ZP mp,i − N +z(5.21)∏Για κάθε υπερκόµβο, µια διεργασία απασχολείται αϕενός µε την εκτέλεση κατά προσέγγιση N X i z/P mpεπαναλήψεων (υποθέτοντας προσεγγιστικά οµοιόµορϕη κατανοµή του συνολικού αριθµού επαναλήψεωνσε όλες τις διεργασίες), ενώ παράλληλα θα πρέπει να αποστείλει δεδοµένα προς τις γειτονικέςτης διεργασίες. Λόγω των εξαρτήσεων δεδοµένων, κάθε διεργασία απαιτείται να αποστείλει σε κάθεj=N ∏ Xβήµα d ji P mp,jz το πλήθος δεδοµένα προς τη διεύθυνση i. Θεωρώνταςj=1j≠i• το µέσο χρόνο για τον υπολογισµό n επαναλήψεων ίσο µε n ϕορές το χρόνο t comp , που απαιτείταιγια τον υπολογισµό µίας επανάληψης και• το χρόνο επικοινωνίας ως αποτελούµενο από δύο συνιστώσες, την πρακτικά σταθερή συνιστώσαπροκύπτειαρχικοποίησης t startup , καθώς και τη συνιστώσα διάδοσης που λαµβάνεται κατά προσέγγισηανάλογη µε το µέγεθος του µηνύµατος µε ένα συντελεστή αναλογίας t dataT mp,tile =N∏X i zi=1P mpt comp + Nt startup +N∏X i zi=1P mpN ∑i=1i=1{ }di P mp,it data (5.22)X iΟ συνδυασµός των (5.18), (5.21) και (5.22) προσεγγίζει θεωρητικά το χρόνο εκτέλεσης του παράλλη-


5.3 Σύγκριση Μοντέλου Ανταλλαγής Μηνυµάτων µε Υβριδικό Μοντέλο 111λου αλγορίθµου ανταλλαγής µηνυµάτων ως εξής:T mp =( N∑i=1⌈ ZP mp,i − N +z⎛⌉ ) N∏X i zi=1⎜ t comp + Nt startup +⎝ P mpN∏X i zi=1P mpN ∑i=1⎞{ }di P mp,it data ⎟X i ⎠Στον αντίποδα, για το υβριδικό µοντέλο παράλληλης επεξεργασίας θα ισχύειN hyb = t hyb,last − t hyb,first + 1 (5.23)όπου t hyb,first , t hyb,last οι χρονικές στιγµές εκτέλεσης του τοπολογικά πλησιέστερου («πρώτου») καιτου τοπολογικά πιο αποµακρυσµένου («τελευταίου») υπερκόµβου, αντίστοιχα. Κάθε υπερκόµβος τουυβριδικού προγράµµατος ταυτοποιείται από µια τριάδα (⃗p = (p 1 , . . . , p N ),⃗t = (t 1 , . . . , t N ), tile),που αντιστοιχεί σε (ιδιοκτήτρια διεργασία, νήµα ιδιοκτήτης, τρέχων υπερκόµβος) και βάσει θεωρίαςγραµµικής δροµολόγησης θα εκτελεστεί στο βήµα t(⃗p = (p 1 , . . . , p N ),⃗t = (t 1 , . . . , t N ), tile) πουπαρέχεται από τη σχέσηt(⃗p = (p 1 , . . . , p N ),⃗t = (t 1 , . . . , t N ), tile) =N∑ N∑p i T i + t i + tilei=1 i=1Με βάση την παραπάνω σχέση, θα είναιt hyb,first = t((0, . . . , 0), (0, . . . , 0), 0) = 0καθώς επίσης και(⌈ ⌉ ) Zt hyb,last = t (P hyb,1 − 1, . . . , P hyb,N − 1) , (T 1 − 1, . . . , T N − 1) , − 1z=N∑i=1Συνεπώς, από τη σχέση (5.23) προκύπτει⌈ ⌉ ZP hyb,i T i − N + − 1zN hyb =N∑i=1⌈ ⌉ ZP hyb,i T i − N +z(5.24)Χάριν γενικότητας δεν θα εστιάσουµε σε κάποια συγκεκριµένη προσέγγιση του υβριδικού µοντέλου


112 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλοπαράλληλου προγραµµατισµού. Αντίθετα, θα θεωρήσουµε την ιδεατή περίπτωση υβριδικής παραλληλοποίησης,που επιτυγχάνει αϕενός µεν απαλοιϕή µέρους της ανταλλαγής µηνυµάτων, που αϕορούνστην επικοινωνία µεταξύ νηµάτων της ίδιας διεργασίας, αϕετέρου δε τέλεια εξισορρόπηση του συνολικούϕορτίου υπολογισµού και επικοινωνίας µεταξύ των διαθέσιµων νηµάτων. Έτσι, ο συνολικός χρόνοςεκτέλεσης του υπερκόµβου κάθε νήµατος θα θεωρηθεί ίσος µε το 1 Tτου χρόνου που απαιτείται αν θεωρήσουµετον εικονικό υπερκόµβο της ιδιοκτήτριας διεργασίας, που αποτελείται από το σύνολο τωνυπερκόµβων όλων των νηµάτων της διεργασίας. Θα έχουµε λοιπόνT hyb,tile = 1 T⎛N∏X i zi=1⎜ t comp + Nt startup +⎝ P hybN∏X i zi=1P hybN ∑i=1⎞{ }di P hyb,it data ⎟X i ⎠(5.25)Οι (5.19),(5.24) και (5.25) δίνουν για το χρόνο εκτέλεσης του παράλληλου υβριδικού αλγορίθµου τηνεξής προσέγγιση:T hyb =( N∑i=1⌈ ⌉ ) Z 1P hyb,i T i − N +z T⎛N∏X i zi=1⎜ t comp + Nt startup +⎝ P hybN∏X i zi=1P hybN ∑i=1⎞{ }di P hyb,it data ⎟X i ⎠Η σύγκριση των εξισώσεων για τους εκτιµώµενους χρόνους T mp και T hyb οδηγεί στις ακόλουθεςπαρατηρήσεις:• ∆εδοµένης µιας συγκεκριµένης αρχιτεκτονικής υποδοµής κατανεµηµένης µοιραζόµενης µνήµηςµε συνολικά P επεξεργαστές, είναι λογικό να υποθέσουµε ότιP mp = P hyb T = P (5.26)Η παραπάνω υπόθεση εκϕράζει την πλήρη αξιοποίηση των διαθέσιµων πόρων, είτε αποκλειστικάµέσω διεργασιών, είτε µέσω συνδυασµού διεργασιών και νηµάτων. Με βάση αυτήν την παραδοχή,οι δύο προσεγγίσεις µπορούν θεωρητικά να είναι εξίσου αποδοτικές σε ό,τι αϕορά στην κατανοµήτου ϕορτίου υπολογισµού, είτε ανά διεργασία είτε ανά νήµα. Επίσης, µπορούµε να θεωρήσουµεπροσεγγιστικά ότιN∑N∑P mp,i ≃ P hyb,i T i (5.27)i=1i=1συνθήκη που συνεπάγεται ότι απαιτείται ο ίδιος αριθµός συνολικών βηµάτων εκτέλεσης και στις


5.3 Σύγκριση Μοντέλου Ανταλλαγής Μηνυµάτων µε Υβριδικό Μοντέλο 113δύο περιπτώσεις. Ακόµα κι αν αυτό δεν συµβαίνει, η ενδεχόµενη διαϕορά στα βήµατα εκτέλεσηςθα είναι µικρή, αϕού ο συνολικός αριθµός βηµάτων καθορίζεται και στις δύο περιπτώσεις κυρίωςαπό τον παράγοντα ⌈ Zz⌉και συνεπώς δεν αναµένεται να κρίνει τη συνολική σύγκριση στηνεπίδοση των δύο προγραµµατιστικών µοντέλων.• Το υβριδικό µοντέλο απαιτεί την ανταλλαγή περίπου T ϕορές λιγότερων µηνυµάτων µεταξύόλων των διεργασιών σε σχέση µε το µοντέλο ανταλλαγής µηνυµάτων. Το γεγονός αυτό είναιιδιαίτερα επιθυµητό, καθώς µειώνει τη συνολική επιβάρυνση λόγω αρχικής καθυστέρησης διάδοσηςτων µηνυµάτων, στοιχείο σηµαντικό για την απόδοση σε αρχιτεκτονικές κατανεµηµένηςµνήµης.• Στο υβριδικό µοντέλο κάθε διεργασία πρέπει να αποστείλει µεγαλύτερο συνολικό όγκο δεδοµένωνσε σχέση µε το µοντέλο ανταλλαγής µηνυµάτων. Παρότι κατά την υβριδική παραλληλοποίησηο συνολικός όγκος των δεδοµένων επικοινωνίας µειώνεται, καθώς απαλείϕεται η επικοινωνίαµεταξύ των νηµάτων της ίδιας διεργασίας µε το σχετικά µικρότερο κόστος επιπλέον συγχρονισµού,εντούτοις µειώνεται λόγω της παραδοχής (5.26) κατά ένα παράγοντα T και ο αριθµός τωνδιαθέσιµων διεργασιών που υλοποιούν την επικοινωνία αυτή. Όµως, ο συµψηϕισµός επικοινωνίαςκαι υπολογισµού κατά την εϕαρµογή σχήµατος εξισορρόπησης ϕορτίου µεταξύ των νηµάτωνδίνει θεωρητικά πλεονέκτηµα στο υβριδικό µοντέλο, καθώς συνολικά µειώνονται τόσο ο αριθµόςτων µηνυµάτων όσο και το πλήθος των δεδοµένων επικοινωνίας, ενώ κατά προσέγγιση διατηρείταιτο ίδιο κόστος υπολογισµού. Έτσι, µία τεχνική εξισορρόπησης ϕορτίου που θα επιτύγχανετην οµοιόµορϕη κατανοµή του συνολικού ϕορτίου του υπερκόµβου µεταξύ όλων των διαθέσι-µων νηµάτων θα µπορούσε θεωρητικά να αναδείξει τα πλεονεκτήµατα του υβριδικού µοντέλουστον τοµέα της επικοινωνίας.Συµπερασµατικά, το υβριδικό µοντέλο παράλληλου προγραµµατισµού ϕαίνεται αρκετά υποσχόµενογια τις αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης, όπως οι συστοιχίες πολυεπεξεργαστικώνστοιχείων. Είναι πάντως σαϕές ότι η αποδοτικότητα του υβριδικού µοντέλου βρίσκεται σε άµεσησυνάρτηση µε την επίδοση του σχήµατος εξισορρόπησης ϕορτίου που απαιτείται για την οµοιόµορϕηκατανοµή του συνολικού ϕόρτου εργασίας µεταξύ των νηµάτων. Επιπλέον, κατά την παραπάνω ανάλυσηαγνοήσαµε για λόγους απλότητας τον συνυπολογισµό του κόστους του συγχρονισµού µεταξύτων νηµάτων, καθώς και των υπόλοιπων επιβαρύνσεων που επιβάλλει το περιβάλλον πολυνηµατικήςεπεξεργασίας. Είναι προϕανές ότι τα στοιχεία αυτά αναµένεται να επιϕέρουν στην πράξη πρόσθετεςχρονικές επιβαρύνσεις στην επίδοση του υβριδικού µοντέλου.


114 Υβριδικό Παράλληλο Προγραµµατιστικό Μοντέλο


ΚΕΦΑΛΑΙΟ 6Πειραµατική ΑξιολόγησηΑναµϕίβολα, η εγκυρότερη µέθοδος πιστοποίησης της αποτελεσµατικότητας των προτεινόµενων µεθοδολογιώνκαι προγραµµατιστικών βελτιστοποιήσεων είναι η πειραµατική αξιολόγηση τους µε χρήσηπραγµατικών εϕαρµογών. Αντικείµενο του κεϕαλαίου αυτού αποτελεί η συγκριτική αξιολόγηση τουµονολιθικού µοντέλου ανταλλαγής µηνυµάτων και των υβριδικών µοντέλων παράλληλου προγραµµατισµούσε αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης. Προς την κατεύθυνση της πειραµατικήςαξιολόγησης των προτεινόµενων βελτιστοποιήσεων πραγµατοποιήθηκαν αναλυτικές µετρήσειςτου παράλληλου χρόνου εκτέλεσης για µια οµάδα µετροπρογραµµάτων σε δύο συστοιχίες πολυεπεξεργαστικώνστοιχείων µε διαϕορετικά χαρακτηριστικά ως προς την επεξεργαστική ισχύ και το δίκτυοδιασύνδεσης των κόµβων. Τα µετροπρογράµµατα αυτά συνδυάστηκαν µε ποικιλόµορϕους χώρους επαναλήψεων,ώστε να παρέχουν τελικά µια κατά το δυνατό αντιπροσωπευτική εικόνα της επίδρασης τωνπροτεινόµενων τεχνικών βελτιστοποίησης σε επαναληπτικούς αλγορίθµους ποικίλων δεδοµένων εισόδουκαι υπολογιστικών απαιτήσεων σε µια δηµοϕιλή παράλληλη αρχιτεκτονική, όπως είναι η συστοιχίαπολυεπεξεργαστικών στοιχείων.6.1 ΜετροπρογράµµαταΣτην κατεύθυνση της αξιολόγησης των επιµέρους προγραµµατιστικών µοντέλων χρησιµοποιήθηκανπέντε διαϕορετικά µετροπρογράµµατα, που αντιστοιχούν σε βασικούς υπολογιστικούς πυρήνες πραγ-µατικών εϕαρµογών. Έτσι, παραλληλοποιήθηκαν η µέθοδος ολοκλήρωσης ADI (Alternating Direction


116 Πειραµατική ΑξιολόγησηImplicit - ADI), η εξίσωση διάχυσης σε δισδιάστατη επιϕάνεια XY για χρόνο T σε µορϕή XY T (DiffusionEquation, XY T <strong>for</strong>m - DE-XYT), η δισδιάστατη εξίσωση διάχυσης σε µορϕή T XY (DE-TXY),η εξίσωση µεταϕοράς σε δισδιάστατη επιϕάνεια XY για χρόνο T (2D Advective equation - Adv2D),καθώς και η τρισδιάστατη εξίσωση µεταϕοράς σε χώρο XY Z για χρόνο T (Adv3D). Πιο αναλυτικά:1. ADI. Η τεχνική ADI αποτελεί µέθοδο που χρησιµοποιείται για την επίλυση µερικών διαϕορικώνεξισώσεων [KK02]. Ουσιαστικά, ο αλγόριθµος που περιγράϕει την µέθοδο ADI µπορεί ναµοντελοποιηθεί ως τρισδιάστατος τέλεια ϕωλιασµένος βρόχος, που επιβάλλει µοναδιαίες εξαρτήσειςδεδοµένων προς τις αντίστοιχες κατευθύνσεις του (τρισδιάστατου) χώρου επαναλήψεων.∆ηλαδή ισχύει:D ADI =⎡⎢⎣1 0 00 1 00 0 1Ο πάνω αριστερά 2×2 υποπίνακας που έχει σηµειωθεί µε έντονη γραϕή αντιστοιχεί στον πίνακαεξαρτήσεων µεταξύ των διεργασιών, µέσω του οποίου µπορούν εύκολα να καθοριστούν οι σχετικέςανάγκες για επικοινωνία. Παρατηρούµε επίσης ότι η τελευταία εξάρτηση του αλγορίθµου,δηλαδή το τρίτο διάνυσµα-στήλη του πίνακα εξαρτήσεων, δεν συνεπάγεται αναγκαιότητα ανταλλαγήςδεδοµένων µέσω µηνυµάτων. Το γεγονός αυτό οϕείλεται στο ότι κατά µήκος της πλέονεσωτερικής διάστασης κάθε διεργασία πραγµατοποιεί σειριακή εκτέλεση των υπολογισµών καισυνεπώς διαθέτει ήδη τα απαιτούµενα δεδοµένα, χωρίς να απαιτείται σχετική επικοινωνία µετις γειτονικές διεργασίες. Ο παραπάνω τρόπος γραϕής διευκολύνει την εποπτική εξαγωγή τωνδιανυσµάτων επικοινωνίας από τα διανύσµατα εξάρτησης δεδοµένων, και θα υιοθετηθεί στη συνέχειαγια όλες τις περιπτώσεις των αλγορίθµων.Ο πυρήνας ADI διαθέτει ένα χώρο επαναλήψεων της µορϕής X 1 × X 2 × Z, όπου η διάσταση Zθεωρείται ως η µεγαλύτερη των τριών. Έτσι, η απεικόνιση του αλγορίθµου στις διαθέσιµες διεργασίεςθα γίνει ως προς την επιϕάνεια x 1 x 2 , ενώ κάθε διεργασία θα εκτελεί σειριακά υπερκόµβουςκατά µήκος της διάστασης z.2. DE-XYT. Η διαϕορική εξίσωση που περιγράϕει το ϕαινόµενο της ασταθούς διάχυσης σε δισδιάστατοχώρο Ω µε αρχικές και συνοριακές συνθήκες περιγράϕεται τυπικά ως εξής:∂Θ∂t= ∇ 2 ΘΘ(x, y, t = 0) = f(x, y)⎤⎥⎦Θ(x, y, t) = g(x, y, t) στο σύνορο ∂Ωόπου Θ η ζητούµενη συνάρτηση θερµότητας, της οποίας τις τιµές επιθυµούµε να υπολογίσουµε.⎫⎪⎬⎪⎭


6.1 Μετροπρογράµµατα 117Έστω X, Y τα µήκη των πλευρών του ορθογωνίου που περικλείει το πεδίο εϕαρµογής Ω και Tτο χρονικό παράθυρο κατά τη διάρκεια του οποίου επιθυµούµε να παρακολουθήσουµε το ϕαινόµενοτης διάχυσης. Η backward διακριτοποίηση της εξίσωσης διάχυσης µε ακρίβεια δεύτερηςτάξης ως προς το χώρο και πρώτης τάξης ως προς το χρόνο παρέχει επαναληπτικό αλγόριθµο µετον ακόλουθο πίνακα εξαρτήσεων:D DE−XY T =⎡⎢⎣3 0 00 3 00 0 1Ουσιαστικά, ο παραπάνω πίνακας εξαρτήσεων αντιστοιχεί σε εξαρτήσεις από την προηγούµενηχρονική στιγµή και µέχρι τρεις προηγούµενες γειτονικές θέσεις στο πλέγµα. Θα πρέπει νασηµειωθεί ότι λόγω της ϕυσικής σηµασιολογίας της διάχυσης, βάσει της οποίας η πληροϕορίακατά µήκος ολόκληρου του συνόρου ∂Ω πρέπει να ληϕθεί υπόψη για τον υπολογισµό των τιµώντης συνάρτησης θερµότητας, η backward διακριτοποίηση µε τη µονόπλευρη ροή του υπολογισµούδεν συνιστά ευσταθή µέθοδο επίλυσης του προβλήµατος της διάχυσης θερµότητας. Σε κάθεπερίπτωση όµως χρησιµοποιήθηκε στο πλαίσιο της πειραµατικής αξιολόγησης, καθώς αποτελείαϕενός έναν τυπικό υπολογισµό διακριτοποιηµένης Μ∆Ε, ενώ αϕετέρου επιβάλλει µεγαλύτερεςανάγκες για επικοινωνία σε σχέση µε την µέθοδο ADI λόγω των τριπλάσιων διανυσµάτων εξάρτησηςµεταξύ των διεργασιών. Έτσι, ακόµα κι αν ο αλγόριθµος δεν διασϕαλίζει την ευστάθειατης µεθόδου επίλυσης, µας επιτρέπει να διερευνήσουµε την επίδραση των παράλληλων βελτιστοποιήσεωνκαθώς αυξάνουν οι εγγενείς ανάγκες επικοινωνίας του υπό εξέταση προβλήµατος.Στον πυρήνα DE-XYT θεωρούµε ως εσωτερική διάσταση τη χρονική t, ώστε ο αλγόριθµος να δια-µερίζεται χωρικά µεταξύ των διαθέσιµων διεργασιών ως προς το επίπεδο xy. Η υπόθεση αυτή δεναποτελεί τεχνητή σύµβαση, αλλά αντίθετα αντιστοιχεί σε ϕυσικά προβλήµατα στα οποία ενδια-ϕέρει η παρακολούθηση της εξέλιξης του ϕαινοµένου σε µια σχετικά περιορισµένη επιϕάνεια γιαµεγάλο χρονικό διάστηµα. Επιπλέον, λόγω της ϕύσης των εξαρτήσεων δεδοµένων (οµοιόµορ-ϕες, µη αρνητικές), είναι δυνατή η αντιµετάθεση των βρόχων προς την επίτευξη της επιθυµητήςακολουθίας ϕωλιάσµατος.⎤⎥⎦3. DE-TXY. Ο πυρήνας αυτός αποτελεί παραλλαγή του DE-XYT και προκύπτει µέσω αντιµετάθεσηςτης διάταξης ϕωλιάσµατος των βρόχων, ώστε ο χωρικός βρόχος που σαρώνει τη διάστασηy να βρίσκεται στην πλέον εσωτερική θέση. Η περίπτωση αυτή αντιστοιχεί στην παρακολούθησητης εξέλιξης του ϕαινοµένου σε µια ορθογώνια επιϕάνεια XY µεγάλης έκτασης µε Y > Xγια σχετικά µικρό χρονικό διάστηµα. Η αντιµετάθεση των βρόχων διαϕοροποιεί τις εξαρτήσεις


118 Πειραµατική Αξιολόγησηµεταξύ των διεργασιών ως εξής:D DE−T XY =⎡⎢⎣1 0 00 3 00 0 3⎤⎥⎦Η επιλογή της παραλλαγής αυτής για τη διαδικασία της πειραµατικής αξιολόγησης έγινε για τηνπιστοποίηση της επίδρασης των προτεινόµενων βελτιστοποιήσεων σε µεγαλύτερο εύρος πυρήνωνυπολογισµού και αλγοριθµικών χαρακτηριστικών (εξαρτήσεις δεδοµένων-χώρος επαναλήψεων),που ενδέχεται να επιβάλλονται από τη σηµασιολογία και τη σχετική χωροχρονική πολυπλοκότητατου προβλήµατος.4. Adv2D. Η διακριτοποίηση της δισδιάστατης εξίσωσης µεταϕοράς ακολουθεί τη διαδικασία πουπεριγράϕηκε στο παράδειγµα 3.1. Χάριν πληρότητας, αναπαράγεται εδώ η τυπική περιγραϕή τηςσχετικής Μ∆Ε:∂u∂u∂t= −v x ∂x −v ∂u y ∂yu(t = 0, x, y) = f(x, y)u(t, x, y) = g(t, x, y) στο σύνορο ∂ΩΌπως προκύπτει από την ανάλυση του παραδείγµατος 3.1, ο αλγόριθµος Adv2D επιβάλλει µοναδιαίεςεξαρτήσεις δεδοµένων:D Adv2D =⎡⎢⎣1 0 00 1 00 0 1Κατά την πειραµατική διαδικασία, θεωρήσαµε αυθαίρετα για τις συνιστώσες της ταχύτητας διάδοσηςτης διαταραχής ότι v x = v y = 50. Έτσι, βάσει της (3.28) για οµοιόµορϕο πλέγµα χωρικήςπυκνότητας διακριτοποίησης ∆ επιλέγουµε κβάντο χρόνου ∆t µε⎤⎥⎦⎫⎪⎬⎪⎭∆t ≤ ∆100(6.1)5. Adv3D. Στην προσπάθεια διερεύνησης της αποτελεσµατικότητας της προτεινόµενης τεχνικήςγια επιλογή κατάλληλης τοπολογίας διεργασιών, θεωρήσαµε επιπλέον και τη διακριτοποιηµένηεκδοχή της εξίσωσης µεταϕοράς σε τρεις διαστάσεις. Η εξίσωση µεταϕοράς σε τρεις διαστάσεις


6.1 Μετροπρογράµµατα 119µοντελοποιείται µέσω της ακόλουθης Μ∆Ε µε αρχικές και συνοριακές συνθήκες:∂u∂u∂t= −v x ∂x −v ∂u y ∂y −v ∂u z ∂zu(t = 0, x, y, z) = f(x, y, z)u(t, x, y, z) = g(t, x, y, z) στο σύνορο ∂ΩΗ διακριτοποίηση της τρισδιάστατης εξίσωσης µεταϕοράς ακολουθεί όµοια διαδικασία µε εκείνητης δισδιάστατης περίπτωσης και οδηγεί στον ακόλουθο πίνακα εξαρτήσεων δεδοµένων:⎡⎤1 0 0 00 1 0 0D Adv3D =⎢⎣0 0 1 0 ⎥⎦0 0 0 1Στις τρεις διαστάσεις και για οµοιόµορϕο πλέγµα µε ∆x = ∆y = ∆z = ∆, η συνθήκη ευστάθειαςCourant για την επιλογή του κβάντου χρόνου ∆t διαµορϕώνεται ως εξής:⎫⎪⎬⎪⎭∆t ≤∆√3 ( ) (6.2)vx 2 + vy 2 + vz2Θεωρώντας αυθαίρετα για τις συνιστώσες της ταχύτητας διάδοσης της διαταραχής ότι v x =v y = v z = 50, προκύπτει η ακόλουθη συνθήκη για την επιλογή του κβάντου χρόνου:∆t ≤ ∆150(6.3)Η επιλογή της αξιολόγησης των προτεινόµενων µεθοδολογιών και τεχνικών µε χρήση των ανωτέρωµετροπρογραµµάτων έγινε µε γνώµονα το γεγονός πως τα τελευταία αποτελούν τυπικούς εκπρόσωπουςτων αλγορίθµων ϕωλιασµένων βρόχων. Τα εξεταζόµενα µετροπρογράµµατα πληρούν τιςεπιθυµητές ιδιότητες της κατηγορίας των αλγορίθµων που µελετάµε, καθώς εναλλάσσουν ϕάσεις υπολογισµούµε ενδιάµεσες ϕάσεις επικοινωνίας για την ανταλλαγή δεδοµένων προς όλες τις διαστάσειςτου χώρου επαναλήψεων. Συνεπώς, όλες οι παράλληλες υλοποιήσεις περιέχουν ένα σηµαντικό όγκοεπικοινωνίας, διευκολύνοντας έτσι τη σύγκριση εναλλακτικών προγραµµατιστικών µοντέλων και τεχνικώνπαράλληλης βελτιστοποίησης σε αρχιτεκτονικές κατανεµηµένης µνήµης.


twins, έκδοση 9 στα xenons) µε τις ακόλουθες επιλογές βελτιστοποίησης: +©gBh+T:-0©i!§N©¦M¡T:£120 Πειραµατική Αξιολόγηση6.2 Πειραµατική ΥποδοµήΧρησιµοποιήσαµε το MPI ως βιβλιοθήκη ανταλλαγής µηνυµάτων και το OpenMP ως περιβάλλον πολυνηµατικήςεπεξεργασίας. Για τις εκτελέσεις των παράλληλων προγραµµάτων χρησιµοποιήθηκαν δύοσυστοιχίες πολυεπεξεργαστικών στοιχείων, η συστοιχία twins και η συστοιχία xenons. Η πρώτη συστοιχίααποτελείται από 8 κόµβους, καθένας από τους οποίους διαθέτει δύο επεξεργαστές Pentium III µεσυχνότητα ρολογιού 800 MHz, 256 MB κύρια µνήµη, 32 KB κρυϕή µνήµη επιπέδου 1 (16 KB για δεδο-µένα + 16 KB για εντολές), 256 KB κρυϕή µνήµη επιπέδου 2 και λειτουργικό σύστηµα Linux µε πυρήνα2.4.22. Η δεύτερη συστοιχία αποτελείται από 8 κόµβους, έκαστος µε δύο επεξεργαστές Xeon στα 2.8GHz, 2 GB κύρια µνήµη, 28 KB κρυϕή µνήµη επιπέδου 1 (16 KB για δεδοµένα + 12 KB για εντολές), 1MB κρυϕή µνήµη επιπέδου 2 και λειτουργικό σύστηµα Linux µε πυρήνα 2.6.13. Για την υποστήριξη τωνοδηγιών του OpenMP χρησιµοποιήθηκε ο µεταγλωττιστής C/C++ της Intel (έκδοση 8.1 στη συστοιχία+§!N:j+¥§¦C¦M¡. Οι κόµβοι της συστοιχίας twins διασυνδέονται µέσω δικτύου FastE<strong>the</strong>rnet (100Mbps), ενώ οι κόµβοι της συστοιχίας xenons διασυνδέονται µέσω του ταχύτερου δικτύου Gigabit E<strong>the</strong>rnet.Τέλος, χρησιµοποιήθηκε η υλοποίηση MPICH (έκδοση 1.2.6 για τα twins, 1.2.7p1 για τα xenons)του MPI, κατάλληλα διαµορϕωµένη για SMP συστοιχία, ώστε να πραγµατοποιεί την επικοινωνία µεταξύδιεργασιών στο εσωτερικό του ίδιου κόµβου µέσω µοιραζόµενης µνήµης τύπου SYS V. Η εν λόγωέκδοση του MPICH εγγυάται επίπεδο funneled πολυνηµατικής υποστήριξης, συνεπώς είναι σε θέσηνα υποστηρίξει όλα τα προτεινόµενα προγραµµατιστικά µοντέλα πλην της υβριδικής παραλληλοποίησηςχονδρού κόκκου τύπου multiple. Τα τεχνικά στοιχεία των δύο συστοιχιών συνοψίζονται χάρινεποπτικότητας στον πίνακα 6.1.Χαρακτηριστικό Συστοιχία twins Συστοιχία xenonsΠλήθος κόµβων 8 8Πλήθος επεξεργαστών/κόµβο 2 2Επεξεργαστής Intel Pentium III (Coppermine) Intel XeonΣυχνότητα ρολογιού 800 MHz 2.8 GHzΚύρια µνήµη κόµβου 256 MB 2 GBΚρυϕή µνήµη επεξεργαστή 16 KB L1 I + 16 KB L1 D 12 KB L1 I + 16 KB L1 D256 KB L2 1 MB L2∆ίκτυο διασύνδεσης 100 Mbps FastE<strong>the</strong>rnet Gigabit E<strong>the</strong>rnetΛειτουργικό σύστηµα Linux (πυρήνας 2.4.26) Linux (πυρήνας 2.6.13)Μεταγλωττιστής C/C++ Intel C/C++ µεταγλωττιστής 8.1 Intel C/C++ µεταγλωττιστής 9Βιβλιοθήκη MPI MPICH 1.2.6 MPICH 1.2.7p1Πίνακας 6.1: Τεχνικά στοιχεία συστοιχιών twins και xenonsΣτις περισσότερες περιπτώσεις, χρησιµοποιήσαµε 16 διεργασίες για το µονολιθικό µοντέλο ανταλ-


6.3 Τοπολογία ∆ιεργασιών 121λαγής µηνυµάτων και 8 διεργασίες µε 2 νήµατα ανά διεργασία για το υβριδικό. Στην περίπτωση τηςπειραµατικής αξιολόγησης της τοπολογίας απεικόνισης διεργασιών πραγµατοποιήθηκαν σε πολλές περιπτώσειςπρόσθετες εκτελέσεις µε 12 διεργασίες, για την κατά το δυνατό περισσότερο αξιόπιστη επαλήθευσητων πλεονεκτηµάτων της προτεινόµενης βελτιστοποίησης µε περισσότερους συνδυασµούςκαρτεσιανών τοπολογιών. Στην περίπτωση του µοντέλου ανταλλαγής µηνυµάτων, ένα κατάλληλο αρχείοαντιστοίχισης διεργασιών σε κόµβους του MPICH (machinefile) χρησιµοποιήθηκε για να διασϕαλίσειότι δύο διεργασίες που βρίσκονται στον ίδιο SMP κόµβο θα επικοινωνούν µέσω µοιραζόµενηςµνήµης. Για όλα τα πειραµατικά αποτελέσµατα ελήϕθησαν τουλάχιστον τρεις ανεξάρτητες µετρήσειςκαι οι τιµές που παρουσιάζονται αποτελούν το µέσο όρο των µετρήσεων αυτών. Παρότι κατεβλήθη κάθεδυνατή προσπάθεια να λαµβάνονται µετρήσεις κατά την απουσία άλλων χρηστών των συστηµάτων,δεν κατέστη δυνατό να αποϕευχθεί εξ ολοκλήρου κάποιος θόρυβος στις γραϕικές παραστάσεις. Όπωςόµως θα δούµε και στη συνέχεια, οι σηµαντικότερες αυξοµειώσεις που επισηµαίνονται στις πειραµατικέςκαµπύλες είναι θεωρητικά αναµενόµενες και οϕείλονται κυρίως σε ιδιαιτερότητες της επικοινωνίας.6.3 Τοπολογία ∆ιεργασιώνΠρώτος στόχος της πειραµατικής αξιολόγησης ήταν η σύγκριση των χρόνων παράλληλης εκτέλεσηςκατά την επιλογή αϕενός της συνήθους τοπολογίας διεργασιών ελάχιστης καθυστέρησης διάδοσηςκαι αϕετέρου της προτεινόµενης τοπολογίας ελαχιστοποίησης του όγκου των δεδοµένων επικοινωνίας.Για το σκοπό αυτό χρησιµοποιήθηκαν όλα τα µετροπρογράµµατα που περιγράϕηκαν στην ενότητα6.1 σε συνδυασµό µε διάϕορους χώρους επαναλήψεων και κόκκους παραλληλισµού. Επιπλέον,πραγµατοποιήθηκαν µετρήσεις και στις δύο συστοιχίες πολυεπεξεργαστικών στοιχείων, δηλαδή τόσοστη συστοιχία twins όσο και στην τεχνολογικά πιο προηγµένη συστοιχία xenons, ενώ θεωρήθηκαν οιπεριπτώσεις 16 και ενίοτε 12 διαθέσιµων διεργασιών. Η χρήση µεγαλύτερου εύρους συνδυασµών σε ό,τιαϕορά τόσο στους αλγορίθµους (εξαρτήσεις δεδοµένων, χώροι επαναλήψεων, σώµα υπολογισµού) όσοκαι στην υϕιστάµενη αρχιτεκτονική υποδοµή (ταχύτητα επεξεργαστή, αρχική καθυστέρηση διάδοσηςκαι ρυθµός παροχής δικτύου διασύνδεσης, πλήθος διαθέσιµων διεργασιών) έγινε µε σκοπό την κατά τοδυνατό περισσότερο αξιόπιστη εξαγωγή συµπερασµάτων αναϕορικά µε την επίδοση της προτεινόµενηςτοπολογίας απεικόνισης.Η συγκεκριµένη σειρά πειραµάτων έγινε µε χρήση αποκλειστικά του µονολιθικού παράλληλουπρογραµµατιστικού µοντέλου, χωρίς δηλαδή τη µέτρηση επίδοσης σε κάποιο από τα εναλλακτικά υβριδικάµοντέλα. Η επιλογή αυτή έγινε καθαρά για πρακτικούς λόγους, ώστε να µπορούµε σε κάθε περίπτωσηνα αξιοποιήσουµε το µέγιστο διαθέσιµο πλήθος επεξεργαστών της εκάστοτε συστοιχίας µεισάριθµο πλήθος διεργασιών. Άλλωστε, οποιαδήποτε βελτιστοποίηση αϕορά στην επιλογή αποδοτικής


122 Πειραµατική Αξιολόγησητοπολογίας απεικόνισης διεργασιών είναι ορθογώνια µε τις περαιτέρω βελτιστοποιήσεις, που µπορούννα υιοθετηθούν στο υβριδικό παράλληλο προγραµµατιστικό µοντέλο, καθώς το τελευταίο προσϕέρειτη δυνατότητα ανεξάρτητης επιλογής αϕενός της τοπολογίας των διεργασιών και αϕετέρου εκείνηςτων νηµάτων.Κατά τη λήψη των µετρήσεων ακολουθήσαµε την εξής πειραµατική διαδικασία: για κάθε συνδυασµόαλγορίθµου, χώρου επαναλήψεων και τοπολογίας διεργασιών µετρήθηκε ο χρόνος εκτέλεσης γιαεπαρκές εύρος κόκκων παραλληλισµού, δηλαδή για διαϕορετικές τιµές του ύψους z του υπερκόµβου.Κάθε µέτρηση εκτελέστηκε τουλάχιστον τρεις ϕορές, για λόγους επαλήθευσης των αποτελεσµάτων καιµείωσης του ανεπιθύµητου θορύβου. Η βασικότερη σύγκριση που θα µας απασχολήσει στη συνέχειαείναι εκείνη του ελάχιστου χρόνου που επετεύχθη για κάποιο ύψος υπερκόµβου σε κάθε περίπτωση τοπολογίαςδιεργασιών. Επιπλέον όµως, θα επιχειρήσουµε να αναλύσουµε το συνολικό χρόνο εκτέλεσηςσε χρόνους υπολογισµού και επικοινωνίας, για να διερευνήσουµε κατά πόσο η ενδεχόµενη βελτίωσητου χρόνου εκτέλεσης µε την επιλογή της προτεινόµενης τοπολογίας οϕείλεται πραγµατικά σε ελαχιστοποίησητου χρόνου επικοινωνίας. Τέλος, σε λίγες περιπτώσεις θα εξετάσουµε και µετρήσεις χρόνουεκτέλεσης σε συνάρτηση µε το ύψος του υπερκόµβου, για να ϕανεί εποπτικά ο βαθµός οµοιοµορϕίαςπου χαρακτηρίζει τη συµπεριϕορά του προγράµµατος για διαϕορετικό κόκκο παραλληλισµού.6.3.1 ADIΤο µετροπρόγραµµα ADI διαθέτει ένα χώρο επαναλήψεων X 1 ×X 2 ×Z. Θεωρήσαµε πέντε διαϕορετικούςχώρους επαναλήψεων, ήτοι 16×256×16K, 32×256×16K, 64×256×16K, 128×256×16K και256 × 256 × 16K. Πραγµατοποιήθηκαν µετρήσεις τόσο µε 16 όσο και µε 12 διεργασίες για ύψη υπερκόµβουαπό 2 ως 200 µε βήµα 2, καθώς σε αυτό το εύρος παρατηρήθηκε ο ελάχιστος χρόνος εκτέλεσηςτων προγραµµάτων. Επίσης, λήϕθηκαν µετρήσεις τόσο στη συστοιχία twins όσο και στη συστοιχίαxenons.Χώρος επαναλήψεων 16 διεργασίες 12 διεργασίες16 × 256 × 16K 1 × 16 1 × 1232 × 256 × 16K 2 × 8 1 × 1264 × 256 × 16K 2 × 8 2 × 6128 × 256 × 16K 2 × 8 2 × 6256 × 256 × 16K 4 × 4 3 × 4Πίνακας 6.2: Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα ADI και συνολικόπλήθος διεργασιών 16 ή 12Ο πίνακας 6.2 συνοψίζει τις προτεινόµενες τοπολογίες απεικόνισης για τους διάϕορους χώρουςεπαναλήψεων, τόσο για συνολικό πλήθος διεργασιών ίσο µε 16 όσο και για 12 διεργασίες. Σε όλες τις


6.3 Τοπολογία ∆ιεργασιών 123περιπτώσεις, οι χρόνοι εκτέλεσης που επιτυγχάνονται υπό την προτεινόµενη τοπολογία του πίνακασυγκρίνονται µε εκείνους που λαµβάνονται κατά την υιοθέτηση της 4 × 4 τοπολογίας διεργασιών για16 διεργασίες και της 3 × 4 τοπολογίας για 12 διεργασίες. Οι τοπολογίες αυτές ελαχιστοποιούν τηναρχική καθυστέρηση εκκίνησης της πιο αποµακρυσµένης διεργασίας κατά την εκτέλεση του παράλληλουπρογράµµατος. Για την περίπτωση των 12 διεργασιών επιλέγουµε την τοπολογία 3 × 4 έναντι της4 × 3 παρότι αµϕότερες είναι θεωρητικά ισοδύναµες όσον αϕορά στην αρχική καθυστέρηση διάδοσης,καθώς η πρώτη ταιριάζει καλύτερα µε τη µορϕολογία των εξεταζόµενων χώρων επαναλήψεων, για τουςοποίους ισχύει γενικά ότι X 1 ≤ X 2 .V normalizedcommunication-optimalprocess topology16x256x16K32x256x16K64x256x16K128x256x16K256x256x16K(1,16)P 2(2,8)(4,4)P 1Σχήµα 6.1: Επιλογή τοπολογίας διεργασιών ελάχιστης επικοινωνίας (P 1 , P 2 ) για πέντε χώρους επαναλήψεων.Για κάθε χώρο επαναλήψεων σχεδιάζεται η καµπύλη του κανονικοποιηµένου κόστους επικοινωνίας,της οποίας οι θέσεις ελαχίστων αντιστοιχούν στην προτεινόµενη τοπολογία.Για την περίπτωση των 16 διεργασιών, οι τοπολογίες που ελαχιστοποιούν το συνολικό όγκο επικοινωνίαςγια κάθε χώρο επαναλήψεων απεικονίζονται στο σχήµα 6.1. Παρατηρούµε ότι για τους χώρουςεπαναλήψεων 16 × 256 × 16K και 64 × 256 × 16K οι προτεινόµενες τοπολογίες (1 × 16 και 2 × 8,αντίστοιχα) είναι βέλτιστες όσον αϕορά στην ελαχιστοποίηση του όγκου της επικοινωνίας, και µπο-


124 Πειραµατική Αξιολόγησηρούν να εξαχθούν άµεσα από την (4.6). Για τις άλλες δύο περιπτώσεις, η (4.6) δεν παρέχει µια έγκυρηακέραιη τοπολογία, συνεπώς µια τέτοια πρέπει να αναζητηθεί µε τη βοήθεια του αλγορίθµου 4.5. Στηνανάλυσή µας δεν παρέχουµε αποτελέσµατα για χώρους επαναλήψεων της µορϕής X 1 × X 2 × Z µεX 1 > X 2 , καθώς λόγω συµµετρίας των αλγοριθµικών υπολογισµών παρατηρήθηκε ότι οι χώροι αυτοίπαρουσιάζουν πανοµοιότυπη συµπεριϕορά µε τους υπό εξέταση X 2 × X 1 × Z χώρους.1.214x4scheduling-aware topologycommunication-aware topology4x44x42x84x4 2x84x4 4x41.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation4x4 4x4 4x4 4x4 2x84x4 4x42x80.82x80.82x8Ratio0.61x16Ratio0.61x160.40.40.20.2016x256x16k32x256x16k64x256x16k 128x256x16k 256x256x16k016x256x16k32x256x16k64x256x16k 128x256x16k 256x256x16k(α) συνολικός χρόνος εκτέλεσης(β) ανάλυση χρόνου εκτέλεσηςΣχήµα 6.2: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (ADI, διάϕοροι χώροι επαναλήψεων,16 διεργασίες, συστοιχία twins)Το σχήµα 6.2 συνοψίζει τους συνολικούς χρόνους εκτέλεσης για τη µέθοδο ADI στη συστοιχίαtwins µε χρήση 16 διεργασιών, ενώ το σχήµα 6.3 απεικονίζει τους αντίστοιχους χρόνους για την περίπτωσητων 12 διεργασιών. Σηµειώνεται ότι για τη σύγκριση έχουν ληϕθεί οι ελάχιστοι χρόνοι εκτέλεσηςπου επιτεύχθηκαν για κάποιο κόκκο παραλληλισµού, ενώ επίσης ως χρόνος εκτέλεσης υπονοείται ηχρονική διάρκεια από την έναρξη των υπολογισµών στη χρονικά πρώτη διεργασία µέχρι την περάτωσητων υπολογισµών στη χρονικά τελευταία διεργασία. Όλοι οι χρόνοι εκτέλεσης είναι κανονικοποιηµένοιπρος τους χρόνους της 4 × 4 τοπολογίας διεργασιών, καθώς αυτό διευκολύνει τη σύγκριση τηςσχετικής επίδοσης των εναλλακτικών τοπολογιών: η ποσοστιαία µείωση του χρόνου εκτέλεσης µπορείνα ληϕθεί εποπτικά από ανάγνωση της διαϕοράς ύψους των δύο ράβδων κάθε ζεύγους, όπου η πρώτηράβδος αναπαριστά το µοναδιαίο χρόνο εκτέλεσης της τοπολογίας 4 × 4 και η δεύτερη σηµειώνει τοναντίστοιχο κανονικοποιηµένο χρόνο εκτέλεσης της εκάστοτε προτεινόµενης τοπολογίας.Τα πειραµατικά αποτελέσµατα καταδεικνύουν µια σηµαντική βελτίωση στην επίδοση µε χρήση τηςτοπολογίας διεργασιών που ελαχιστοποιεί το συνολικό όγκο των δεδοµένων επικοινωνίας, τόσο στηνπερίπτωση των 16 διεργασιών όσο και σε εκείνη των 12 διεργασιών. Η ποσοστιαία βελτίωση αυξάνεταικαθώς µεταβαίνουµε από σχετικά συµµετρικούς χώρους επαναλήψεων προς λιγότερο συµµετρικούς


6.3 Τοπολογία ∆ιεργασιών 1251.213x4scheduling-aware topologycommunication-aware topology3x43x42x63x4 2x63x4 3x41.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.81x120.8Ratio0.61x12Ratio0.60.40.40.20.2016x256x16k32x256x16k64x256x16k 128x256x16k 256x256x16k016x256x16k32x256x16k64x256x16k 128x256x16k 256x256x16k(α) συνολικός χρόνος εκτέλεσης(β) ανάλυση χρόνου εκτέλεσηςΣχήµα 6.3: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (ADI, διάϕοροι χώροι επαναλήψεων,12 διεργασίες, συστοιχία twins)χώρους. Για παράδειγµα, στις 16 διεργασίες παρατηρούµε µια βελτίωση πλέον του 45% για το χώρο16 × 256 × 16K, η οποία µειώνεται προοδευτικά σε 19% για το χώρο 32 × 256 × 16K, 8% για τοχώρο 64 × 256 × 16K και τελικά 2% στην περίπτωση του χώρου 128 × 256 × 16K. Οµοίως, στηνπερίπτωση των 12 διεργασιών η ποσοστιαία βελτίωση ανέρχεται σε 41% για το χώρο 16 × 256 × 16K,σε 20% για το χώρο 32 × 256 × 16K, σε 9% για το χώρο 64 × 256 × 16K και τελικά σε 2% στηνπερίπτωση του χώρου 128×256×16K. Στην περίπτωση του χώρου 256×256×16K η προτεινόµενητοπολογία συµπίπτει µε τη συνήθη τοπολογία ελαχιστοποίησης της αρχικής καθυστέρησης διάδοσης.Η προοδευτική µείωση της ποσοστιαίας βελτίωσης της επίδοσης του προγράµµατος είναι αναµενόµενηκαι οϕείλεται στο ότι η σχετική µείωση του όγκου των δεδοµένων επικοινωνίας, που επιτυγχάνεται µεχρήση της προτεινόµενης τοπολογίας, είναι µεγαλύτερη σε ασύµµετρους χώρους σε σχέση µε τουςπερισσότερο συµµετρικούς. Πράγµατι, για το χώρο επαναλήψεων 16 × 256 × 16K η υιοθέτηση τηςπροτεινόµενης τοπολογίας µειώνει το συνολικό όγκο των δεδοµένων επικοινωνίας κατά 71%. Στηνπερίπτωση του χώρου επαναλήψεων 32 × 256 × 16K η αντίστοιχη µείωση ισούται µε 44%, ενώ στοχώρο επαναλήψεων 64 × 256 × 16K ο όγκος των δεδοµένων επικοινωνίας µειώνεται κατά 27%. Στουςχώρους επαναλήψεων 128 × 256 × 16K και 256 × 256 × 16K οι προτεινόµενες τοπολογίες οδηγούνστην ανταλλαγή ισότιµου όγκου δεδοµένων µε την τοπολογία 4 × 4.∆ιερευνώντας τα οϕέλη που αποκοµίσαµε κατά την υιοθέτηση της τοπολογίας ελάχιστης επικοινωνίαςπραγµατοποιήσαµε επιπλέον καταγραϕή των επιµέρους χρόνων επικοινωνίας και υπολογισµούτου παράλληλου προγράµµατος. Έτσι, σε όλες τις διεργασίες µετρήσαµε το χρόνο που απαιτείται γιατην ολοκλήρωση των υπολογισµών ενός υπερκόµβου, ενώ επιπλέον καταγράψαµε και το συνολικό χρό-


126 Πειραµατική Αξιολόγησηνο επικοινωνίας που σχετίζεται τόσο µε την κλήση ρουτινών MPI όσο και µε την οµαδοποίηση/ταξινόµησητων δεδοµένων επικοινωνίας. Συγκεκριµένα, στους χρόνους επικοινωνίας συµπεριλαµβάνονται οι χρόνοιανταλλαγής µηνυµάτων, δηλαδή οι χρόνοι µετάδοσης και λήψης δεδοµένων µε χρήση ασύγχρονωνλειτουργιών επικοινωνίας του MPICH και οι χρόνοι που απαιτούνται για τη διασϕάλιση της επιτυχούςολοκλήρωσης των παραπάνω λειτουργιών. Επιπλέον, στους χρόνους επικοινωνίας έχουν συµπεριλη-ϕθεί οι χρόνοι οµαδοποίησης των δεδοµένων προς αποστολή, καθώς και οι χρόνοι τοποθέτησης τωνδεδοµένων λήψης.9876Execution time profiling <strong>for</strong> 64x256x16k space<strong>and</strong> 16 processesscheduling-awarecommunication-awarescheduling-aware, computationcommunication-aware, computationscheduling-aware, communicationcommunication-aware, communicationTime (sec)5432100 20 40 60 80 100 120 140 160 180 200Tile HeightΣχήµα 6.4: Παράσταση συνολικού χρόνου εκτέλεσης, µέγιστου χρόνου υπολογισµού και µέγιστου χρόνουεπικοινωνίας για το µετροπρόγραµµα ADI, το χώρο επαναλήψεων 64 × 256 × 16K και 16 διεργασίες.Παρατηρούµε ότι οι χρόνοι υπολογισµού δεν διαϕέρουν σηµαντικά, ενώ αντίθετα το πλεονέκτηµα πουπροσϕέρει στο χρόνο επικοινωνίας η προτεινόµενη τοπολογία µεταϕέρεται αυτούσιο και στο συνολικόχρόνο εκτέλεσης του προγράµµατος.Στα σχήµατα 6.2(β) και 6.3(β) παρουσιάζονται οι µέγιστοι χρόνοι υπολογισµού και επικοινωνίας,που προκύπτουν µέσω αναγωγής των επιµέρους χρόνων ως προς όλες τις διεργασίες και λήψη τουµέγιστου χρόνου σε κάθε περίπτωση. Όλοι οι χρόνοι που παρουσιάζονται είναι κανονικοποιηµένοιως προς το άθροισµα {µέγιστος χρόνος υπολογισµού+µέγιστος χρόνος επικοινωνίας} που αντιστοιχείστην περίπτωση της συνήθους τοπολογίας ελαχιστοποίησης των βηµάτων παράλληλης εκτέλεσης. Τοάθροισµα των επιµέρους χρόνων δεν ισούται κατ' ανάγκη µε το συνολικό χρόνο εκτέλεσης, καθώς οιµέγιστοι επιµέρους χρόνοι υπολογισµού και επικοινωνίας που λαµβάνονται κατά την αναγωγή πιθα-


6.3 Τοπολογία ∆ιεργασιών 127Total execution time <strong>for</strong> 16x256x16k space<strong>and</strong> 16 processesTotal execution time <strong>for</strong> 32x256x16k space<strong>and</strong> 16 processes43.5scheduling-aware message passingcommunication-aware message passing4scheduling-aware message passingcommunication-aware message passingTime (sec)32.52Time (sec)3.531.512.50 20 40 60 80 100 120 140 160 180 200Tile Height0 20 40 60 80 100 120 140 160 180 200Tile Height(α) 16 × 256 × 16k(β) 32 × 256 × 16k6.5Total execution time <strong>for</strong> 64x256x16k space<strong>and</strong> 16 processesscheduling-aware message passingcommunication-aware message passing1211.5Total execution time <strong>for</strong> 128x256x16k space<strong>and</strong> 16 processesscheduling-aware message passingcommunication-aware message passing611Time (sec)5.5Time (sec)10.5109.5590 20 40 60 80 100 120 140 160 180 200Tile Height(γ) 64 × 256 × 16k8.50 20 40 60 80 100 120 140 160 180 200Tile Height(δ) 128 × 256 × 16kΣχήµα 6.5: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών για µεταβλητό κόκκο παραλληλισµού(ADI, διάϕοροι χώροι επαναλήψεων, 16 διεργασίες, συστοιχία twins)νότατα δεν αναϕέρονται καν στην ίδια διεργασία. Εντούτοις, παρά τις σχετικά µικρές αποκλίσεις πουπαρατηρούνται στους χρόνους υπολογισµού και µπορούν να αποδοθούν σε ϕαινόµενα τοπικότηταςαναϕοράς δεδοµένων στην ιεραρχία µνήµης, είναι εµϕανές ότι το σχετικό πλεονέκτηµα της προτεινό-µενης τοπολογίας στο συνολικό χρόνο εκτέλεσης οϕείλεται στην αντίστοιχη µείωση που επιτυγχάνεταιστους χρόνους επικοινωνίας. Πράγµατι, οι χρόνοι εκτέλεσης ϕανερώνουν ότι για τη δεδοµένη αρχιτεκτονικήκαι το συγκεκριµένο αλγόριθµο η τοπικότητα αναϕοράς των δεδοµένων πρακτικά δεν επηρεάζειτη συνολική απόδοση, παρότι οι χρόνοι υπολογισµού είναι εν γένει µικρότεροι κατά την επιλογήµετασχηµατισµού υπερκόµβων, που διατηρεί το ίχνος προσπέλασης των δεδοµένων εντός των ορίωντης L2 κρυϕής µνήµης. Καθότι στην παρούσα εργασία δίνεται έµϕαση στην αξιοποίηση των χαρακτηριστικώνεπικοινωνίας σε αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης µέσω παράλληλων


128 Πειραµατική Αξιολόγησηπρογραµµατιστικών µοντέλων, οι χρόνοι υπολογισµού δεν θα αναλυθούν περαιτέρω. Όταν η µείωσητου χρόνου επικοινωνίας είναι υψηλή, αντίστοιχα υψηλή προκύπτει και η µείωση του συνολικού χρόνουεκτέλεσης του προγράµµατος. Η αναλογία αυτή καθίσταται περισσότερο σαϕής κατά την παράστασησε κοινούς άξονες του συνολικού χρόνου εκτέλεσης, του χρόνου υπολογισµού και του χρόνου επικοινωνίαςγια διάϕορα ύψη υπερκόµβου, όπως στο σχήµα 6.4 για την περίπτωση του χώρου επαναλήψεων64 × 256 × 16K.Όπως ϕαίνεται στο σχήµα 6.5, σε όλους τους χώρους επαναλήψεων παρατηρήσαµε οµοιόµορϕησυµπεριϕορά των χρόνων παράλληλης εκτέλεσης για το συνολικό εύρος τιµών του ύψους υπερκόµβουπου εξετάσαµε. Συνεπώς, για τον αλγόριθµο ADI η προτεινόµενη τοπολογία απεικόνισης υπερέχειτόσο για λεπτοµερή όσο και για χονδροειδή κόκκο παραλληλισµού, καθώς επιτυγχάνει σε όλες τιςπεριπτώσεις τους µικρότερους χρόνους εκτέλεσης.1.210.84x4scheduling-aware topologycommunication-aware topology4x42x84x42x84x4 2x84x4 8x21.210.8scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computationRatio0.61x16Ratio0.60.40.40.20.2016x256x16k32x256x16k64x256x16k 128x256x16k 512x128x16k016x256x16k32x256x16k64x256x16k 128x256x16k 512x128x16k(α) συνολικός χρόνος εκτέλεσης(β) ανάλυση χρόνου εκτέλεσηςΣχήµα 6.6: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (ADI, διάϕοροι χώροι επαναλήψεων,16 διεργασίες, συστοιχία xenons)Τέλος, στο σχήµα 6.6 καταγράϕονται οι χρόνοι εκτέλεσης για τις εναλλακτικές τοπολογίες στη συστοιχίατων xenons. Παρότι η συστοιχία των xenons διαθέτει ένα δίκτυο διασύνδεσης κατά µία τάξηµεγέθους ταχύτερο σε σχέση µε εκείνο των twins (Gigabit E<strong>the</strong>rnet έναντι FastE<strong>the</strong>rnet), η υιοθέτησητης προτεινόµενης τοπολογίας παρέχει και πάλι υψηλή µείωση του συνολικού χρόνου εκτέλεσης λόγωτης αντίστοιχης ποσοστιαίας µείωσης του χρόνου επικοινωνίας. Έτσι, ενώ σε απόλυτα µεγέθη τόσο οισυνολικοί χρόνοι παράλληλης εκτέλεσης όσο και οι επιµέρους χρόνοι υπολογισµού και επικοινωνίαςµειώνονται κατά την εκτέλεση των προγραµµάτων στη συστοιχία xenons, το συγκριτικό πλεονέκτηµατης προτεινόµενης τοπολογίας απεικόνισης διατηρείται, καθώς το σκέλος της επικοινωνίας εξακολουθείνα αποτελεί καθοριστική συνιστώσα της συνολικής επίδοσης του προγράµµατος.


6.3 Τοπολογία ∆ιεργασιών 1296.3.2 DE-XYTΣτην περίπτωση του µετροπρογράµµατος DE-XYT χρησιµοποιήθηκαν δύο οµάδες χώρων επαναλήψεων.Όπως και στην περίπτωση του ADI, χρησιµοποιήθηκαν οι χώροι {16, 32, 64, 128, 256}×256×16K,οι οποίοι στο εξής χάριν συντοµίας θα κατονοµάζονται Σύνολο 1. Οι χώροι επαναλήψεων του Συνόλου1 ευνοούν εγγενώς το ϕαινόµενο της σωλήνωσης και κατά συνέπεια το εϕαρµοζόµενο σχήµα δροµολόγησης,καθώς η εσωτερική διάσταση της σειριακής εκτέλεσης είναι σηµαντικά µεγαλύτερη από τιςεξωτερικές διαστάσεις απεικόνισης. Επιπλέον, στην περίπτωση του Συνόλου 1 κάθε διεργασία αναλαµβάνειτην εκτέλεση ενός υψηλού αριθµού υπερκόµβων κατά µήκος της σειριακής διάστασης, αµβλύνονταςέτσι τις επιπτώσεις της αρχικής καθυστέρησης διάδοσης του αλγορίθµου. Για τους λόγουςαυτούς θεωρήσαµε επιπλέον ένα δεύτερο σύνολο χώρων επαναλήψεων (Σύνολο 2), στο οποίο η εσωτερικήσειριακή διάσταση είναι συγκρίσιµη µε τις διαστάσεις απεικόνισης. Συγκεκριµένα, θα εξετάσουµεεπιπλέον τους χώρους επαναλήψεων 1K×32×2K, 1K×64×2K, 1K×128×2K, 1K×256×2K και1K ×512×2K (16 διεργασίες) ή 1K ×384×2K (12 διεργασίες, λόγω πρακτικών περιορισµών στουςδιαθέσιµους πόρους µνήµης). Η διερεύνηση των χώρων επαναλήψεων του Συνόλου 2 αντανακλά στοιδιαίτερο ϕυσικό περιεχόµενο του αλγορίθµου, εάν αναλογιστεί κανείς πως οι δύο πρώτες διαστάσειςαντιστοιχούν σε χώρο και η τρίτη σε χρόνο. Ανάλογα µε τη ϕύση του υπό εξέταση προβλήµατος και τηδιακριτοποίηση που εϕαρµόζεται, είναι πιθανό να προκύψουν τέτοιοι χώροι επαναλήψεων συγκρίσιµηςχωρικής και χρονικής πολυπλοκότητας.Χώρος επαναλήψεων 16 διεργασίες 12 διεργασίες16 × 256 × 16K 1 × 16 1 × 1232 × 256 × 16K 2 × 8 1 × 12Σύνολο 1 64 × 256 × 16K 2 × 8 2 × 6128 × 256 × 16K 2 × 8 2 × 6256 × 256 × 16K 4 × 4 3 × 41K × 32 × 2K 16 × 1 12 × 11K × 64 × 2K 16 × 1 12 × 1Σύνολο 2 1K × 128 × 2K 8 × 2 12 × 11K × 256 × 2K 8 × 2 6 × 21K × 384 × 2K 6 × 21K × 512 × 2K 4 × 4Πίνακας 6.3: Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-XYT και συνολικόπλήθος διεργασιών 16 ή 12Συνολικά, οι υπό εξέταση χώροι επαναλήψεων και οι προτεινόµενες τοπολογίες απεικόνισης γιατην παράλληλη εκτέλεση του µετροπρογράµµατος DE-XYT σε 16 ή 12 διεργασίες αναγράϕονται στονπίνακα 6.3. Στην περίπτωση των 16 διεργασιών γίνεται πάντα σύγκριση της προτεινόµενης τοπολογίας


130 Πειραµατική Αξιολόγησηµε την τοπολογία 4 × 4. Στην περίπτωση των 12 διεργασιών συγκρίνουµε την εκάστοτε προτεινόµενητοπολογία απεικόνισης µε τις τοπολογίες 3 × 4 (Σύνολο 1) και 4 × 3 (Σύνολο 2), που επιτυγχάνουν τηνελάχιστη καθυστέρηση διάδοσης για τους εξεταζόµενους χώρους επαναλήψεων.1.214x4scheduling-aware topologycommunication-aware topology4x44x44x42x84x4 4x41.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation2x80.82x80.8Ratio0.6Ratio0.60.41x160.40.20.2016x256x16k32x256x16k64x256x16k 128x256x16k 256x256x16k016x256x16k32x256x16k64x256x16k 128x256x16k 256x256x16k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) ανάλυση χρόνου εκτέλεσης, Σύνολο 11.214x4scheduling-aware topologycommunication-aware topology4x44x48x24x4 8x24x4 4x41.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.816x10.8Ratio0.616x1Ratio0.60.40.40.20.201kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k01kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(γ) συνολικός χρόνος εκτέλεσης, Σύνολο 2(δ) ανάλυση χρόνου εκτέλεσης, Σύνολο 2Σχήµα 6.7: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-XYT, διάϕοροι χώροι επαναλήψεων,16 διεργασίες, συστοιχία twins)Τα πειραµατικά αποτελέσµατα του µετροπρογράµµατος DE-XYT απεικονίζονται στο σχήµα 6.7 για16 διεργασίες, ενώ στο σχήµα 6.8 καταγράϕονται οι αντίστοιχες µετρήσεις για 12 διεργασίες. Όπως καιστην περίπτωση του µετροπρογράµµατος ADI, η βελτίωση του συνολικού χρόνου παράλληλης εκτέλεσηςείναι ιδιαίτερα αισθητή στους περισσότερο ασύµµετρους χώρους επαναλήψεων. Έτσι, για τις 16διεργασίες και το Σύνολο 1 έχουµε βελτίωση του χρόνου εκτέλεσης κατά 60% για το χώρο επαναλήψεων16 × 256 × 16K, 32% για το χώρο 32 × 256 × 16K, 13% για το χώρο 64 × 256 × 16K και 5% γιατο χώρο 128 × 256 × 16K. Οµοίως, στην περίπτωση του Συνόλου 2 παρατηρούµε µείωση του χρόνου


6.3 Τοπολογία ∆ιεργασιών 1311.213x4scheduling-aware topologycommunication-aware topology3x43x42x63x4 2x63x4 3x41.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computationRatio0.80.61x12Ratio0.80.60.41x120.40.20.2016x256x16k32x256x16k64x256x16k 128x256x16k 256x256x16k016x256x16k32x256x16k64x256x16k 128x256x16k 256x256x16k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) ανάλυση χρόνου εκτέλεσης, Σύνολο 11.214x3scheduling-aware topologycommunication-aware topology4x34x312x14x3 6x24x3 6x21.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.812x112x10.8Ratio0.6Ratio0.60.40.40.20.201kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx384x2k01kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx384x2k(γ) συνολικός χρόνος εκτέλεσης, Σύνολο 2(δ) ανάλυση χρόνου εκτέλεσης, Σύνολο 2Σχήµα 6.8: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-XYT, διάϕοροι χώροι επαναλήψεων,12 διεργασίες, συστοιχία twins)εκτέλεσης κατά 33% για το χώρο 1K × 32 × 2K, 16% για το χώρο 1K × 64 × 2K, 6% για το χώρο1K × 128 × 2K και τελικά 2% για το χώρο 1K × 256 × 2K. Ανάλογη είναι η βελτίωση της επίδοσηςκαι για την περίπτωση των 12 διεργασιών.Από τα παραπάνω εξάγονται δύο βασικές παρατηρήσεις: κατά πρώτον, η ποσοστιαία βελτίωση στοΣύνολο 1 είναι πολύ µεγαλύτερη στην περίπτωση του µετροπρογράµµατος DE-XYT απ' ό,τι στον αλγόριθµοADI. Το γεγονός αυτό είναι αναµενόµενο, καθώς ο αλγόριθµος DE-XYT χαρακτηρίζεται εγγενώςαπό µεγαλύτερες ανάγκες επικοινωνίας, όπως άλλωστε πιστοποιούν τα διανύσµατα εξάρτησηςτου αλγορίθµου. Έτσι, παρά τις όποιες διαϕορές στις υπολογιστικές απαιτήσεις των δύο αλγορίθµων,µια βελτιστοποίηση που αποσκοπεί στην ελαχιστοποίηση της επιβάρυνσης επικοινωνίας αναµένεταινα αποϕέρει µεγαλύτερα οϕέλη στην περίπτωση ενός αλγορίθµου µε αυξηµένες ανάγκες επικοινωνίας.


132 Πειραµατική ΑξιολόγησηΚατά δεύτερον, παρατηρούµε ότι η µείωση του χρόνου εκτέλεσης είναι µικρότερη στην περίπτωση τουΣυνόλου 2 απ' ότι στο Σύνολο 1, όπως και θεωρητικά αναµενόταν, καθώς το Σύνολο 2 είναι περισσότεροευαίσθητο στην αρχική καθυστέρηση διάδοσης σε σχέση µε το Σύνολο 1. Εντούτοις, σε όλες τιςπεριπτώσεις που εξετάστηκαν η προτεινόµενη τοπολογία απεικόνισης επιτυγχάνει σηµαντική µείωσητου χρόνου εκτέλεσης σε σχέση µε τη συνήθη τοπολογία ελάχιστης καθυστέρησης διάδοσης.1.214x4scheduling-aware topologycommunication-aware topology4x44x42x84x4 2x84x48x21.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.82x80.8Ratio0.6Ratio0.60.41x160.40.20.2016x256x16k32x256x16k64x256x16k 128x256x16k 512x128x16k016x256x16k32x256x16k64x256x16k 128x256x16k 512x128x16k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) ανάλυση χρόνου εκτέλεσης, Σύνολο 11.214x4scheduling-aware topologycommunication-aware topology4x44x48x24x48x24x4 4x41.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computationRatio0.80.616x116x1Ratio0.80.60.40.40.20.201kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k01kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(γ) συνολικός χρόνος εκτέλεσης, Σύνολο 2(δ) ανάλυση χρόνου εκτέλεσης, Σύνολο 2Σχήµα 6.9: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-XYT, διάϕοροι χώροι επαναλήψεων,16 διεργασίες, συστοιχία xenons)Στο σχήµα 6.9 αναπαρίστανται οι χρόνοι εκτέλεσης για τα Σύνολα 1 και 2 κατά την εκτέλεση τουαλγορίθµου DE-XYT µε 16 διεργασίες στη συστοιχία των xenons. Όπως και στη συστοιχία των twins,παρατηρούµε σηµαντική βελτίωση της επίδοσης του προγράµµατος, ιδιαίτερα για την περίπτωση περισσότεροασύµµετρων χώρων επαναλήψεων και για το Σύνολο 1. Συνεπώς, τα πλεονεκτήµατα τηςπροτεινόµενης τοπολογίας µπορούν να αναδειχθούν ακόµα και στα πιο προηγµένα τεχνικά χαρακτη-


6.3 Τοπολογία ∆ιεργασιών 133ριστικά της συστοιχίας των xenons.6.3.3 DE-TXYΤο µετροπρόγραµµα DE-TXY διαθέτει χώρο επαναλήψεων T ×X×Y , που αντιστοιχεί στην περίπτωσηαυξηµένης χωρικής πολυπλοκότητας σε σχέση µε την αντίστοιχη χρονική. Ουσιαστικά, η περίπτωσηαυτή εξετάστηκε αϕενός για λόγους πληρότητας και αϕετέρου για να διερευνηθεί η επίδραση που θαείχε η αντιµετάθεση των βρόχων, εϕόσον η τελευταία επιβαλλόταν από τους συσχετισµούς της χωρικήςκαι χρονικής πολυπλοκότητας του ϕυσικού προβλήµατος. Όπως έχει ήδη αναϕερθεί, υπό το εϕαρµοζό-µενο σχήµα δροµολόγησης συνίσταται η µετάθεση της µεγαλύτερης διάστασης του χώρου επαναλήψεωνστην πλέον εσωτερική θέση ϕωλιάσµατος, για να υπάρξει επαρκής εκµετάλλευση του ϕαινοµένουτης σωλήνωσης και να ελαχιστοποιηθεί η επιβάρυνση της αρχικής καθυστέρησης διάδοσης του υπολογισµού.Όµως, κατά πόσο η µεγαλύτερη αυτή διάσταση θα είναι κάποια από τις χωρικές διαστάσεις X,Y ή η χρονική διάσταση T , όπως είχαµε υποθέσει στη µορϕή DE-XYT του αλγορίθµου, εξαρτάται απότη σηµασιολογία και τις απαιτήσεις του αρχικού προβλήµατος διάχυσης που καλούµαστε να λύσουµε.Χώρος επαναλήψεων 16 διεργασίες 12 διεργασίες1K × 32 × 2K 16 × 1 12 × 11K × 64 × 2K 16 × 1 12 × 11K × 128 × 2K 16 × 1 12 × 11K × 256 × 2K 16 × 1 12 × 11K × 384 × 2K 12 × 11K × 512 × 2K 8 × 2Πίνακας 6.4: Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-TXY και συνολικόπλήθος διεργασιών 16 ή 12Στην περίπτωση του µετροπρογράµµατος DE-TXY εξετάστηκαν επιλεκτικά µόνο οι χώροι επαναλήψεωντου Συνόλου 2, καθότι, όπως ϕάνηκε στην προηγούµενη ενότητα, οι χώροι επαναλήψεωντου Συνόλου 1 επωϕελούνται περισσότερο από την εϕαρµογή της προτεινόµενης τοπολογίας απεικόνισηςσυγκριτικά µε τους χώρους του Συνόλου 2. Έτσι, εξετάστηκαν οι χώροι επαναλήψεων 1K ×{32, 64, 128, 256, 384/512} × 2K τόσο για 12 όσο και για 16 διεργασίες στη συστοιχία twins. Οι προτεινόµενεςτοπολογίες απεικόνισης παρέχονται στον πίνακα 6.4, ενώ οι αντίστοιχοι κανονικοποιηµένοιχρόνοι εκτέλεσης αναπαρίστανται µε τα ραβδογράµµατα του σχήµατος 6.10. Στην περίπτωση των 12διεργασιών γίνεται σύγκριση µε την τοπολογία 4 × 3, ενώ για τις 16 διεργασίες χρησιµοποιείται ωςτοπολογία αναϕοράς η 4 × 4.Όπως και στην περίπτωση της XYT µορϕής του αλγορίθµου, παρατηρούµε σηµαντική βελτίωσηστους χρόνους εκτέλεσης κατά την υιοθέτηση της εκάστοτε προτεινόµενης τοπολογίας απεικόνισης.


134 Πειραµατική Αξιολόγηση1.2scheduling-aware topologycommunication-aware topology1.2scheduling-aware topologycommunication-aware topology14x34x34x312x14x3 12x14x3 12x114x44x44x416x14x4 16x14x4 8x2Ratio0.80.612x112x1Ratio0.80.616x116x10.40.40.20.201kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx384x2k01kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης, 12 διεργασίες(β) συνολικός χρόνος εκτέλεσης, 16 διεργασίεςΣχήµα 6.10: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-TXY, διάϕοροι χώροιεπαναλήψεων, 16 και 12 διεργασίες, συστοιχία twins)1.214x4scheduling-aware topologycommunication-aware topology4x44x416x14x4 16x14x4 8x21.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.816x10.8Ratio0.616x1Ratio0.60.40.40.20.201kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k01kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης(β) ανάλυση χρόνου εκτέλεσηςΣχήµα 6.11: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (DE-TXY, διάϕοροι χώροιεπαναλήψεων, 16 διεργασίες, συστοιχία xenons)Συµπεραίνουµε συνεπώς ότι για τον αλγόριθµο της διάχυσης η τεχνική επιλογής κατάλληλης τοπολογίαςαπεικόνισης για την ελαχιστοποίηση του όγκου επικοινωνίας είναι ιδιαίτερα επιθυµητή, κυρίωςγια τους περισσότερο ασύµµετρους χώρους επαναλήψεων. Παρόµοια είναι τα αποτελέσµατα και γιατη συστοιχία των xenons µε 16 διεργασίες, όπως άλλωστε προκύπτει και από την εποπτεία του σχήµατος6.11.


6.3 Τοπολογία ∆ιεργασιών 1356.3.4 Adv2DΠεδίο εϕαρµογής 16 διεργασίες2 × 10 × 10 2 × 82 × 20 × 20 1 × 164 × 10 × 10 2 × 84 × 20 × 20 2 × 86 × 20 × 20 2 × 88 × 20 × 20 2 × 8Πίνακας 6.5: Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα Adv2D και συνολικόπλήθος διεργασιών 16Ratio1.210.80.64x4scheduling-aware topologycommunication-aware topology2x84x41x164x42x84x42x84x42x84x42x8Ratio1.210.80.6scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.40.40.20.202x10x102x20x204x10x104x20x206x20x208x20x2002x10x102x20x204x10x104x20x206x20x208x20x20(α) συνολικός χρόνος εκτέλεσης, συστοιχία twins(β) ανάλυση χρόνου εκτέλεσης, συστοιχία twins1.214x4scheduling-aware topologycommunication-aware topology4x44x42x84x42x84x4 2x84x4 2x81.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.82x81x160.8Ratio0.6Ratio0.60.40.40.20.202x10x102x20x204x10x104x20x206x20x208x20x2002x10x102x20x204x10x104x20x206x20x208x20x20(γ) συνολικός χρόνος εκτέλεσης, συστοιχία xenons(δ) ανάλυση χρόνου εκτέλεσης, συστοιχία xenonsΣχήµα 6.12: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (Adv2D, διάϕοροι χώροι επαναλήψεων,16 διεργασίες, συστοιχίες twins και xenons)


136 Πειραµατική ΑξιολόγησηΤο µετροπρόγραµµα Adv2D αποτελεί µια ολοκληρωµένη παράλληλη µέθοδο επίλυσης της διακριτοποιηµένηςεξίσωσης µεταϕοράς σε δισδιάστατη επιϕάνεια. Για την αξιολόγηση της επίδοσης επιλέξαµετους χώρους του πίνακα 6.5. Όλοι οι χώροι είναι της µορϕής X × Y × T , όπου X × Y το ϕυσικόπεδίο εϕαρµογής και T ο πραγµατικός χρόνος παρακολούθησης του ϕαινοµένου. Θα πρέπει να τονιστείότι οι τιµές αυτές αντιστοιχούν σε πραγµατικά πεδία εϕαρµογής (application domains) και πραγµατικούςχρόνους, και όχι σε αλγοριθµικούς χώρους επαναλήψεων. Το πλέγµα που σαρώνεται αλγοριθµικάκατά τον υπολογισµό των τιµών καθορίζεται σε δεύτερη ϕάση µέσω της επιλογής των παραµέτρωνδιακριτοποίησης ∆x, ∆y και ∆t. Επιλέγοντας αυθαίρετα ∆x = ∆y = 0.1 για οµοιόµορϕο χωρικόπλέγµα, λόγω της (6.1) θεωρούµε για το κβάντο χρόνου την τιµή ∆t = 0.001, ώστε να διασϕαλιστείη ευστάθεια της µεθόδου επίλυσης βάσει της συνθήκης Courant.Το σχήµα 6.12 απεικονίζει τους χρόνους εκτέλεσης για το µετροπρόγραµµα Adv2D. Σε όλες τις περιπτώσειςγίνεται σύγκριση µε την 4×4 τοπολογία διεργασιών, ενώ καταγράϕονται µετρήσεις τόσο γιατη συστοιχία twins όσο και για εκείνη των xenons. Για κάθε συστοιχία και χώρο επαναλήψεων παρουσιάζεταικαι η ποιοτική ανάλυση του συνολικού χρόνου εκτέλεσης σε χρόνο υπολογισµού και χρόνοεπικοινωνίας, ώστε να καταδειχθεί ότι το συγκριτικό πλεονέκτηµα της εκάστοτε προτεινόµενης τοπολογίαςµπορεί πράγµατι να αποδοθεί σε µείωση του συνολικού χρόνου επικοινωνίας. Όπως σε όλα ταπροηγούµενα µετροπρογράµµατα, έτσι και στην περίπτωση του µετροπρογράµµατος Adv2D παρατηρήθηκανσηµαντικές βελτιώσεις της επίδοσης του παράλληλου προγράµµατος κατά την υιοθέτηση τηςτοπολογίας ελάχιστης επικοινωνίας, που κυµαίνονται ανάλογα µε το χώρο επαναλήψεων µεταξύ 7-34%για τη συστοιχία των twins και 1-22% για τη συστοιχία των xenons µε το ταχύτερο δίκτυο διασύνδεσης.6.3.5 Adv3DΕιδικά για τη βελτιστοποίηση που αϕορά στην επιλογή κατάλληλης τοπολογίας διεργασιών υλοποιήθηκεκαι αξιολογήθηκε επιπλέον ο διακριτοποιηµένος αλγόριθµος επίλυσης της εξίσωσης µεταϕοράςσε τρισδιάστατο χωρίο X × Y × Z. Η σκοπιµότητα µιας τέτοιας επιλογής έγκειται στην ιδιοµορϕίατης προτεινόµενης βελτιστοποίησης, που από µαθηµατικής πλευράς αναλύει το δεδοµένο πλήθος τωνδιαθέσιµων διεργασιών σε ένα κατάλληλο γινόµενο N παραγόντων, όπου N + 1 η διάσταση του υπόεξέταση αλγορίθµου. Έχοντας µέχρι στιγµής εξετάσει αποκλειστικά τρισδιάστατους αλγορίθµους ϕωλιασµένωνβρόχων, περιοριστήκαµε στην επαλήθευση της επίδοσης της µεθοδολογίας για γινόµεναδύο παραγόντων, που αντιστοιχούν σε δισδιάστατη καρτεσιανή τοπολογία διεργασιών. Στην ενότητααυτή θα εξεταστεί επιπλέον η επίδραση της προτεινόµενης βελτιστοποίησης σε ένα τετραδιάσταστοαλγόριθµο ϕωλιασµένων βρόχων, όπου οι δυνατότητες επιλογής της τρισδιάστατης καρτεσιανής τοπολογίαςδιεργασιών είναι σαϕώς περισσότερες.Τα ϕυσικά πεδία εϕαρµογής που επελέγησαν για την πειραµατική αξιολόγηση, µαζί µε τις προτει-


6.3 Τοπολογία ∆ιεργασιών 137Πεδίο εϕαρµογής 16 διεργασίες2 × 10 × 10 × 100 1 × 4 × 44 × 10 × 10 × 100 1 × 4 × 44 × 10 × 20 × 100 1 × 4 × 410 × 2 × 20 × 100 4 × 1 × 410 × 4 × 20 × 100 4 × 1 × 4Πίνακας 6.6: Προτεινόµενες τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα Adv3D και συνολικόπλήθος διεργασιών 161.212x2x4scheduling-aware topologycommunication-aware topology2x2x41x4x42x2x41x4x42x2x42x2x44x1x41.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.81x4x44x1x40.8Ratio0.6Ratio0.60.40.40.20.202x10x10x100 4x10x10x100 4x10x20x100 10x2x20x100 10x4x20x10002x10x10x100 4x10x10x100 4x10x20x100 10x2x20x100 10x4x20x100(α) συνολικός χρόνος εκτέλεσης, συστοιχία twins(β) ανάλυση χρόνου εκτέλεσης, συστοιχία twins1.212x2x4scheduling-aware topologycommunication-aware topology2x2x41x4x42x2x41x4x42x2x42x2x4 4x1x41.21scheduling-aware topology, communicationscheduling-aware topology, computationcommunication-aware topology, communicationcommunication-aware topology, computation0.81x4x44x1x40.8Ratio0.6Ratio0.60.40.40.20.202x10x10x100 4x10x10x100 4x10x20x100 10x2x20x100 10x4x20x10002x10x10x100 4x10x10x100 4x10x20x100 10x2x20x100 10x4x20x100(γ) συνολικός χρόνος εκτέλεσης, συστοιχία xenons(δ) ανάλυση χρόνου εκτέλεσης, συστοιχία xenonsΣχήµα 6.13: Σύγκριση συνήθους και προτεινόµενης τοπολογίας διεργασιών (Adv3D, διάϕοροι χώροι επαναλήψεων,16 διεργασίες, συστοιχίες twins και xenons)νόµενες τοπολογίες σε κάθε περίπτωση παρέχονται στον πίνακα 6.6. Σε όλες τις περιπτώσεις έγινεσύγκριση µε τη 2 × 2 × 4 τοπολογία, που αϕενός ελαχιστοποιεί την αρχική καθυστέρηση διάδοσηςγια 16 διεργασίες και αϕετέρου εναρµονίζεται µε τα εξεταζόµενα πεδία εϕαρµογής, για τα οποία ισχύει


138 Πειραµατική ΑξιολόγησηZ ≥ X, Y . Όλοι οι παρεχόµενοι χώροι είναι της µορϕής X × Y × Z × T και επελέγησαν µε την υπόθεσητης παρακολούθησης του ϕαινοµένου σε ορθογώνιο χωρίο {2, 4, 10} × {2, 4, 10} × {10, 20} για100 χρονικές στιγµές. Στην πράξη, εξετάστηκαν ακόµα περισσότεροι συνδυασµοί, αλλά παρουσιάζονταιµόνο εκείνες οι περιπτώσεις που η προτεινόµενη τοπολογία απεικόνισης διέϕερε από τη 2 × 2 × 4τοπολογία ελάχιστης καθυστέρησης διάδοσης. Για τις παραµέτρους διακριτοποίησης θεωρήσαµε αυθαίρεταότι ∆x = ∆y = ∆z = 0.5, οπότε βάσει της (6.3) επιλέγουµε κβάντο χρόνου ∆t = 0.003 γιατη διασϕάλιση της ευστάθειας της µεθόδου.Τα πειραµατικά αποτελέσµατα για το µετροπρόγραµµα Adv3D απεικονίζονται στο σχήµα 6.13. Συνολικά,ανάλογα µε το συγκεκριµένο χώρο επαναλήψεων παρατηρήσαµε βελτίωση της επίδοσης µεταξύ8-23% για τη συστοιχία των twins και 6-21% για τη συστοιχία των xenons. Τα αποτελέσµατα αυτάείναι ιδιαίτερα σηµαντικά και έχουν µεγάλη πρακτική αξία, ιδίως αν αναλογιστεί κανείς τη σχετικάαυξηµένη δυσκολία στην επιλογή κατάλληλης τρισδιάστατης τοπολογίας διεργασιών από το µεγάλοπλήθος έγκυρων συνδυασµών.6.3.6 ΣυµπεράσµαταΣυνοψίζοντας, η αξιοποίησης της πληροϕορίας του χώρου επαναλήψεων και των εξαρτήσεων δεδοµένωνενός αλγορίθµου στον καθορισµό κατάλληλης τοπολογίας διεργασιών προς απεικόνιση του ισοδύναµουπαράλληλου προγράµµατος κρίνεται ιδιαίτερα σηµαντική όταν:• ο αλγόριθµος εµϕανίζει ασυµµετρία όσον αϕορά στις εξαρτήσεις δεδοµένων ή/και τις διαστάσειςτου χώρου επαναλήψεων• ο αλγόριθµος επιβάλλει υψηλές απαιτήσεις επικοινωνίας σε σχέση µε τις αντίστοιχες απαιτήσειςυπολογισµού, για δεδοµένη υποδοµή υλικού και λογισµικού6.4 Εξισορρόπηση Φορτίου ΝηµάτωνΤο δεύτερο σκέλος της πειραµατικής διαδικασίας εξετάζει την αξιολόγηση της επίδοσης των προτεινό-µενων σχηµάτων εξισορρόπησης ϕορτίου στα υβριδικά προγραµµατιστικά µοντέλα. Για το σκοπό αυτόχρησιµοποιήθηκαν τα µετροπρογράµµατα ADI, DE-XYT, DE-TXY και Adv2D της ενότητας 6.3 καιελήϕθησαν µετρήσεις του συνολικού χρόνου παράλληλης εκτέλεσης στις συστοιχίες twins και xenons.Στην παρούσα ενότητα θα συγκρίνουµε τα προτεινόµενα υβριδικά παράλληλα προγραµµατιστικά µοντέλα,ενώ στην ενότητα 6.5 θα επιχειρήσουµε επιπλέον σύγκριση και µε το µοντέλο ανταλλαγής µηνυ-µάτων. Η διάκριση αυτή γίνεται αϕενός για να εστιάσουµε στην αποτελεσµατικότητα των σχηµάτωνεξισορρόπησης ϕορτίου ως προς αυτό το υβριδικό µοντέλο καθαυτό και αϕετέρου γιατί η απευθείας


6.4 Εξισορρόπηση Φορτίου Νηµάτων 139σύγκριση µεταξύ µοντέλου ανταλλαγής µηνυµάτων και υβριδικών προγραµµατιστικών µοντέλων, µε ήχωρίς την εϕαρµογή κάποιας στρατηγικής εξισορρόπησης ϕορτίου των νηµάτων, αντανακλά σε µεγάλοβαθµό τη σχετική επίδοση των χρησιµοποιούµενων βιβλιοθηκών ανταλλαγής µηνυµάτων και πολυνη-µατικής επεξεργασίας. Αναϕορικά µε το τελευταίο σηµείο, είναι προϕανές ότι η διαδεδοµένη χρήσητης βιβλιοθήκης MPICH και η επιτυχηµένη παραλληλοποίηση µέσω αυτής πληθώρας εϕαρµογών σεσυστοιχίες χιλιάδων επεξεργαστών αντιπαρατίθεται µε τη σαϕώς πιο περιορισµένη βελτιστοποίηση τηςυποστήριξης του προτύπου OpenMP στο µεταγλωττιστή C/C++ της Intel για την ανάδειξη της επίδοσηςυβριδικών προγραµµάτων.Κατά τη θεωρητική µοντελοποίηση της συµπεριϕοράς του υϕιστάµενου υλικού και λογισµικού υιοθετείταιµια απλουστευµένη προσέγγιση για τον ορισµό των ποσοτήτων t comp και t comm της (5.2).Αναϕορικά µε την παράµετρο t comp , θεωρούµε ότι το κόστος που σχετίζεται µε τον υπολογισµό x επαναλήψεωνισούται προσεγγιστικά µε x ϕορές επί το µέσο κόστος που απαιτείται για τον υπολογισµόµίας επανάληψης. Επίσης, το κόστος επικοινωνίας t comm προσεγγίζεται ως υπέρθεση µιας σταθερήςσυνιστώσας αρχικοποίησης και ενός γραµµικού όρου που είναι ανάλογος προς το µέγεθος s του µηνύ-µατος και εκϕράζει τη δυνατότητα παροχής του δικτύου διασύνδεσης σε επίπεδο εϕαρµογής. Τυπικάορίζουµεt comp (x) = xt comp (1) (6.4)t comm (s) =st startup +B sustained(6.5)όπου t comp (1) ο µέσος χρόνος υπολογισµού µίας επανάληψης και t startup , B sustained η αρχική καθυστέρησηδιάδοσης και ο ρυθµός παροχής του δικτύου διασύνδεσης, αντίστοιχα. ∆εδοµένου ότι ωςπρωταρχικό στόχο θέσαµε τη διατήρηση της απλότητας και της εϕαρµοσιµότητας στη µοντελοποίησητων αρχιτεκτονικών παραµέτρων, αποϕύγαµε τη συνεκτίµηση περισσότερο πολύπλοκων ϕαινοµένων,όπως αυτά που σχετίζονται µε τη συµπεριϕορά της κρυϕής µνήµης ή την ακριβή µοντελοποίηση της επικοινωνίας.Έτσι, παρότι είχε προηγηθεί µελέτη του πηγαίου κώδικα του MPICH µε στόχο την εις βάθοςκατανόηση της λειτουργίας της ADI-2 εικονικής συσκευής ch p4, προτιµήθηκε η µη ενσωµάτωση τωνπορισµάτων της µελέτης αυτής στο θεωρητικό µοντέλο, ώστε να διατηρηθεί η γενικότητα της µεθόδου.Το ίδιο ισχύει και για τα ϕαινόµενα κρυϕής µνήµης κατά τη µοντελοποίηση της ιεραρχίας µνήµης,καθώς κάτι τέτοιο θα απαιτούσε µια σχετικά πολύπλοκη ανάλυση των προσπελάσεων ανάγνωσης καιεγγραϕής του προγράµµατος ως προς τη δεδοµένη αρχιτεκτονική. Μια ακριβέστερη µοντελοποίησητων παραµέτρων αυτών θα οδηγούσε πιθανότατα σε αποδοτικότερα, αλλά και περισσότερο σύνθετα,σχήµατα εξισορρόπησης ϕορτίου.Μια άλλη βασική δυσκολία που αντιµετωπίσαµε ήταν η µοντελοποίηση της TCP/IP επικοινωνίας


140 Πειραµατική Αξιολόγησηµέσω sockets, στην οποία καταϕεύγει τελικά η υλοποίηση MPICH για την ανταλλαγή µηνυµάτων µέσωτου δικτύου E<strong>the</strong>rnet. Κατά τη θεωρητική εκτίµηση του κόστους επικοινωνίας υποθέσαµε διακριτές µηεπικαλυπτόµενες ϕάσεις υπολογισµού και επικοινωνίας και σχετικά υψηλό ρυθµό παροχής του δικτύουδιασύνδεσης, όπως αναλύθηκε στην ενότητα 4.5. Εντούτοις, η παραδοχή αυτή αϕενός υποτιµά τοκόστος επικοινωνίας για σχετικά µικρά µηνύµατα, που επιβαρύνονται σηµαντικά από την αρχική καθυστέρησηδιάδοσης του δικτύου και επιτυγχάνουν χαµηλό ρυθµό παροχής, ενώ αϕετέρου υπερτιµά τοαντίστοιχο κόστος για σχετικά µεγάλα µηνύµατα, για τα οποία η µονάδα DMA αναλαµβάνει σηµαντικότµήµα της επικοινωνίας, ανακουϕίζοντας έτσι τον επεξεργαστή και επιτρέποντας την επικάλυψη τηςεπικοινωνίας µε ωϕέλιµο υπολογισµό. Καθώς όµως ως πρωταρχική προτεραιότητα θέσαµε την ποιοτικήαξιολόγηση της αποδοτικότητας και της χρηστικότητας των επιµέρους σχηµάτων εξισορρόπησηςϕορτίου, προτιµήθηκε µια προσέγγιση απλουστευµένης θεωρητικής µοντελοποίησης.Έτσι, στην ανάλυσή µας θεωρήσαµε τις τιµές του πίνακα 6.7 για τις παραµέτρους t comp , t startupκαι B sustained των (6.4) και (6.5). Οι τιµές του µέσου χρόνου υπολογισµού ανά επανάληψη προσδιορίστηκαναπό δοκιµαστική εκτέλεση του εκάστοτε µετροπρογράµµατος για ένα χώρο επαναλήψεων πουήταν κατά πολλές τάξεις µεγέθους µικρότερος από τους πειραµατικούς χώρους επαναλήψεων που θαεξεταστούν, ώστε η όλη διαδικασία να απαιτεί αµελητέο χρόνο σε σχέση µε τους χρόνους εκτέλεσηςτων πειραµάτων. Η αρχική καθυστέρηση του δικτύου εξισώθηκε προσεγγιστικά µε το χρόνο roundtrip(round-trip time), όπως είθισται να γίνεται σε αυτήν την περίπτωση. Τέλος, ο ρυθµός παροχήςδικτύου υπολογίστηκε µε χρήση µετρήσεων ping-pong σε δοκιµαστικό πρόγραµµα MPI. Από τις υπολογισθείσεςτιµές για το ρυθµό παροχής του δικτύου, ως B sustained θεωρήσαµε αυθαίρετα την τιµήπου αντιστοιχεί σε ένα ενδιάµεσο µέγεθος µηνύµατος, έστω 32 KB. Άλλωστε, το MPICH διαϕοροποιείτο πρωτόκολλο επικοινωνίας για µεγέθη µηνύµατος µικρότερα από 1024 bytes (short), µεταξύ 1024 και128000 bytes (eager) και µεγαλύτερα από 128000 bytes (rendezvous, βλέπε και παράρτηµα Γ). Συνεπώς,η τιµή 32 KB, παρότι αυθαίρετη, αποτελεί µια εύλογη µέση τιµή µεγέθους µηνύµατος.Παράµετρος Συστοιχία twins Συστοιχία xenonsADI 238 75Χρόνος υπολογισµού DE-XYT 485 120επανάληψης t comp (nsec) DE-TXY 390 100Adv2D 270 115Αρχική καθυστέρηση δικτύου t startup (µsec) 107 80Ρυθµός παροχής δικτύου B sustained (MB/s) 11.92 150Πίνακας 6.7: Παράµετροι εξισορρόπησης ϕορτίου για συστοιχίες twins και xenons.Στο σηµείο αυτό µπορούµε να συνοψίσουµε τα βασικότερα µειονεκτήµατα των απλοποιήσεων πουυιοθετήθηκαν κατά τη µοντελοποίηση της συµπεριϕοράς του συστήµατος για την εϕαρµογή των τε-


6.4 Εξισορρόπηση Φορτίου Νηµάτων 141χνικών εξισορρόπησης ϕορτίου:• Θεωρήσαµε ότι ο χρόνος υπολογισµού που σχετίζεται µε τις επαναλήψεις ενός υπερκόµβου ισούταιµε το µέσο χρόνο που απαιτείται για µία επανάληψη πολλαπλασιασµένο µε το συνολικό πλήθοςτων επαναλήψεων. Εντούτοις, κάτι τέτοιο αντιβαίνει µε τις αρχιτεκτονικές αρχές της ιεραρχίαςµνήµης, καθώς ο χρόνος προσπέλασης δεδοµένων δεν ακολουθεί το γραµµικό µοντέλο καιεξαρτάται από το κατά πόσο το δεδοµένο που προσπελάζουµε ϕυλάσσεται σε κάποιο καταχωρητή,στην κρυϕή µνήµη ή στην κύρια µνήµη.• Επιπλέον, για κάθε µετροπρόγραµµα θεωρούµε έναν ενιαίο, αντιπροσωπευτικό µέσο χρόνο υπολογισµούανά επανάληψη, ανεξαρτήτως του χώρου επαναλήψεων που εξετάζεται στο εκάστοτεπείραµα. Η παραδοχή αυτή επίσης αγνοεί την ιεραρχία µνήµης, καθώς η τιµή του µέσου χρόνουυπολογισµού ανά επανάληψη διαϕοροποιείται ανάλογα µε το δοκιµαστικό χώρο επαναλήψεωνπου θα επιλέξουµε για τον πειραµατικό προσδιορισµό της. Παρότι ενδεχοµένως θα µπορούσαµεγια κάθε περίπτωση πραγµατικού χώρου επαναλήψεων να επιλέγουµε έναν κατάλληλο δοκιµαστικό,που σε µικρή κλίµακα να διατηρεί ποιοτικά τα µορϕολογικά χαρακτηριστικά του πρώτου,επιλέξαµε να υπολογίσουµε το µέσο χρόνο σε όλες τις περιπτώσεις µε τη βοήθεια ενός κοινούδοκιµαστικού χώρου επαναλήψεων, για να διατηρήσουµε κατά το δυνατόν την απλότητα τηςπροτεινόµενης µεθοδολογίας.• Η επιλογή της γραµµικής προσέγγισης για το κόστος επικοινωνίας υπό τη µορϕή t startup + s ×t data αποτελεί υπεραπλούστευση του τρόπου λειτουργίας της επικοινωνίας µέσω ανταλλαγήςµηνυµάτων. Σε κατάλληλα µεγέθη µηνυµάτων, ο επεξεργαστής προγραµµατίζει τη µηχανή ΆµεσηςΠροσπέλασης Μνήµης (Direct Memory Access - DMA) του δικτυακού προσαρµογέα µε όλεςτις πληροϕορίες για τη µεταϕορά των δεδοµένων. Τη µεταϕορά αυτή µπορεί ακολούθως ναδιεκπεραιώσει ο προσαρµογέας, επιτρέποντας έτσι ταυτόχρονα στον επεξεργαστή να προχωρήσειστην εκτέλεση άλλων εντολών. Εντούτοις, κατά την αποστολή ενός µηνύµατος, η δικτυακήστοίβα πρωτοκόλλων TCP/IP προδιαγράϕει την αντιγραϕή των δεδοµένων επικοινωνίας από τοχώρο χρήστη στο χώρο πυρήνα και τη µεταγωγή περιβάλλοντος στον τελευταίο, όπου παράλληλαµε την αντιγραϕή των δεδοµένων σε µια νέα θέση εκτελείται επιπλέον ο υπολογισµός τουTCP checksum αθροίσµατος και η προσθήκη TCP/IP επικεϕαλίδων. Η µηχανή DMA ενδέχεταινα αναλάβει την αντιγραϕή των δεδοµένων από το χώρο πυρήνα στο δικτυακό προσαρµογέα γιατη µετέπειτα αποστολή τους, είναι όµως σαϕές ότι η διαδικασία της επικοινωνίας έχει ήδη απασχολήσεισε µεγάλο βαθµό τον επεξεργαστή, ενώ δεν είναι εύκολο να προβλεϕθεί θεωρητικάκατά πόσο ο τελευταίος θα διευκολυνθεί τελικά από τη µηχανή DMA. Άλλωστε, όπως αναλύεταικαι στο παράρτηµα Γ, η ίδια η βιβλιοθήκη MPICH αϕενός διατηρεί έλεγχο ροής των µηνυµά-


142 Πειραµατική Αξιολόγησητων, βάσει του οποίου αναµένει επιβεβαίωση λήψης ανά συγκεκριµένο αριθµό εκκρεµών πακέτων4M2 4U ¡;k!C¦$£4M2 4©U C0U:MC£©U(στην τρέχουσα υλοποίηση, πακέτα Lστον αποστολέα και πακέταστον παραλήπτη), ενώ αϕετέρου διαχειρίζεται τις διαδικασίες αποστολής και λήψηςLµέσωτης διεπαϕής των sockets για TCP/IP δίκτυα και τριών διαϕορετικών σηµασιολογικών πρωτοκόλλων(short/eager/rendezvous). Συνεκτιµώντας όλα τα παραπάνω, αποϕασίσαµε να υιοθετήσουµεγραµµικό µοντέλο για το κόστος επικοινωνίας µε σχετικά µεγάλο ρυθµό παροχής δικτύου,καθώς η προσέγγιση αυτή συνδυάζει τη θεωρητική απλότητα µε την παραδοχή µιας κατά κανόναεύρυθµης και αποδοτικής δικτυακής λειτουργίας.6.4.1 ADIΤα πειραµατικά αποτελέσµατα της αξιολόγησης των σχηµάτων εξισορρόπησης ϕορτίου στη συστοιχίαtwins για τη µέθοδο ADI και διάϕορους χώρους επαναλήψεων απεικονίζονται στο σχήµα 6.14. Τα αποτελέσµαταείναι κανονικοποιηµένα ως προς τους χρόνους εκτέλεσης του υβριδικού µοντέλου λεπτούκόκκου για διευκόλυνση της ποσοστιαίας σύγκρισης. Επιπλέον, µετρήσεις για µεταβλητό κόκκο παραλληλισµού,ή ισοδύναµα µεταβλητό ύψος υπερκόµβου z, παρέχονται στο σχήµα 6.15 για τους ίδιουςχώρους επαναλήψεων. Σε όλες τις περιπτώσεις χρησιµοποιήθηκαν 8 διεργασίες στους ισάριθµους SMPκόµβους της συστοιχίας, ενώ σε κάθε SMP κόµβο κάθε διεργασία εκκινεί 2 νήµατα υπολογισµού. Γιακάθε χώρο επαναλήψεων, η τοπολογία διεργασιών που εϕαρµόστηκε προκύπτει µε κριτήριο την ελαχιστοποίησητου όγκου των δεδοµένων επικοινωνίας και αναγράϕεται στον πίνακα 6.8. Συνεπώς, έχειήδη εϕαρµοστεί σε πρώτο επίπεδο η βελτιστοποίηση που αϕορά στην ελαχιστοποίηση του συνολικούόγκου των δεδοµένων επικοινωνίας, καθώς όπως ϕάνηκε στην ενότητα 6.3 η εν λόγω τεχνική µειώνεισηµαντικά τους συνολικούς χρόνους εκτέλεσης. Για την τοπολογία των νηµάτων εξετάστηκαν και οιδύο εναλλακτικές δυνατότητες για δύο νήµατα, δηλαδή τόσο η 1 × 2 όσο και η 2 × 1 τοπολογία, και σεκάθε περίπτωση επιλέγεται εκείνη µε την καλύτερη επίδοση. Η ευελιξία στην επιλογή τοπολογίας νη-µάτων αποτελεί ένα από τα πλεονεκτήµατα του υβριδικού µοντέλου, και καθώς εξαρτάται πρωτίστωςαπό την εκµετάλλευση της τοπικότητας αναϕοράς για την αξιοποίηση της ιεραρχίας µνήµης δεν θα µαςαπασχολήσει στο πλαίσιο της παρούσας εργασίας.Από την επισκόπηση των πειραµατικών αποτελεσµάτων παρατηρούµε ότι τα σχήµατα εξισορρόπησηςϕορτίου που επιτυγχάνουν την καλύτερη απόδοση είναι εκείνα της µεταβλητής και της δυναµικήςεξισορρόπησης. Συνολικά, τα σχήµατα αυτά αποτελούν την πιο αξιόπιστη λύση για επίτευξη ελάχιστουχρόνου εκτέλεσης µε χρήση υβριδικού µοντέλου, καθώς επιτυγχάνουν σε όλες τις περιπτώσεις καλύτερηεπίδοση σε σχέση τόσο µε το υβριδικό µοντέλο λεπτού κόκκου όσο και µε το αντίστοιχο funneledχονδρού κόκκου χωρίς εξισορρόπηση ϕορτίου. Έτσι, για τη συστοιχία των twins παρατηρούµε ότι τοσχήµα µεταβλητής εξισορρόπησης ϕορτίου επιτυγχάνει µείωση του χρόνου εκτέλεσης κατά 2-8% σε


6.4 Εξισορρόπηση Φορτίου Νηµάτων 143Χώρος επαναλήψεων Τοπολογία διεργασιών16 × 256 × 16K 1 × 832 × 256 × 16K 1 × 864 × 256 × 16K 1 × 8128 × 256 × 16K 2 × 4256 × 256 × 16K 2 × 4Πίνακας 6.8: Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα ADI και συνολικό πλήθος διεργασιών81.051fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balanceRatio0.950.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16kΣχήµα 6.14: Σύγκριση υβριδικών µοντέλων (ADI, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες, 2 νήµαταανά διεργασία, συστοιχία twins)σχέση τόσο µε το µοντέλο λεπτού κόκκου όσο και µε εκείνο του χονδρού κόκκου, ενώ το σχήµα δυνα-µικής εξισορρόπησης ϕορτίου επιτυγχάνει βελτίωση στο εύρος 5-10%. Το σχήµα σταθερής εξισορρόπησηςϕορτίου επιτυγχάνει σαϕώς µικρότερη ποσοστιαία βελτίωση στο εύρος 2-5%, καθώς σε όλες τιςτοπολογίες διεργασιών του πίνακα 6.8 ένα σηµαντικό ποσοστό των διεργασιών είναι συνοριακές, γιατις οποίες η εϕαρµογή σταθερής εξισορρόπησης ϕορτίου υπερτιµά το κόστος επικοινωνίας που τουςαναλογεί.Το απλό funneled υβριδικό µοντέλο χονδρού κόκκου αδυνατεί να υπερκεράσει την επίδοση τουµοντέλου λεπτού κόκκου, αποτυγχάνοντας έτσι να µετουσιώσει τα θεωρητικά του πλεονεκτήµατα σεοϕέλη απόδοσης. Το γεγονός αυτό οϕείλεται στη µη αποδοτική εγγενή κατανοµή του συνολικού ϕορ-


144 Πειραµατική Αξιολόγησητίου µεταξύ των νηµάτων, καθώς το πρωτεύον νήµα είναι περισσότερο επιβαρυµένο σε σχέση µε ταυπόλοιπα νήµατα της διεργασίας και καθορίζει τελικά το χρόνο που απαιτείται για την ολοκλήρωσηενός βήµατος της παράλληλης εκτέλεσης υπό τη χρονοδροµολόγηση υπερεπιπέδων.1.71.61.5Total execution time <strong>for</strong> 16x256x16k space<strong>and</strong> 8 processes x 2 threads/processfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance65.85.6Total execution time <strong>for</strong> 64x256x16k space<strong>and</strong> 8 processes x 2 threads/processfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balanceTime (sec)1.4Time (sec)5.45.21.351.24.81.10 50 100 150 200Tile Height4.60 50 100 150 200Tile Height(α) 16 × 256 × 16K(β) 64 × 256 × 16K1110.5Total execution time <strong>for</strong> 128x256x16k space<strong>and</strong> 8 processes x 2 threads/processfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance2221Total execution time <strong>for</strong> 256x256x16k space<strong>and</strong> 8 processes x 2 threads/processfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balanceTime (sec)109.5Time (sec)2019eagerrendezvous1890 50 100 150 200Tile Height(γ) 128 × 256 × 16K0 50 100 150 200Tile Height(δ) 256 × 256 × 16KΣχήµα 6.15: Σύγκριση υβριδικών µοντέλων για µεταβλητό κόκκο παραλληλισµού (ADI, 8 διεργασίες,2 νήµατα ανά διεργασία, συστοιχία twins). Στο χώρο επαναλήψεων 256 × 256 × 16k σηµειώνεται τοκατώϕλι µεταξύ του eager και του rendezvous πρωτοκόλλου επικοινωνίας του MPICH, που συνοδεύεταιµε σηµαντική πτώση στην απόδοση. Σε όλους τους χώρους επαναλήψεων και για όλα τα ύψη υπερκόµβουυπερέχουν τα σχήµατα µεταβλητής και δυναµικής εξισορρόπησης ϕορτίου.Στο σχήµα 6.15 απεικονίζονται αναλυτικές µετρήσεις του συνολικού χρόνου εκτέλεσης για όλατα υβριδικά µοντέλα και εύρος υψών υπερκόµβου στην περιοχή 2...200. Παρατηρούµε ότι για όλοτο εξεταζόµενο εύρος υψών υπερκόµβου τα σχήµατα µεταβλητής και δυναµικής εξισορρόπησης ϕορτίουυπερτερούν, καθώς παρέχουν τους ελάχιστους χρόνους εκτέλεσης. Είναι πάντως σηµαντικό να


6.4 Εξισορρόπηση Φορτίου Νηµάτων 145προσθέσουµε πως σε όλες τις περιπτώσεις στους χρόνους εκτέλεσης επικρατεί το κοµµάτι του υπολογισµούέναντι του τµήµατος της επικοινωνίας λόγω της ϕύσης της εϕαρµογής. Συνεπώς, τα οϕέληπου αποκοµίζουµε µε την εϕαρµογή εξισορρόπησης ϕορτίου είναι ιδιαίτερα σηµαντικά, δεδοµένου ότιπροέρχονται από τεχνική που αποσκοπεί ουσιαστικά στην άµβλυνση της επιβάρυνσης του κόστουςεπικοινωνίας για το πρωτεύον νήµα.Παρατηρούµε ότι στο σχήµα 6.15(δ) εµϕανίζεται µια σηµαντική πτώση της απόδοσης σε όλα ταυβριδικά µοντέλα για ύψη υπερκόµβου µεγαλύτερα από την τιµή z = 125. Το ϕαινόµενο αυτό παρατηρήθηκεσε όλους τους χώρους επαναλήψεων για κάποιες τιµές του z και οϕείλεται στη διαϕοροποίησητου πρωτοκόλλου επικοινωνίας που πραγµατοποιεί στο εν λόγω κατώϕλι η υλοποίηση MPICH.Πιο συγκεκριµένα, το MPICH χρησιµοποιεί ανάλογα µε το µέγεθος του µηνύµατος τρία διαϕορετικάπρωτόκολλα επικοινωνίας για το σύνηθες ch p4 κανάλι επικοινωνίας των TCP/IP δικτύων, ήτοιτα short, eager και rendezvous. Κάθε ένα από τα παραπάνω υιοθετεί διαϕορετική προσέγγιση όσοναϕορά στην ανταλλαγή µηνυµάτων, διαϕοροποιώντας έτσι τις αντίστοιχες απαιτήσεις αναϕορικά µετο πλήθος των µεταδιδόµενων πακέτων και το πλήθος των αντιγραϕών δεδοµένων. Σύµϕωνα µε τοπρωτόκολλο eager, η διεργασία αποστολέας στέλνει άµεσα το µήνυµα, χωρίς να προηγηθεί σχετική ειδοποίησητης διεργασίας παραλήπτη. Αντίθετα, κατά το rendezvous πρωτόκολλο, πριν την ανταλλαγήµηνυµάτων µεταξύ δύο διεργασιών προηγείται µια ϕάση χειραψίας (h<strong>and</strong>shake) των διεργασιών αυτών,που διασϕαλίζει την αποϕυγή ενδεχόµενης ανάγκης για ενδιάµεση αποθήκευση των δεδοµένων στηδιεργασία παραλήπτη. Η εξ ορισµού τιµή κατωϕλίου στην οποία πραγµατοποιείται η µετάβαση από τοeager στο rendezvous πρωτόκολλο ισούται µε 128000 bytes.Με βάση τα παραπάνω, υποθέτοντας τοπολογία διεργασιών 2 × 4 και χώρο επαναλήψεων 256 ×256 × 16K, κάθε διεργασία αναλαµβάνει υπερκόµβους µεγέθους 128 × 64 × z πραγµατικών στοιχείωνδιπλής ακρίβειας (=8 bytes). Για ύψος υπερκόµβου z = 125, η εν λόγω απεικόνιση οδηγεί σε αναγκαιότητααποστολής µηνυµάτων µεγέθους 128 × 1 × 125 × 8 = 128000 bytes κατά µήκος της δεύτερηςδιάστασης του χώρου επαναλήψεων, τιµή η οποία συµπίπτει µε το προαναϕερθέν κατώϕλι µετάβασηςαπό το eager στο rendezvous πρωτόκολλο. Το ίδιο ισχύει και για την τιµή z = 250, που αντιστοιχείστην αποστολή µηνύµατος 128000 bytes κατά µήκος της πρώτης διάστασης, όπου επίσης παρατηρήθηκεσηµαντική µείωση της απόδοσης του προγράµµατος. Γενικά, υπάρχει ένας συµβιβασµός µεταξύτων δύο πρωτοκόλλων σε ό,τι αϕορά το συγχρονισµό των διεργασιών και την ενδιάµεση αποθήκευσηδεδοµένων, συνεπώς κατά τη µετάβαση από το ένα πρωτόκολλο στο άλλο δεν θα πρέπει να µας εκπλήσσειµια µεταβολή στην απόδοση. Ποιοτικά, για σχετικά υψηλό αριθµό µη αναµενόµενων µηνυµάτων,το κόστος της αντιγραϕής δεδοµένων κατά την ενδιάµεση αποθήκευση µε το eager πρωτόκολλο είναισηµαντικό, καθιστώντας το rendezvous πρωτόκολλο ως την πιο ενδεδειγµένη προσέγγιση. Αντίθετα,για σχετικά χαµηλό πλήθος µη αναµενόµενων µηνυµάτων, το κόστος του συγχρονισµού που επιβάλλει


146 Πειραµατική Αξιολόγησητο rendezvous πρωτόκολλο είναι απαγορευτικό, συνεπώς το eager πρωτόκολλο είναι στην περίπτωσηαυτή η πιο αποδοτική λύση.1.051fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balanceRatio0.950.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16kΣχήµα 6.16: Σύγκριση υβριδικών µοντέλων (ADI, διάϕοροι χώροι επαναλήψεων, συστοιχία xenons, 8διεργασίες, 2 νήµατα ανά διεργασία)Στο σχήµα 6.16 αναπαρίστανται οι συνολικοί χρόνοι εκτέλεσης για τα διάϕορα υβριδικά µοντέλα µεή χωρίς εξισορρόπηση ϕορτίου κατά την εκτέλεση του µετροπρογράµµατος ADI στη συστοιχία xenons.Η βελτίωση στους χρόνους εκτέλεσης που επιτυγχάνεται µε χρήση σταθερής εξισορρόπησης ϕορτίουκυµαίνεται µεταξύ 3-10%. Με χρήση µεταβλητής εξισορρόπησης ϕορτίου επιτυγχάνεται µείωση τουχρόνου εκτέλεσης κατά 3-9%, ενώ τέλος µε χρήση δυναµικής εξισορρόπησης ϕορτίου παρατηρείταιβελτίωση της επίδοσης κατά 2-7%. Σε όλες τις περιπτώσεις, τα σχήµατα εξισορρόπησης ϕορτίου βελτιώνουντην επίδοση του υβριδικού µοντέλου σε σχέση µε τις απλές υλοποιήσεις τόσο λεπτού όσο καιχονδρού κόκκου. Θα πρέπει να τονιστεί ότι το αποτέλεσµα αυτό είναι ιδιαίτερα σηµαντικό, καθώς πρόκειταιγια ένα σαϕώς ταχύτερο δίκτυο διασύνδεσης από εκείνο των twins και όλοι οι υπολογιζόµενοισυντελεστές για την εξισορρόπηση του ϕορτίου των νηµάτων βρίσκονται κοντά στην τιµή 100%, πουυποδηλώνει ισοκατανοµή του υπολογιστικού ϕορτίου µεταξύ των νηµάτων.


6.4 Εξισορρόπηση Φορτίου Νηµάτων 1476.4.2 DE-XYTΑνάλογη διαδικασία ακολουθήσαµε και για το µετροπρόγραµµα DE-XYT. Συγκεκριµένα, πραγµατοποιήσαµεµετρήσεις του συνολικού χρόνου εκτέλεσης για όλα τα υβριδικά µοντέλα και τους χώρουςεπαναλήψεων των Συνόλων 1 και 2 (βλ. πίνακα 6.9) τόσο στη συστοιχία των twins όσο και σε εκείνητων xenons. Οι σχετικοί χρόνοι εκτέλεσης, κανονικοποιηµένοι ως προς τους χρόνους του υβριδικούµοντέλου λεπτού κόκκου, απεικονίζονται στα σχήµατα 6.17 για τη συστοιχία των twins και 6.18 για τησυστοιχία των xenons.Χώρος επαναλήψεων Τοπολογία διεργασιών16 × 256 × 16K 1 × 832 × 256 × 16K 1 × 8Σύνολο 1 64 × 256 × 16K 1 × 8128 × 256 × 16K 2 × 4256 × 256 × 16K 2 × 41K × 32 × 2K 8 × 11K × 64 × 2K 8 × 1Σύνολο 2 1K × 128 × 2K 8 × 11K × 256 × 2K 8 × 11K × 512 × 2K 4 × 2Πίνακας 6.9: Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-XYT και συνολικό πλήθοςδιεργασιών 81.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance11RatioRatio0.950.950.90.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.851kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) συνολικός χρόνος εκτέλεσης, Σύνολο 2Σχήµα 6.17: Σύγκριση υβριδικών µοντέλων (DE-XYT, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες, 2 νή-µατα ανά διεργασία, συστοιχία twins)Όσον αϕορά στη συστοιχία twins, τα πιο αποδοτικά σχήµατα εξισορρόπησης ϕορτίου ήταν το µε-


148 Πειραµατική Αξιολόγησηταβλητό και το δυναµικό. Έτσι, στην περίπτωση του Συνόλου 1 το σχήµα µεταβλητής εξισορρόπησηςϕορτίου βελτιώνει το συνολικό χρόνο εκτέλεσης σε σχέση µε τα υβριδικά µοντέλα λεπτού και χονδρούκόκκου κατά 5-10%, ενώ εκείνο της δυναµικής εξισορρόπησης ϕορτίου παρέχει ποσοστιαία βελτίωσητης τάξης του 4-8%. Μάλιστα, τα δύο αυτά σχήµατα εξισορρόπησης ϕορτίου υπερτερούν σε όλους τουςχώρους επαναλήψεων έναντι των υπολοίπων υβριδικών υλοποιήσεων, ενώ το µοντέλο χονδρού κόκκουκαταγράϕει και πάλι σχεδόν ταυτόσηµους χρόνους µε το αντίστοιχο µοντέλο λεπτού κόκκου. Μικρότεραείναι τα οϕέλη που αποκοµίζουµε για την περίπτωση του Συνόλου 2, όπου το σχήµα µεταβλητήςεξισορρόπησης ϕορτίου επιτυγχάνει βελτίωση του χρόνου εκτέλεσης κατά 2-6%, ενώ εκείνο της δυνα-µικής εξισορρόπησης ϕορτίου επιταχύνει τους χρόνους εκτέλεσης κατά 1-4%. Πάντως και εδώ σε όλεςτις περιπτώσεις παρατηρούµε βελτίωση σε σχέση µε τα απλά µοντέλα λεπτού και χονδρού κόκκου, ενώαρκετά καλή είναι και η επίδοση του σχήµατος σταθερής εξισορρόπησης ϕορτίου, που αποτιµάται σεβελτίωση 1-5%.1.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance11RatioRatio0.950.950.90.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.851kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) συνολικός χρόνος εκτέλεσης, Σύνολο 2Σχήµα 6.18: Σύγκριση υβριδικών µοντέλων (DE-XYT, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες, 2 νή-µατα ανά διεργασία, συστοιχία xenons)Στη συστοιχία των xenons, τα σχετικά οϕέλη που αποκοµίζουµε για το Σύνολο 1 κυµαίνονται µεταξύ2-10% για την περίπτωση του σχήµατος µεταβλητής εξισορρόπησης ϕορτίου, 4-10% για την περίπτωσητης σταθερής εξισορρόπησης ϕορτίου και 2-7% για το σχήµα της δυναµικής εξισορρόπησης. Γιατην περίπτωση του Συνόλου 2 οι αντίστοιχες ποσοστιαίες βελτιώσεις είναι αισθητά µικρότερες, µέχρι5%, καθώς γενικά τόσο το Σύνολο 2 όσο και η συστοιχία των xenons µε το γρήγορο δίκτυο διασύνδεσηςδεν ενδείκνυνται για την ανάδειξη των όποιων βελτιστοποιήσεων στο υβριδικό µοντέλο.


6.4 Εξισορρόπηση Φορτίου Νηµάτων 1496.4.3 DE-TXYΣτον πίνακα 6.10 αναγράϕονται οι προτεινόµενες τοπολογίες για την εκτέλεση του µετροπρογράµ-µατος DE-TXY µε χρήση 8 διεργασιών. Οι χρόνοι εκτέλεσης όλων των υβριδικών υλοποιήσεων τουDE-TXY στη συστοιχία twins παρέχονται στο σχήµα 6.19, κανονικοποιηµένοι ως προς τους χρόνουςεκτέλεσης του υβριδικού µοντέλου λεπτού κόκκου. Στο σχήµα 6.20 αναπαρίστανται οι αντίστοιχοι χρόνοιεκτέλεσης για τη συστοιχία των xenons.Χώρος επαναλήψεων Τοπολογία διεργασιών16 × 256 × 16K 1 × 832 × 256 × 16K 2 × 4Σύνολο 1 64 × 256 × 16K 2 × 4128 × 256 × 16K 4 × 2256 × 256 × 16K 4 × 21K × 32 × 2K 8 × 11K × 64 × 2K 8 × 1Σύνολο 2 1K × 128 × 2K 8 × 11K × 256 × 2K 8 × 11K × 512 × 2K 8 × 1Πίνακας 6.10: Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-TXY και συνολικό πλήθοςδιεργασιών 81.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance11RatioRatio0.950.950.90.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.851kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) συνολικός χρόνος εκτέλεσης, Σύνολο 2Σχήµα 6.19: Σύγκριση υβριδικών µοντέλων (DE-TXY, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες, 2 νή-µατα ανά διεργασία, συστοιχία twins)Παρατηρούµε ότι σε όλες τις περιπτώσεις παράλληλης εκτέλεσης στη συστοιχία των twins, τόσογια το Σύνολο 1 όσο και για το Σύνολο 2, τους µικρότερους χρόνους εκτέλεσης επιτυγχάνει το σχή-


150 Πειραµατική Αξιολόγησηµα µεταβλητής εξισορρόπησης ϕορτίου. Έτσι, στην περίπτωση του Συνόλου 1 η εϕαρµογή µεταβλητήςεξισορρόπησης ϕορτίου βελτιώνει τους χρόνους εκτέλεσης κατά 3-8%, ενώ για το Σύνολο 2 το αντίστοιχοεύρος κυµαίνεται σε µόλις 1-3%, χωρίς πάντως να καταγράϕεται σε καµία περίπτωση µείωσητης συνολικής επίδοσης. Εξίσου καλή είναι η επίδοση του µεταβλητού σχήµατος και για τη συστοιχίατων xenons, καθώς παρατηρούµε βελτίωση της επίδοσης στο εύρος 2-11% για το Σύνολο 1 και 1-4%για το Σύνολο 2.1.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance11RatioRatio0.950.950.90.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.851kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) συνολικός χρόνος εκτέλεσης, Σύνολο 2Σχήµα 6.20: Σύγκριση υβριδικών µοντέλων (DE-TXY, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες, 2 νή-µατα ανά διεργασία, συστοιχία xenons)Αντίθετα, το σχήµα δυναµικής εξισορρόπησης ϕορτίου δεν αποδίδει ιδιαίτερα οϕέλη στην επίδοσητου υβριδικού προγράµµατος χονδρού κόκκου, καθώς στη συστοιχία twins για το Σύνολο 1 οι σχετικέςποσοστιαίες βελτιώσεις ανέρχονται σε 8% για το χώρο επαναλήψεων 16 × 256 × 16K και λιγότεροαπό 4% για όλους τους υπόλοιπους χώρους επαναλήψεων, ενώ για το Σύνολο 2 παρατηρούµε συνήθωςοριακή µείωση της επίδοσης. Παρόµοια επίδοση παρατηρείται και στη συστοιχία των xenons, καθώςστην περίπτωση του Συνόλου 1 παρατηρούµε µείωση των συνολικών χρόνων εκτέλεσης κατά 2-8%,ενώ στην περίπτωση του Συνόλου 2 προκύπτει οριακή βελτίωση κατά λιγότερο από 3% σε όλες τις περιπτώσεις.Το γεγονός αυτό οϕείλεται στο ότι η πρόσθετη επιβάρυνση του συγκεκριµένου σχήµατοςστην προκειµένη περίπτωση αναιρεί τα οϕέλη που σχετίζονται µε τον υπολογισµό καταλληλότερωνσυντελεστών για την εξισορρόπηση του ϕορτίου µεταξύ των νηµάτων. Ιδιαίτερα στο Σύνολο 2, λόγωτης ιδιοµορϕίας των εξεταζόµενων χώρων επαναλήψεων, κάθε νήµα αναλαµβάνει την εκτέλεσηµιας σχετικά µικρής ακολουθίας υπερκόµβων, στην οποία σηµαντικό µέρος καταλαµβάνει η περίοδοςδειγµατοληψίας των χρόνων υπολογισµού και επικοινωνίας που απαιτούνται για αναπροσαρµογή τωνσυντελεστών.


6.4 Εξισορρόπηση Φορτίου Νηµάτων 151Παρατηρούµε τέλος ότι σχετικά καλή είναι η επίδοση του σχήµατος σταθερής εξισορρόπησης ϕορτίου,το οποίο στη συστοιχία twins αποδίδει βελτιώσεις της τάξης 2-7% για το Σύνολο 1 και οριακέςδιαϕορές για την περίπτωση του Συνόλου 2, ενώ για τα xenons τα αντίστοιχα ποσοστά ανέρχονται σε3-8% για το Σύνολο 1 και 1-4% για το Σύνολο 2. Επίσης, όπως και σε όλες τις προηγούµενες περιπτώσεις,τα υβριδικά µοντέλα λεπτού και χονδρού κόκκου παρέχουν σχεδόν απόλυτα ισοδύναµη επίδοση.6.4.4 Adv2DΣυγκριτικές µετρήσεις επίδοσης των υβριδικών µοντέλων πραγµατοποιήσαµε τέλος και για το µετροπρόγραµµαAdv2D. Έτσι, καταγράψαµε τους συνολικούς χρόνους εκτέλεσης των παράλληλων προγραµµάτωνστη συστοιχία των twins για 8 διεργασίες και 2 νήµατα ανά διεργασία. Η τοπολογία διεργασιώνπου υιοθετείται σε κάθε περίπτωση αναγράϕεται στον πίνακα 6.11 και επιλέγεται βάσει τουκριτηρίου ελαχιστοποίησης της επικοινωνίας. Στο σχήµα 6.21 αναπαρίστανται οι χρόνοι εκτέλεσηςόλων των υβριδικών προγραµµάτων για διάϕορους χώρους επαναλήψεων, κανονικοποιηµένοι ως προςτους χρόνους εκτέλεσης του υβριδικού µοντέλου λεπτού κόκκου. Για τη διακριτοποίηση κάθε πεδίουεϕαρµογής θεωρήσαµε και πάλι ∆x = ∆y = 0.1, οπότε βάσει της συνθήκης Courant επιλέγουµε∆t = 0.001.Πεδίο εϕαρµογής Τοπολογία διεργασιών2 × 20 × 20 1 × 84 × 20 × 20 1 × 86 × 20 × 20 2 × 48 × 20 × 20 2 × 410 × 20 × 20 2 × 4Πίνακας 6.11: Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα Adv2D και συνολικό πλήθοςδιεργασιών 8Σε όλους τους χώρους επαναλήψεων παρατηρούµε µια σηµαντική βελτίωση της επίδοσης κατά τηνεϕαρµογή σχήµατος δυναµικής εξισορρόπησης ϕορτίου. Έτσι, σε σχέση µε το υβριδικό µοντέλο λεπτούκόκκου παρατηρούµε µια µείωση των συνολικών χρόνων εκτέλεσης κατά 8-12% µε χρήση δυναµικήςεξισορρόπησης ϕορτίου και κατά 1-7% µε χρήση µεταβλητής εξισορρόπησης ϕορτίου. Αντίθετα, τόσοη χρήση σταθερής εξισορρόπησης ϕορτίου όσο και το απλό µοντέλο χονδρού κόκκου αποδίδουν µέτριααποτελέσµατα.Στο σχήµα 6.22 απεικονίζεται η διακύµανση των συνολικών χρόνων εκτέλεσης σε συνάρτηση µετο ύψος του υπερκόµβου. Παρατηρούµε ότι σε όλες τις περιπτώσεις υπερισχύει αισθητά το σχήµα δυναµικήςεξισορρόπησης ϕορτίου, µε αρκετά καλές επιδόσεις του σχήµατος µεταβλητής εξισορρόπησηςϕορτίου για τα πεδία 2 × 20 × 20 και 4 × 20 × 20. Τα παραπάνω εξηγούνται ως εξής: στη συγκεκριµένη


152 Πειραµατική Αξιολόγηση1.11.05fine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1Ratio0.950.90.852x20x204x20x206x20x208x20x2010x20x20Σχήµα 6.21: Σύγκριση υβριδικών µοντέλων (Adv2D, διάϕοροι χώροι επαναλήψεων, 8 διεργασίες, 2 νή-µατα ανά διεργασία, συστοιχία twins)σειρά µετρήσεων θεωρήσαµε χώρους επαναλήψεων µε αρκετά µεγάλη εσωτερική σειριακή διάσταση,εάν αναλογιστεί κανείς πως το χρονικό παράθυρο T = 20 σε συνδυασµό µε το κβάντο χρονικής διακριτοποίησης∆t = 0.001 αντιστοιχεί σε περίπου 20000 χρονικές επαναλήψεις, που για ύψη υπερκόµβουστην περιοχή 2 . . . 250 ισοδυναµούν µε την ανάθεση ακολουθίας 80 . . . 10000 υπερκόµβων σε κάθεδιεργασία. ∆εδοµένου ότι η περίοδος δειγµατοληψίας του σχήµατος δυναµικής εξισορρόπησης ϕορτίουδεν υπερβαίνει τους πρώτους 20 υπερκόµβους, η αντίστοιχη επιβάρυνση είναι κατά κανόνα µικρή σεσχέση µε τα οϕέλη που αποκοµίζουµε από την εξισορρόπηση του ϕορτίου σε χρόνο εκτέλεσης. Επίσης,πρέπει να ληϕθεί υπόψη ότι οι αρχικοί συντελεστές που εϕαρµόζονται στο σχήµα δυναµικής εξισορρόπησηςϕορτίου ϕαίνεται να είναι κατάλληλοι µόνο στους δύο πρώτους χώρους επαναλήψεων, καθώςαυτοί αναλογούν στους δοκιµαστικούς χώρους που χρησιµοποιήθηκαν για τη δειγµατοληψία του µέσουχρόνου εκτέλεσης ανά επανάληψη. Για τους υπόλοιπους χώρους υπάρχει σαϕής διαϕοροποίησητου µέσου χρόνου εκτέλεσης λόγω ϕαινοµένων ιεραρχίας µνήµης, καθιστώντας τον επαναπροσδιορισµότων συντελεστών εξισορρόπησης ϕορτίου κατά το χρόνο εκτέλεσης ιδιαίτερα αποδοτικό.


L6.4 Εξισορρόπηση Φορτίου Νηµάτων 1532.62.4Total time <strong>for</strong> 2x20x20 space<strong>and</strong> 16 processesfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance4.44.2Total time <strong>for</strong> 4x20x20 space<strong>and</strong> 16 processesfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balanceTime (sec)2.22Time (sec)43.83.61.83.41.60 50 100 150 200 250Tile Height3.20 50 100 150 200 250Tile Height(α) 2 × 20 × 20(β) 4 × 20 × 2087.87.6Total time <strong>for</strong> 8x20x20 space<strong>and</strong> 16 processesfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance9.69.49.2Total time <strong>for</strong> 10x20x20 space<strong>and</strong> 16 processesfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balanceTime (sec)7.47.27Time (sec)98.88.66.88.46.68.26.40 50 100 150 200 250Tile Height80 50 100 150 200 250Tile Height(γ) 8 × 20 × 20(δ) 10 × 20 × 20Σχήµα 6.22: Σύγκριση υβριδικών µοντέλων για µεταβλητό κόκκο παραλληλισµού (Adv2D, 8 διεργασίες,2 νήµατα ανά διεργασία, συστοιχία twins). Σε όλους τους χώρους επαναλήψεων και για όλα τα ύψηυπερκόµβου υπερέχει το σχήµα δυναµικής εξισορρόπησης ϕορτίου.6.4.5 Αξιολόγηση Multiple Υβριδικού Μοντέλου Χονδρού ΚόκκουΓια την αξιολόγηση του multiple υβριδικού µοντέλου χονδρού κόκκου χρησιµοποιήθηκε η εµπορικήυλοποίηση MPI/Pro, που διασϕαλίζει την απαιτούµενη πλήρη πολυνηµατική υποστήριξη. Πράγµατι,η υλοποίηση MPI/Pro παρέχει L4M2 J©d©K©e©f> I$HJ2¤4©Heεπίπεδο πολυνηµατικής υποστήριξης, επιτρέπονταςσε όλα τα νήµατα µιας υβριδικής εϕαρµογής να καλούν ρουτίνες MPI χωρίς περιορισµούς.Πραγµατοποιήσαµε συγκριτικές µετρήσεις χρόνου για τα µετροπρογράµµατα ADI, DE-XYT, DE-TXYκαι Adv2D στη συστοιχία των twins µε χρήση των δύο υλοποιήσεων του υβριδικού µοντέλου χονδρούκόκκου (funneled και multiple). Για το funneled µοντέλο θεωρήσαµε τόσο µεταβλητή όσο και δυναµι-


154 Πειραµατική Αξιολόγησηκή εξισορρόπηση ϕορτίου, καθώς η αξιολόγηση των υβριδικών µοντέλων που προηγήθηκε κατέδειξετη συγκριτική υπεροχή των δύο αυτών σχηµάτων εξισορρόπησης. Τα αποτελέσµατα για όλα τα µετροπρογράµµατα,διάϕορους χώρους επαναλήψεων και 8 διεργασίες που εκκινούν 2 νήµατα ανά διεργασίασυνοψίζονται στο σχήµα 6.23. Όλα τα αποτελέσµατα είναι κανονικοποιηµένα ως προς τους χρόνουςεκτέλεσης του funneled µοντέλου υπό το σχήµα µεταβλητής εξισορρόπησης ϕορτίου.1.21.15coarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balancecoarse-grain hybrid, multiple1.21.15coarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balancecoarse-grain hybrid, multiple1.11.11.051.05Ratio1Ratio10.950.950.90.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.8516x256x16k32x256x16k64x256x16k128x256x16k(α) ADI(β) DE-XYT1.21.15coarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balancecoarse-grain hybrid, multiple1.21.15coarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balancecoarse-grain hybrid, multiple1.11.11.051.05Ratio1Ratio10.950.950.90.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.852x20x204x20x206x20x208x20x2010x20x20(γ) DE-TXY(δ) Adv2DΣχήµα 6.23: Σύγκριση multiple υβριδικού µοντέλου χονδρού κόκκου µε βελτιστοποιηµένο funneled (διά-ϕορα µετροπρογράµµατα και χώροι επαναλήψεων, 8 διεργασίες, 2 νήµατα ανά διεργασία, συστοιχίαtwins)Είναι ϕανερό ότι στο σύνολο των περιπτώσεων το multiple υβριδικό µοντέλο χονδρού κόκκου υστερείτης αντίστοιχης funneled υλοποίησης, υπό την προϋπόθεση ότι υιοθετείται κάποιο αποδοτικό σχήµαεξισορρόπησης ϕορτίου, όπως το µεταβλητό ή το δυναµικό. Ανάλογα µε το µετροπρόγραµµα και το συγκεκριµένοχώρο επαναλήψεων, το multiple υβριδικό µοντέλο υστερεί του εξισορροπηµένου funneled


6.4 Εξισορρόπηση Φορτίου Νηµάτων 155κατά 2-17% για την περίπτωση µεταβλητής εξισορρόπησης ϕορτίου και κατά 4-18% για την περίπτωσηδυναµικής εξισορρόπησης ϕορτίου. Το αποτέλεσµα αυτό ϕανερώνει ότι η διασϕάλιση της πλήρουςπολυνηµατικής υποστήριξης συνεπάγεται και το ανάλογο κόστος, που αποτυπώνεται τελικά στη συνολικήεπίδοση του προγράµµατος. Έτσι, ο συνδυασµός µιας αποδοτικής υλοποίησης σαν το MPICH µεκατάλληλη τεχνική εξισορρόπησης ϕορτίου µπορεί να οδηγήσει σε αποδοτικότερη παραλληλοποίησηαπό ό,τι η υλοποίηση MPI/Pro µε την πλήρη πολυνηµατική υποστήριξη.Το multiple υβριδικό µοντέλο χονδρού κόκκου δεν µας απασχόλησε περισσότερο στο πλαίσιο τηςπειραµατικής αξιολόγησης, καθώς µεταξύ άλλων ο συνολικός αριθµός αδειών χρήσης του λογισµικούMPI/Pro (8) δεν µας επέτρεπε την πλήρη αξιοποίηση της αρχιτεκτονικής υποδοµής των συστοιχιών16 επεξεργαστών µε ισάριθµες διεργασίες στο µοντέλο ανταλλαγής µηνυµάτων. Άλλωστε, η ίδια ηϕιλοσοϕία ενός προτύπου που απευθύνεται πρωτίστως στην ερευνητική και ακαδηµαϊκή κοινότητα,όπως το MPI, συνάδει περισσότερο µε τη χρήση ανοιχτών ελεύθερα διαθέσιµων υλοποιήσεων, πουεπιτρέπουν την εις βάθους µελέτη της συµπεριϕοράς του λογισµικού.6.4.6 ΣυµπεράσµαταΣυνοψίζοντας τα πειραµατικά αποτελέσµατα της αξιολόγησης των προτεινόµενων υβριδικών µοντέλωνµε ή χωρίς εξισορρόπηση ϕορτίου, µπορούµε να εξαγάγουµε τα ακόλουθα συµπεράσµατα:• Το funneled υβριδικό µοντέλο χονδρού κόκκου δεν είναι πάντοτε πιο αποδοτικό σε σχέση µετο εναλλακτικό ισοδύναµο λεπτού κόκκου. Συχνά, η εγγενής µη αποδοτική κατανοµή ϕορτίουτου απλού υβριδικού µοντέλου χονδρού κόκκου αναιρεί τα συγκριτικά πλεονεκτήµατα αυτούως προς το αντίστοιχο µοντέλο λεπτού κόκκου (π.χ. δυνατότητα επικάλυψης υπολογισµού µεεπικοινωνία, αποϕυγή κόστους επαναρχικοποίησης πολυνηµατικών δοµών κλπ.).• Κατά την εϕαρµογή εξισορρόπησης ϕορτίου µε σταθερό συντελεστή, σε κάποιες περιπτώσεις ηεξισορροπηµένη υβριδική υλοποίηση χονδρού κόκκου είναι λιγότερο αποδοτική συγκριτικά µετις υπόλοιπες µη εξισορροπηµένες υβριδικές υλοποιήσεις (λεπτού ή χονδρού κόκκου). Η αστοχίατης συγκεκριµένης µεθόδου εξισορρόπησης ϕορτίου στις περιπτώσεις αυτές έγκειται αϕενόςστην ανακριβή θεωρητική µοντελοποίηση του υϕιστάµενου συστήµατος και αϕετέρου στην ακαταλληλότητατης µεθόδου για τις συνοριακές διεργασίες της εικονικής τοπολογίας.• Κατά την εϕαρµογή εξισορρόπησης ϕορτίου µε µεταβλητό συντελεστή, το υβριδικό µοντέλοχονδρού κόκκου επιτυγχάνει σε όλες τις περιπτώσεις καλύτερη απόδοση σε σχέση µε το µοντέλολεπτού κόκκου. Ανάλογα µε το µετροπρόγραµµα και το χώρο επαναλήψεων, η ποσοστιαίαβελτίωση κυµαίνεται κατά µέσο όρο µεταξύ 3-8%. Παρότι η µέση ποσοστιαία βελτίωση δεν είναιιδιαίτερα υψηλή, είναι σηµαντικό να επισηµανθεί ότι το συγκεκριµένο σχήµα εξισορρόπησης


156 Πειραµατική Αξιολόγησηϕορτίου επέτυχε για όλα τα µετροπρογράµµατα και όλους τους χώρους επαναλήψεων µείωσητου χρόνου εκτέλεσης σε σχέση µε τα απλά υβριδικά µοντέλα λεπτού και χονδρού κόκκου. Ταπαραπάνω βρίσκονται σε συµϕωνία µε τα θεωρητικώς αναµενόµενα, ότι δηλαδή υπό κατάλληλοσχήµα εξισορρόπησης ϕορτίου το υβριδικό σχήµα χονδρού κόκκου µπορεί να είναι πάντοτε πιοαποδοτικό σε σχέση µε το αντίστοιχο µοντέλο λεπτού κόκκου. Μάλιστα, είναι σηµαντικό ότι οιβελτιώσεις αυτές παρατηρήθηκαν µε χρήση ενιαίου µέσου χρόνου υπολογισµού ανά επανάληψηγια κάθε αλγόριθµο, ανεξάρτητα από τον εξεταζόµενο χώρο επαναλήψεων.• Εξίσου αποδοτικό ϕαίνεται να είναι το σχήµα δυναµικής εξισορρόπησης ϕορτίου. Ανάλογα µε τοσυγκεκριµένο αλγόριθµο και τον εκάστοτε χώρο επαναλήψεων, για τις εξεταζόµενες περιπτώσειςτων µετροπρογραµµάτων πετύχαµε µια µέση βελτίωση 4-10% µε χρήση δυναµικής εξισορρόπησηςϕορτίου. Τα οϕέλη της δυναµικής εξισορρόπησης ϕορτίου είναι ιδιαίτερα σηµαντικάσε περίπτωση που βάσει του εξεταζόµενου χώρου επαναλήψεων κάθε διεργασία αναλαµβάνειτην εκτέλεση ενός επαρκούς πλήθους υπερκόµβων, σηµαντικά περισσότερων από εκείνους πουεκτελούνται στην περίοδο δειγµατοληψίας. Αντίθετα, στις περιπτώσεις που η περίοδος δειγµατοληψίαςαποτελεί σηµαντικό µέρος της εκτέλεσης, η επιβάρυνση του συγκεκριµένου σχήµατοςείναι εµϕανής και µάλιστα ενδέχεται να οδηγήσει ακόµα και σε µείωση της απόδοσης.• Η multiple υλοποίηση χονδρού κόκκου επιτρέπει µεν την υλοποίηση σχετικά απλούστερης υβριδικήςπαραλληλοποίησης, αλλά αϕενός προϋποθέτει πλήρη πολυνηµατική υποστήριξη από τηβιβλιοθήκη ανταλλαγής µηνυµάτων και αϕετέρου επιτυγχάνει χαµηλότερη επίδοση σε σχέση µετο εξισορροπηµένο funneled µοντέλο.• Συνολικά, οι µέθοδοι µεταβλητής και δυναµικής εξισορρόπησης ϕορτίου ενδείκνυνται για τη µείωσητου συνολικού χρόνου εκτέλεσης του υβριδικού προγράµµατος χονδρού κόκκου, ιδιαίτεραόταν οι παράµετροι µοντελοποίησης του συστήµατος έχουν προσδιοριστεί µε ακρίβεια για τοδεδοµένο µετροπρόγραµµα και χώρο επαναλήψεων.6.5 Γενική ΑξιολόγησηΤέλος, πραγµατοποιήσαµε µετρήσεις προς την κατεύθυνση συνολικής συγκριτικής αξιολόγησης τόσοτου προγραµµατιστικού µοντέλου ανταλλαγής µηνυµάτων όσο και των υβριδικών µοντέλων λεπτούκαι χονδρού κόκκου. Εϕαρµόστηκαν όλες οι βελτιστοποιήσεις των προηγούµενων ενοτήτων, δηλαδήεκείνη της επιλογής τοπολογίας απεικόνισης διεργασιών ελάχιστης επικοινωνίας, καθώς και οι προτεινόµενεςτεχνικές εξισορρόπησης ϕορτίου (σταθερή, δυναµική, µεταβλητή). Στη σύγκριση συµπεριλάβαµεκαι το υβριδικό µοντέλο λεπτού κόκκου, παρότι στα προηγούµενα αποδείχθηκε ότι παρέχει


6.5 Γενική Αξιολόγηση 157πάντοτε χαµηλότερη απόδοση σε σχέση µε το αντίστοιχο εξισορροπηµένο υβριδικό µοντέλο χονδρούκόκκου. Λόγω όµως της δηµοϕιλίας του υβριδικού µοντέλου λεπτού κόκκου στη σχετική βιβλιογραϕία,για λόγους πληρότητας συµπεριλαµβάνεται και στη γενική αξιολόγηση των παράλληλων προγραµµατιστικώνµοντέλων.Παρότι η σύγκριση όλων των µοντέλων παραλληλοποίησης έχει πρακτική χρησιµότητα για τηνανάδειξη αποδοτικών τεχνικών παράλληλου προγραµµατισµού αρχιτεκτονικών κατανεµηµένης µοιραζόµενηςµνήµης, η συγκριτική αξιολόγηση αντικατοπτρίζει εν πολλοίς τη σχετική επίδοση των δύο βασικώνπρογραµµατιστικών εργαλείων που χρησιµοποιήθηκαν, δηλαδή αϕενός της βιβλιοθήκης MPICHκαι αϕετέρου της υποστήριξης του OpenMP προτύπου στο µεταγλωττιστή icc της Intel. Είναι προϕανέςότι τα πειραµατικά αποτελέσµατα εξαρτώνται άµεσα κι από την αλληλεπίδραση των δύο αυτώνεργαλείων λογισµικού, δηλαδή από την αποδοτικότητα της OpenMP πολυνηµατικής υποστήριξης πουυλοποιεί η βιβλιοθήκη MPICH. Λόγω των παραπάνω, τα συµπεράσµατα της ποσοτικής αξιολόγησηςτης ενότητας αυτής δεν θα πρέπει να γενικευτούν πέρα από το συγκεκριµένο συνδυασµό υλικού καιλογισµικού της πειραµατικής υποδοµής που χρησιµοποιήθηκε. Αντίθετα, η παρούσα ενότητα αποσκοπείστο να παρέχει µια ποιοτική διαίσθηση της συγκριτικής δυνατότητας των διάϕορων παράλληλωνπρογραµµατιστικών µοντέλων, καθώς και της επίδρασης των σχηµάτων εξισορρόπησης ϕορτίου στηβελτίωση της σχετικής επίδοσης των υβριδικών µοντέλων συγκριτικά µε το µοντέλο ανταλλαγής µηνυµάτων.6.5.1 ADIΟι χρόνοι εκτέλεσης του µετροπρογράµµατος ADI απεικονίζονται στο σχήµα 6.24 τόσο για τη συστοιχίαtwins όσο και για τη συστοιχία xenons. Όλοι οι χρόνοι εκτέλεσης είναι κανονικοποιηµένοι ωςπρος τους αντίστοιχους χρόνους του µοντέλου ανταλλαγής µηνυµάτων, ώστε να διευκολύνουν τηνποσοστιαία σύγκριση της επίδοσης. Στην περίπτωση του µοντέλου ανταλλαγής µηνυµάτων χρησι-µοποιήσαµε 16 διεργασίες σε καρτεσιανή δισδιάστατη τοπολογία, που επελέγη βάσει του κριτηρίουελαχιστοποίησης της επικοινωνίας. Στο υβριδικό µοντέλο χρησιµοποιήσαµε 8 διεργασίες και 2 νήµαταανά διεργασία. Οι επιλεγµένες τοπολογίες διεργασιών που υιοθετήθηκαν σε κάθε περίπτωση αναγρά-ϕονται στον πίνακα 6.12.Στην περίπτωση της συστοιχίας των twins παρατηρούµε ότι ενώ τα απλά υβριδικά µοντέλα λεπτούκαι χονδρού κόκκου υστερούν του µοντέλου ανταλλαγής µηνυµάτων σχεδόν σε όλους τους χώρουςεπαναλήψεων, η εϕαρµογή µεταβλητής ή δυναµικής εξισορρόπησης ϕορτίου παρέχει σε όλες τις περιπτώσειςέστω και οριακή µείωση του συνολικού χρόνου εκτέλεσης. Έτσι, η εϕαρµογή µεταβλητήςεξισορρόπησης ϕορτίου οδηγεί σε βελτίωση του χρόνου εκτέλεσης κατά 1-9%, ενώ το αντίστοιχο σχή-µα δυναµικής εξισορρόπησης ϕορτίου επιτυγχάνει µείωση των χρόνων εκτέλεσης κατά 2-10%. Σχετικά


158 Πειραµατική ΑξιολόγησηΧώρος επαναλήψεων MPI Υβριδικό16 × 256 × 16K 1 × 16 1 × 832 × 256 × 16K 2 × 8 1 × 864 × 256 × 16K 2 × 8 1 × 8128 × 256 × 16K 2 × 8 2 × 4256 × 256 × 16K 4 × 4 2 × 4Πίνακας 6.12: Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα ADI και συνολικό πλήθος διεργασιών16 (MPI) ή 8 (υβριδικό)1.151.1message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.151.1message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.051.05Ratio1Ratio10.950.950.90.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k(α) συνολικός χρόνος εκτέλεσης, συστοιχία twins(β) συνολικός χρόνος εκτέλεσης, συστοιχία xenonsΣχήµα 6.24: Σύγκριση παράλληλων µοντέλων (ADI, διάϕοροι χώροι επαναλήψεων, 16 διεργασίες ή 8διεργασίες × 2 νήµατα ανά διεργασία, συστοιχίες twins και xenons)µικρότερα είναι τα αντίστοιχα οϕέλη στη συστοιχία των xenons, όπου τα δύο σχήµατα εξισορρόπησηςϕορτίου επιτυγχάνουν µικρές βελτιώσεις µέχρι 5%, καθώς οι υπολογιζόµενοι συντελεστές εξισορρόπησηςείναι κοντά στο 100% και τα σχετικά οϕέλη της εξισορρόπησης του ϕορτίου είναι αρκετά περιορισµένα.Στο σχήµα 6.25 αναπαρίστανται οι συνολικοί χρόνοι παράλληλης εκτέλεσης για όλα τα προγραµ-µατιστικά µοντέλα σε συνάρτηση µε το ύψος υπερκόµβου. Όλες οι παρατηρήσεις που αϕορούν τουςελάχιστους χρόνους εκτέλεσης γενικεύονται και για την πλειοψηϕία των τιµών του ύψους z του υπερκόµβου,συνεπώς οι τεχνικές εξισορρόπησης ϕορτίου παραµένουν αποτελεσµατικές ακόµα και στηνπερίπτωση που δεν επελέγη το βέλτιστο ύψος υπερκόµβου. ∆εδοµένου ότι ο προσδιορισµός του βέλτιστουκόκκου παραλληλισµού είναι ένα ιδιαίτερα σύνθετο θέµα, ανοιχτό ακόµα στη διεθνή βιβλιογραϕία,το παραπάνω γεγονός έχει µεγάλη πρακτική αξία και χρησιµότητα. Τα απλά υβριδικά µοντέλαλεπτού και χονδρού κόκκου επιτυγχάνουν αισθητά χειρότερη επίδοση σε σχέση µε το µοντέλο ανταλ-


6.5 Γενική Αξιολόγηση 1591.71.61.5Total time <strong>for</strong> 16x256x16k space<strong>and</strong> 16 processesmessage passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance5.85.65.4Total time <strong>for</strong> 64x256x16k space<strong>and</strong> 16 processesmessage passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balanceTime (sec)1.41.3Time (sec)5.251.24.84.61.10 50 100 150 200Tile Height0 50 100 150 200Tile Height(α) 16 × 256 × 16K(β) 64 × 256 × 16K11.511Total time <strong>for</strong> 128x256x16k space<strong>and</strong> 16 processesmessage passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance2322Total time <strong>for</strong> 256x256x16k space<strong>and</strong> 16 processesmessage passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balanceTime (sec)10.510Time (sec)212019eagerrendezvous9.51890 50 100 150 200Tile Height(γ) 128 × 256 × 16K0 50 100 150 200Tile Height(δ) 256 × 256 × 16KΣχήµα 6.25: Σύγκριση παράλληλων µοντέλων για µεταβλητό κόκκο παραλληλισµού (ADI, 16 διεργασίεςή 8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία twins). Παρότι το απλό υβριδικό µοντέλο υστερεί σεσχέση µε το παράλληλο πρόγραµµα ανταλλαγής µηνυµάτων για όλα τα ύψη υπερκόµβων, η χρήση µεταβλητήςκαι κυρίως δυναµικής εξισορρόπησης ϕορτίου καθιστά το υβριδικό µοντέλο εξίσου ανταγωνιστικόκαι µάλιστα παρέχει τους ελάχιστους χρόνους εκτέλεσης. Στο χώρο επαναλήψεων 256 × 256 × 16K ση-µειώνεται το κατώϕλι µεταξύ eager και rendezvous πρωτοκόλλου του MPICH για την περίπτωση τωνυβριδικών προγραµµάτων, στο οποίο παρατηρείται σηµαντική µείωση της επίδοσης.λαγής µηνυµάτων, ακυρώνοντας έτσι στην πράξη τα όποια θεωρητικά πλεονεκτήµατά τους για τη δεδο-µένη αρχιτεκτονική. Η παρατήρηση αυτή µάλιστα ισχύει για το σύνολο των χώρων επαναλήψεων, τωνκόκκων παραλληλισµού και των διαϕορετικών µετροπρογραµµάτων που εξετάστηκαν. Το µη βελτιστοποιηµένουβριδικό µοντέλο εµϕανίζει σηµαντικά µειονεκτήµατα σε σχέση µε το µοντέλο ανταλλαγήςµηνυµάτων, αδυνατώντας έτσι να αξιοποιήσει τις δοµικές του οµοιότητες µε την υϕιστάµενη αρχιτεκτονικήτης SMP συστοιχίας. Τα µειονεκτήµατα αυτά εντοπίζονται κυρίως στον περιορισµό του βαθµού


160 Πειραµατική Αξιολόγησηπαραλληλίας σύµϕωνα µε το νόµο του Amdahl, καθώς και στην επιβάρυνση επαναρχικοποίησης τωνπολυνηµατικών δοµών κατά την επαναλαµβανόµενη είσοδο/έξοδο προς/από τις παράλληλες περιοχέςπολυνηµατικής επεξεργασίας. Στον αντίποδα, τα σχήµατα µεταβλητής και δυναµικής εξισορρόπησηςϕορτίου παρέχουν καµπύλες που είτε συµπίπτουν µε εκείνη του µοντέλου ανταλλαγής µηνυµάτων είτεεπιτυγχάνουν ακόµα χαµηλότερους χρόνους εκτέλεσης.6.5.2 DE-XYTΣτην περίπτωση του µετροπρογράµµατος DE-XYT οι µετρήσεις του συνολικού χρόνου εκτέλεσης γιατο σύνολο των παράλληλων προγραµµάτων παρέχονται στο σχήµα 6.26 για τη συστοιχία twins καιστο σχήµα 6.27 για τη συστοιχία xenons. Όλοι οι χρόνοι έχουν κανονικοποιηθεί ως προς εκείνους τουµοντέλου ανταλλαγής µηνυµάτων. Ο πίνακας 6.13 συνοψίζει τις τοπολογίες διεργασιών που εϕαρ-µόζονται τόσο για την περίπτωση του MPI προγράµµατος (16 διεργασίες) όσο και για τις υβριδικέςυλοποιήσεις (8 διεργασίες).Χώρος επαναλήψεων MPI Υβριδικό16 × 256 × 16K 1 × 16 1 × 832 × 256 × 16K 2 × 8 1 × 8Σύνολο 1 64 × 256 × 16K 2 × 8 1 × 8128 × 256 × 16K 2 × 8 2 × 4256 × 256 × 16K 4 × 4 2 × 41K × 32 × 2K 16 × 1 8 × 11K × 64 × 2K 16 × 1 8 × 1Σύνολο 2 1K × 128 × 2K 8 × 2 8 × 11K × 256 × 2K 8 × 2 8 × 11K × 512 × 2K 4 × 4 4 × 2Πίνακας 6.13: Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-XYT και συνολικό πλήθοςδιεργασιών 16 (MPI) ή 8 (υβριδικό)Σε σχέση µε το µετροπρόγραµµα ADI, στην περίπτωση του DE-XYT παρατηρήθηκαν ακόµα µεγαλύτεραοϕέλη κατά το συνδυασµό του υβριδικού µοντέλου χονδρού κόκκου µε τα σχήµατα µεταβλητήςκαι δυναµικής εξισορρόπησης ϕορτίου. Έτσι, στην περίπτωση των χώρων επαναλήψεων του Συνόλου 1παρατηρήθηκε µείωση του χρόνου εκτέλεσης κατά 2-19% µε χρήση µεταβλητής εξισορρόπησης ϕορτίου,ενώ η αντίστοιχη µείωση στην περίπτωση της δυναµικής εξισορρόπησης ήταν 2-18%. Το γεγονόςαυτό οϕείλεται στις εγγενείς ανάγκες επικοινωνίας του συγκεκριµένου µετροπρογράµµατος, καθώς τοτελευταίο επιβάλλει τριπλάσιο όγκο δεδοµένων επικοινωνίας σε σχέση µε το ADI και κατά συνέπειαµπορεί να επωϕεληθεί σηµαντικά από µια αποδοτική υβριδική παράλληλη υλοποίηση. Οµοίως, στηνπερίπτωση της συστοιχίας των xenons, παρά το ταχύτερο δίκτυο διασύνδεσης οι αυξηµένες ανάγκες


6.5 Γενική Αξιολόγηση 1611.21.1message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.151.11.05message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1Ratio1Ratio0.950.90.90.850.80.816x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.751kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) συνολικός χρόνος εκτέλεσης, Σύνολο 2Σχήµα 6.26: Σύγκριση παράλληλων µοντέλων (DE-XYT, διάϕοροι χώροι επαναλήψεων, 16 διεργασίες ή8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία twins)1.21.1message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.151.11.05message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1Ratio1Ratio0.950.90.90.850.80.816x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.751kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) συνολικός χρόνος εκτέλεσης, Σύνολο 2Σχήµα 6.27: Σύγκριση παράλληλων µοντέλων (DE-XYT, διάϕοροι χώροι επαναλήψεων, 16 διεργασίες ή8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία xenons)επικοινωνίας του µετροπρογράµµατος επιτρέπουν τη βελτίωση της επίδοσης µέχρι 14% µε χρήση µεταβλητήςεξισορρόπησης ϕορτίου και µέχρι 13% µε χρήση δυναµικής εξισορρόπησης.Αντίθετα, οι βελτιώσεις δεν είναι ιδιαίτερα υψηλές στην περίπτωση του Συνόλου 2, και περιορίζονταιµέχρι ενός ποσοστού 5%. Η διαϕοροποίηση αυτή που παρατηρείται για τους χώρους του Συνόλου2 σχετίζεται µε την ιδιοµορϕία των συγκεκριµένων χώρων και ιδιαίτερα µε τη σχετικά µικρή εσωτερικήδιάσταση σειριακής εκτέλεσης, που δεν ευνοεί την ανάδειξη του ϕαινοµένου της σωλήνωσης.


162 Πειραµατική ΑξιολόγησηΠαρά τις αυξηµένες εγγενείς ανάγκες επικοινωνίας του µετροπρογράµµατος DE-XYT, παρατηρού-µε ότι τα απλά υβριδικά µοντέλα λεπτού και χονδρού κόκκου αδυνατούν να επιτύχουν µικρότερουςχρόνους εκτέλεσης σε σχέση µε το µονολιθικό µοντέλο ανταλλαγής µηνυµάτων. Στην ουσία, αν δενεϕαρµοστούν τεχνικές εξισορρόπησης ϕορτίου ώστε να εξοµαλυνθεί η υψηλή επιβάρυνση επικοινωνίαςτου πρωτεύοντος νήµατος κάθε διεργασίας, το απλό µοντέλο ανταλλαγής µηνυµάτων παραµένει ηπλέον αποδοτική προσέγγιση παράλληλου προγραµµατισµού, ακόµα και στην περίπτωση αλγορίθµουµε αυξηµένες ανάγκες επικοινωνίας.6.5.3 DE-TXYΣτην περίπτωση του µετροπρογράµµατος DE-TXY εϕαρµόστηκαν οι τοπολογίες του πίνακα 6.14 καιτα κανονικοποιηµένα αποτελέσµατα για τη συστοιχία twins παρέχονται στο σχήµα 6.28. Παρατηρούµεότι το σχήµα µεταβλητής εξισορρόπησης ϕορτίου παρέχει βελτιώσεις εύρους 4-11% για το Σύνολο 1και 3-7% για το Σύνολο 2, ενώ το σχήµα δυναµικής εξισορρόπησης ϕορτίου είναι ελαϕρώς λιγότεροαποτελεσµατικό, ιδιαίτερα στο Σύνολο 2.Χώρος επαναλήψεων MPI Υβριδικό16 × 256 × 16K 2 × 8 1 × 832 × 256 × 16K 2 × 8 2 × 4Σύνολο 1 64 × 256 × 16K 4 × 4 2 × 4128 × 256 × 16K 4 × 4 4 × 2256 × 256 × 16K 8 × 2 4 × 21K × 32 × 2K 16 × 1 8 × 11K × 64 × 2K 16 × 1 8 × 1Σύνολο 2 1K × 128 × 2K 16 × 1 8 × 11K × 256 × 2K 16 × 1 8 × 11K × 512 × 2K 8 × 2 8 × 1Πίνακας 6.14: Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα DE-TXY και συνολικό πλήθοςδιεργασιών 16 (MPI) ή 8 (υβριδικό)Η βελτίωση της επίδοσης στο µετροπρόγραµµα DE-TXY είναι σηµαντικά µικρότερη σε σχέση µετην DE-XYT παραλλαγή, καθώς αϕενός µεν στη συγκεκριµένη περίπτωση οι ανάγκες επικοινωνίαςείναι µικρότερες, αϕετέρου δε οι ανάγκες αυτές είναι ανοµοιόµορϕα κατανεµηµένες στις δύο διευθύνσειςεπικοινωνίας, ώστε να καθιστούν περισσότερο επιτακτική την επιλογή κατάλληλης τοπολογίαςδιεργασιών παρά την αποδοτική υβριδική παραλληλοποίηση.


6.5 Γενική Αξιολόγηση 1631.11.05message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.11.05message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance11RatioRatio0.950.950.90.90.8516x256x16k32x256x16k64x256x16k128x256x16k256x256x16k0.851kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) συνολικός χρόνος εκτέλεσης, Σύνολο 1(β) συνολικός χρόνος εκτέλεσης, Σύνολο 2Σχήµα 6.28: Σύγκριση παράλληλων µοντέλων (DE-TXY, διάϕοροι χώροι επαναλήψεων, 16 διεργασίες ή8 διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία twins)6.5.4 Adv2DΤέλος, το σχήµα 6.29 συνοψίζει τους χρόνους εκτέλεσης όλων των παράλληλων µοντέλων για το µετροπρόγραµµαAdv2D, ενώ οι αντίστοιχες τοπολογίες διεργασιών αναγράϕονται στον πίνακα 6.15.Παρατηρούµε ότι οι απλές υβριδικές υλοποιήσεις λεπτού και χονδρού κόκκου υπολείπονται σχεδόνσε όλες τις περιπτώσεις του µοντέλου ανταλλαγής µηνυµάτων. Ωστόσο, η χρήση δυναµικής εξισορρόπησηςϕορτίου βελτιώνει αισθητά την επίδοση του υβριδικού µοντέλου χονδρού κόκκου σε όλες τιςπεριπτώσεις, καθώς µάλιστα επιτρέπει τη µείωση του συνολικού χρόνου εκτέλεσης κατά 5-7% σε σχέσηµε το µοντέλο ανταλλαγής µηνυµάτων. Αντίθετα, το σχήµα µεταβλητής εξισορρόπησης ϕορτίου δεναποϕέρει ιδιαίτερα οϕέλη και καταγράϕει µε µικρές διαϕοροποιήσεις παρόµοια απόδοση µε το µοντέλοανταλλαγής µηνυµάτων.Χώρος επαναλήψεων MPI Υβριδικό2 × 20 × 20 1 × 16 1 × 84 × 20 × 20 2 × 8 1 × 86 × 20 × 20 2 × 8 2 × 48 × 20 × 20 2 × 8 2 × 410 × 20 × 20 2 × 8 2 × 4Πίνακας 6.15: Τοπολογίες απεικόνισης διεργασιών για µετροπρόγραµµα Adv2D και συνολικό πλήθοςδιεργασιών 16 (MPI) ή 8 (υβριδικό)


164 Πειραµατική Αξιολόγηση1.151.1message passingfine-grain hybridcoarse-grain hybrid, unbalancedcoarse-grain hybrid, constant balancecoarse-grain hybrid, variable balancecoarse-grain hybrid, adaptive balance1.05Ratio10.950.90.852x20x204x20x206x20x208x20x2010x20x20Σχήµα 6.29: Σύγκριση παράλληλων µοντέλων (Adv2D, διάϕοροι χώροι επαναλήψεων, 16 διεργασίες ή 8διεργασίες × 2 νήµατα ανά διεργασία, συστοιχία twins)6.6 Συµβολή της ∆ιατριβής: η Πειραµατική ΕκδοχήΓια λόγους οπτικοποίησης, το σχήµα 6.30 συνοψίζει την επίδραση των προτεινόµενων τεχνικών καιβελτιστοποιήσεων στην επίδοση των παράλληλων προγραµµατιστικών µοντέλων για βασικά µετροπρογράµµαταπου εξετάσαµε κατά την πειραµατική διαδικασία. Έτσι, παρέχονται οι ελάχιστοι χρόνοιπαράλληλης εκτέλεσης των µετροπρογραµµάτων ADI, DE-XYT, DE-TXY και Adv2D µε χρήση• του µοντέλου ανταλλαγής µηνυµάτων µε επιλογή της συνήθους 4 × 4 τοπολογίας διεργασιώνελάχιστης καθυστέρησης διάδοσης• του υβριδικού µοντέλου χονδρού κόκκου µε εϕαρµογή µεταβλητού σχήµατος εξισορρόπησης τουϕορτίου των νηµάτων και επιλογή της προτεινόµενης τοπολογίας διεργασιών ελάχιστης επικοινωνίαςκαι• του υβριδικού µοντέλου χονδρού κόκκου µε εϕαρµογή δυναµικού σχήµατος εξισορρόπησης τουϕορτίου των νηµάτων και επιλογή της προτεινόµενης τοπολογίας διεργασιών ελάχιστης επικοινωνίας


6.6 Συµβολή της ∆ιατριβής: η Πειραµατική Εκδοχή 1651.21message passing, scheduling-awarefunneled hybrid, communication-aware, variable balancingfunneled hybrid, communication-aware, adaptive balancing1.21message passing, scheduling-awarefunneled hybrid, communication-aware, variable balancingfunneled hybrid, communication-aware, adaptive balancing0.80.8Ratio0.6Ratio0.60.40.40.20.2016x256x16k32x256x16k64x256x16k128x256x16k256x256x16k016x256x16k32x256x16k64x256x16k128x256x16k256x256x16k1kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k(α) µετροπρόγραµµα ADI(β) µετροπρόγραµµα DE-XYT1.21message passing, scheduling-awarefunneled hybrid, communication-aware, variable balancingfunneled hybrid, communication-aware, adaptive balancing1.21message passing, scheduling-awarefunneled hybrid, communication-aware, variable balancingfunneled hybrid, communication-aware, adaptive balancing0.80.8Ratio0.6Ratio0.60.40.40.20.2016x256x16k32x256x16k64x256x16k128x256x16k256x256x16k1kx32x2k1kx64x2k1kx128x2k1kx256x2k1kx512x2k02x20x204x20x206x20x208x20x2010x20x20(γ) µετροπρόγραµµα DE-TXY(δ) µετροπρόγραµµα Adv2DΣχήµα 6.30: Συµβολή της διατριβής στη βελτίωση της επίδοσης παράλληλων προγραµµάτων µε χρήσητων προτεινόµενων µοντέλων παραλληλοποίησης και τεχνικών βελτιστοποίησης (διάϕορα µετροπρογράµµατα,16 διεργασίες ή 8 διεργασίες × 2 νήµατα, συστοιχία twins)Όλοι οι χρόνοι εκτέλεσης είναι κανονικοποιηµένοι ως προς τους χρόνους του µοντέλου ανταλλαγήςµηνυµάτων, αναϕέρονται στη συστοιχία twins και αϕορούν 16 διεργασίες στην περίπτωση του µοντέλουανταλλαγής µηνυµάτων και 8 διεργασίες × 2 νήµατα ανά διεργασία στα υβριδικά µοντέλα. Σε όλεςτις περιπτώσεις έχουν ληϕθεί οι ελάχιστοι χρόνοι παράλληλης εκτέλεσης των µετροπρογραµµάτων, πουεπιτυγχάνονται για τον εκάστοτε βέλτιστο κόκκο παραλληλισµού.Είναι εµϕανές ότι οι βελτιώσεις της επίδοσης ποικίλουν από οριακή µείωση του χρόνου εκτέλεσηςµέχρι ιδιαίτερα υψηλή ποσοστιαία µείωση πλέον του 60%, ανάλογα τόσο µε το θεωρούµενο µετροπρόγραµµαόσο και µε τον εξεταζόµενο χώρο επαναλήψεων. Η ποσοστιαία µείωση του χρόνου εκτέλεσηςπροέρχεται αϕενός από τη µείωση του συνολικού όγκου επικοινωνίας µέσω επιλογής κατάλληλης καρ-


166 Πειραµατική Αξιολόγησητεσιανής τοπολογίας απεικόνισης διεργασιών και αϕετέρου από την υλοποίηση ενός αποδοτικού υβριδικούµοντέλου χονδρού κόκκου για την αξιοποίηση της υϕιστάµενης αρχιτεκτονικής κατανεµηµένηςµοιραζόµενης µνήµης.1.21message passing, scheduling-awarefunneled hybrid, communication-aware, variable balancingfunneled hybrid, communication-aware, adaptive balancing1.21message passing, scheduling-awarefunneled hybrid, communication-aware, variable balancingfunneled hybrid, communication-aware, adaptive balancing0.80.8Ratio0.6Ratio0.60.40.40.20.2016x256x16k32x256x16k64x256x16k128x256x16k256x256x16k016x256x16k32x256x16k64x256x16k128x256x16k256x256x16k1kx32x2k1kx64x2k1kx128x2k1kx256x2k(α) µετροπρόγραµµα ADI(β) µετροπρόγραµµα DE-XYT1.21message passing, scheduling-awarefunneled hybrid, communication-aware, variable balancingfunneled hybrid, communication-aware, adaptive balancing1.21message passing, scheduling-awarefunneled hybrid, communication-aware, variable balancingfunneled hybrid, communication-aware, adaptive balancing0.80.8Ratio0.6Ratio0.60.40.40.20.2016x256x16k32x256x16k64x256x16k128x256x16k256x256x16k02x20x204x20x206x20x208x20x2010x20x20(γ) µετροπρόγραµµα DE-TXY(δ) µετροπρόγραµµα Adv2DΣχήµα 6.31: Συµβολή της διατριβής στη βελτίωση της επίδοσης παράλληλων προγραµµάτων µε χρήσητων προτεινόµενων µοντέλων παραλληλοποίησης και τεχνικών βελτιστοποίησης για λεπτοµερή παραλληλισµόµε µοναδιαίο ύψος υπερκόµβου (διάϕορα µετροπρογράµµατα, 16 διεργασίες ή 8 διεργασίες × 2νήµατα, συστοιχία twins)Μια ιδιαίτερα περιοριστική παραδοχή που υιοθετήσαµε στο αλγοριθµικό µοντέλο ήταν η απαίτησηγια οµοιόµορϕες µη αρνητικές εξαρτήσεις δεδοµένων. Το γεγονός αυτό περιόρισε το σύνολο τωνυπό παραλληλοποίηση αλγορίθµων σε εκείνους που χαρακτηρίζονται από µονόδροµη ροή πληροϕορίας,όπως π.χ. συµβαίνει στην εξίσωση µεταϕοράς, ενώ αντίθετα οδήγησε σε αλγοριθµική απόκλισηστις περιπτώσεις που απαιτείται συνεκτίµηση της αµϕίδροµης αλληλεπίδρασης, όπως π.χ. στην εξί-


6.6 Συµβολή της ∆ιατριβής: η Πειραµατική Εκδοχή 167σωση θερµικής διάχυσης. Όµως, οι βασικές τεχνικές βελτιστοποίησης που προτείνονται τόσο για τηνελαχιστοποίηση της επικοινωνίας όσο και για την εξισορρόπηση του ϕορτίου των νηµάτων είναι χρήσιµεςκαι για την περίπτωση της λεπτοµερούς παραλληλοποίησης που ακολουθείται σε αλγορίθµουςµε γενικότερα διανύσµατα εξάρτησης δεδοµένων τύπου ροής.Πράγµατι, αν οι εξαρτήσεις δεν επιτρέπουν την οµαδοποίηση των δεδοµένων επικοινωνίας ανάυπερκόµβο και υπαγορεύουν την υλοποίηση λεπτοµερούς παραλληλοποίησης µε επικοινωνία ανά επι-ϕάνεια υπολογισµού, τόσο η επιλογή κατάλληλης τοπολογίας διεργασιών απεικόνισης όσο και η αποδοτικήεξισορρόπηση του ϕορτίου των νηµάτων για κάθε επιϕάνεια διατηρούν την αξία τους στη µείωσητου συνολικού χρόνου εκτέλεσης. Για την ποσοτική επιβεβαίωση του ισχυρισµού αυτού παρατίθεταιτο σχήµα 6.31, που απεικονίζει τη βελτίωση των χρόνων εκτέλεσης στα υπό εξέταση µετροπρογράµ-µατα για ύψος υπερκόµβου z = 1. Παρατηρούµε πως η ποσοστιαία µείωση του χρόνου εκτέλεσηςγια ύψος υπερκόµβου z = 1 είναι αντίστοιχη µε τη µείωση που επιτυγχάνεται στον ελάχιστο χρόνοεκτέλεσης (βλ. σχήµα 6.30). Η παρατήρηση αυτή έχει ιδιαίτερη πρακτική αξία, π.χ. αν αναλογιστούµεπως η ρητή διακριτοποίηση των Μ∆Ε οδηγεί σε επαναληπτικούς αλγορίθµους ϕωλιασµένων βρόχωνµε εξαρτήσεις δεδοµένων τύπου ροής, που µπορούν να παραλληλοποιηθούν µε τη χρήση επικοινωνίαςγια την ανταλλαγή των συνοριακών δεδοµένων µετά από τους υπολογισµούς που ολοκληρώνονται σεκάθε χρονική στιγµή. Η λεπτοµερής αυτή παραλληλοποίηση αποτελεί εξειδίκευση της µεθόδου πουπαρουσιάζεται στην παρούσα διατριβή για µοναδιαίο ύψος υπερκόµβου.


168 Πειραµατική Αξιολόγηση


ΚΕΦΑΛΑΙΟ 7Συµπεράσµατα - Προτάσεις για Μελλοντική ΈρευναΣκοπός της παρούσας εργασίας ήταν η διερεύνηση της επίδοσης προγραµµατιστικών µοντέλων για τηνπαραλληλοποίηση αλγορίθµων ϕωλιασµένων βρόχων σε σύγχρονες αρχιτεκτονικές κατανεµηµένηςµοιραζόµενης µνήµης. Εξετάστηκαν τα δηµοϕιλέστερα µοντέλα, που έχουν επιτυχώς εϕαρµοστεί στηνπράξη για την παραλληλοποίηση σχετικών επιστηµονικών εϕαρµογών, όπως το µονολιθικό µοντέλοανταλλαγής µηνυµάτων, καθώς και η υβριδική προσέγγιση παραλληλοποίησης µε επιπλέον χρήση πολυνηµατικήςεπεξεργασίας. Περιγράϕησαν προγραµµατιστικές υλοποιήσεις για την παραλληλοποίησηαλγορίθµων τέλεια ϕωλιασµένων βρόχων, που εϕαρµόζουν χρονοδροµολόγηση τύπου σωλήνωσης καιεπιτρέπουν την επικάλυψη ωϕέλιµου υπολογισµού µε την απαιτούµενη επικοινωνία. Αναπτύχθηκαν τεχνικέςκαθορισµού κατάλληλης εικονικής τοπολογίας διεργασιών για την παράλληλη απεικόνιση ενόςσυγκεκριµένου αλγορίθµου, καθώς και αποδοτικές µέθοδοι εξισορρόπησης του συνολικού υπολογιστικούϕορτίου των νηµάτων. Οι τεχνικές αυτές αξιολογήθηκαν σε µετροπρογράµµατα και αναλύθηκανσυγκριτικά τα πειραµατικά αποτελέσµατα.Συµπερασµατικά θα µπορούσε κανείς να πει πως η επιλογή κατάλληλης εικονικής τοπολογίας διεργασιώνγια την απεικόνιση του παράλληλου προγράµµατος είναι πολύ σηµαντική ως προς την ελαχιστοποίησητης συνολικής επιβάρυνσης της επικοινωνίας και κατ' επέκταση τη διασϕάλιση βέλτιστηςεπίδοσης. Η επιλογή κατάλληλης τοπολογίας διεργασιών κρίνεται ως ιδιαίτερα χρήσιµη κατά την παραλληλοποίησηαλγορίθµων που• χαρακτηρίζονται εγγενώς από υψηλές απαιτήσεις επικοινωνίας σε σχέση µε τις αντίστοιχες απαιτήσειςυπολογισµού για µια δεδοµένη αρχιτεκτονική υποδοµή


170 Συµπεράσµατα - Προτάσεις για Μελλοντική Έρευνα• κατανέµουν ανοµοιόµορϕα τις ανάγκες επικοινωνίας ως προς τις διάϕορες διευθύνσεις του χώρου,δηλαδή το κόστος επικοινωνίας που σχετίζεται µε κάποια διεύθυνση του χώρου επαναλήψεωντου αλγορίθµου είναι αισθητά υψηλότερο από το σχετικό κόστος που αντιστοιχεί στις υπόλοιπεςδιευθύνσεις του χώρου• συνδυάζονται µε ασύµµετρους χώρους επαναλήψεων, στους οποίους κάποια διάσταση είναι αρκετάµεγαλύτερη από τις υπόλοιπες• συνδυάζουν δύο ή περισσότερα από τα παραπάνω χαρακτηριστικάΤο µοντέλο ανταλλαγής µηνυµάτων, εϕοδιασµένο µε ένα σχήµα επικαλυπτόµενης χρονοδροµολόγησηςυπολογισµών και επικοινωνίας και υπό τον καθορισµό µιας κατάλληλης τοπολογίας διεργασιώναπεικόνισης, αποδεικνύεται ιδιαίτερα αποδοτικό σε περιβάλλον συστοιχίας πολυεπεξεργαστικών στοιχείωνγια την παραλληλοποίηση αλγορίθµων ϕωλιασµένων βρόχων.Σε ότι αϕορά στα υβριδικά µοντέλα παραλληλοποίησης, ο συνήθης προσαυξητικός παραλληλισµόςλεπτού κόκκου που προτιµάται, αποτελεί µεν µια αρκετά απλή και εϕαρµόσιµη προσέγγιση για την υλοποίησηυβριδικού παραλληλισµού, αλλά κρίνεται σχετικά περιοριστικός όσον αϕορά στις δυνατότητεςεπίδοσης που συνεπάγεται για αλγορίθµους ϕωλιασµένων βρόχων. Συγκεκριµένα, καθώς ο υπολογισµόςκαι η επικοινωνία διαχωρίζονται σε µη επικαλυπτόµενα τµήµατα, επιτυγχάνεται χαµηλός βαθµόςπαραλληλίας βάσει του νόµου του Amdahl, καθιστώντας το υβριδικό µοντέλο λεπτού κόκκου λιγότεροαποδοτικό σε σχέση µε το µονολιθικό µοντέλο ανταλλαγής µηνυµάτων. Η υλοποίηση SPMD υβριδικούπαραλληλισµού χονδρού κόκκου δεν βελτιώνει την επίδοση, παρά την πρόσθετη προγραµµατιστικήπολυπλοκότητα που συνεπάγεται. Στη συνήθη περίπτωση περιορισµένης πολυνηµατικής υποστήριξηςαπό τη µεριά της βιβλιοθήκης ανταλλαγής µηνυµάτων, το funneled υβριδικό µοντέλο χονδρού κόκκουεπιϕορτίζει το πρωτεύον νήµα περισσότερο από τα υπόλοιπα, καθιστώντας έτσι επιτακτική την εϕαρ-µογή κάποιου σχήµατος εξισορρόπησης ϕορτίου. Ακόµα κι αν υποστηρίζεται πλήρως η πολυνηµατικήεπεξεργασία κατά την υβριδική παραλληλοποίηση (multiple µοντέλο χονδρού κόκκου), η διασϕάλισητης ορθής πρόσβασης των νηµάτων στις µοιραζόµενες δοµές επικοινωνίας επιϕέρει επιβάρυνση πουσε πολλές περιπτώσεις δεν είναι αµελητέα. Αντίθετα, ο συνδυασµός του funneled υβριδικού µοντέλουχονδρού κόκκου µε την εϕαρµογή του σχήµατος µεταβλητής ή δυναµικής εξισορρόπησης ϕορτίου αποδεικνύεταιστην πράξη η πιο αποτελεσµατική υβριδική προσέγγιση, καθώς επιτυγχάνει το µικρότεροχρόνο εκτέλεσης, αυξάνοντας το συνολικό βαθµό παραλληλίας του προγράµµατος και κατά το δυνατόνισοκατανέµοντας το συνολικό ϕορτίο µεταξύ των διαθέσιµων ϕορέων παράλληλης επεξεργασίας.Για την εϕαρµογή εξισορρόπησης ϕορτίου µεταξύ των νηµάτων η παρούσα διατριβή κατέδειξε τα εξής:• Η εϕαρµογή αποδοτικής στατικής εξισορρόπησης ϕορτίου των νηµάτων µε χρήση του µεταβλητούσχήµατος είναι εϕικτή, εϕόσον εκτιµηθούν και µοντελοποιηθούν θεωρητικά τα σχετικά


L171κόστη υπολογισµού και επικοινωνίας έστω µε ένα απλό γραµµικό µοντέλο, αλλά µε χρήση ενόςαντιπροσωπευτικού δοκιµαστικού χώρου επαναλήψεων σε σχέση µε το πραγµατικό πεδίο εϕαρ-µογής του αλγορίθµου.• Η εϕαρµογή ενός κοινού συντελεστή εξισορρόπησης ϕορτίου για όλες τις διεργασίες, αδιακρίτωςτης θέσης τους στην καρτεσιανή τοπολογία απεικόνισης, παρέχει εν γένει χειρότερη επίδοσησε σχέση µε το µεταβλητό σχήµα εξισορρόπησης, καθώς υπερτιµά το κόστος επικοινωνίας γιασυνοριακές διεργασίες.• Η εϕαρµογή δυναµικής εξισορρόπησης ϕορτίου των νηµάτων µπορεί να είναι ιδιαίτερα αποδοτικήεϕόσον κάθε διεργασία αναλάβει την εκτέλεση ενός σηµαντικού πλήθους υπερκόµβων, ώστε ηπερίοδος δειγµατοληψίας των χρόνων και ο επαναπροσδιορισµός των συντελεστών εξισορρόπησηςνα µην επιϕέρουν σηµαντική επιβάρυνση σε σχέση µε τα οϕέλη που θα αποϕέρει η εϕαρµογήτων νέων συντελεστών.Συνολικά, η απευθείας σύγκριση της υβριδικής παραλληλοποίησης µε το µονολιθικό µοντέλο ανταλλαγήςµηνυµάτων είναι σχετικά πολύπλοκη διαδικασία, καθώς εµπεριέχει πολλές µεταβλητές παραµέτρουςπου αϕορούν στο υϕιστάµενο υλικό και λογισµικό. Η διαδεδοµένη χρήση του µονολιθικού µοντέλουκαι η σχεδόν καθολική αποδοχή του από την επιστηµονική και εµπορική κοινότητα έχουν οδηγήσεισε πληθώρα υψηλά βελτιστοποιηµένων βιβλιοθηκών ανταλλαγής µηνυµάτων, τόσο ελεύθερηςδιανοµής όσο και κλειστού τύπου. Για παράδειγµα, η βιβλιοθήκη MPICH έχει αϕενός χρησιµοποιηθείεπιτυχώς στην παραλληλοποίηση πολλών πραγµατικών εϕαρµογών µεγάλης κλίµακας και αϕετέρουαποτελέσει αϕετηριακό σηµείο για τη σχεδίαση νέων MPI υλοποιήσεων για πληθώρα αρχιτεκτονικώνκαι δικτυακών υποδοµών. Από την άλλη µεριά, το πρότυπο OpenMP µέχρι πρόσϕατα υποστηριζότανσχεδόν αποκλειστικά από τον εµπορικό µεταγλωττιστή της Intel για x86 αρχιτεκτονικές, ενώ µόλις κατάτην ολοκλήρωση της διατριβής ανακοινώθηκε η πρώιµη υποστήριξη για OpenMP στον ευρύτατα διαδεδοµένοGNU µεταγλωττιστή (gcc). Επίσης, παρότι το ενδεχόµενο πολυνηµατικής υποστήριξης έχειπροβλεϕθεί θεωρητικά στο πρότυπο MPI-2, δεν υπάρχουν µέχρι αυτή τη στιγµή ελεύθερες υλοποιήσειςπου να παρέχουν το υψηλότερο L4M2 Jd©K©e©f> I$HJM2;4©Heεπίπεδο της πολυνηµατικής επεξεργασίας.Ωστόσο, θα µπορούσε κανείς να ισχυριστεί µε ασϕάλεια πως το υβριδικό µοντέλο χονδρού κόκκου µεεπιλογή κατάλληλης τοπολογίας διεργασιών και εϕαρµογή αποδοτικής εξισορρόπησης του ϕορτίουτων νηµάτων σε κάθε περίπτωση είναι εξίσου αποδοτικό µε το απλό µοντέλο ανταλλαγής µηνυµάτωνκαι σε πολλές µάλιστα περιπτώσεις παρέχει σηµαντικές βελτιώσεις όσον αϕορά στο συνολικό χρόνοεκτέλεσης. Η ευελιξία που προσϕέρει η διεπίπεδη δοµή του υβριδικού µοντέλου οδηγεί σε πληθώραπλεονεκτηµάτων, που µπορούν να υπερκεράσουν τα βασικά προτερήµατα της µεταϕερσιµότητας καιτης γενικότητας του µοντέλου ανταλλαγής µηνυµάτων.


172 Συµπεράσµατα - Προτάσεις για Μελλοντική ΈρευναΕίναι σίγουρο πως η Παράλληλη Επεξεργασία θα συνεχίσει να απασχολεί ζωηρά την επιστηµονικήκοινότητα ανεξαρτήτως των τεχνολογικών και αρχιτεκτονικών εξελίξεων, κυρίως γιατί βασίζεται στιςδιαχρονικές αρχές της επεκτασιµότητας και της διασύνδεσης εµπορικών συστηµάτων. Ενδεικτική προςτην κατεύθυνση αυτή είναι η στροϕή που παρατηρείται µε τη µελέτη, διερεύνηση και ανάλυση εξειδικευµένωνυπολογιστικά απαιτητικών εϕαρµογών από ποικίλα επιστηµονικά πεδία, καθώς και µε τηνανάπτυξη ισχυρών εργαλείων και βιβλιοθηκών για παράλληλους αλγορίθµους. Θεωρούµε ότι η µοντελοποίησηκαι διερεύνηση των ϕωλιασµένων βρόχων συνετέλεσαν καθοριστικά στη συστηµατική καιµεθοδική ανάπτυξη βασικών τεχνικών παραλληλοποίησης, αλλά εν µέρει µετεξελίχθηκαν σε αυτοσκοπότης σχετικής ερευνητικής δραστηριότητας, οδηγώντας σε πολυσύνθετη µαθηµατική µοντελοποίησηπου ελάχιστα παρακολουθεί τις ιδιοµορϕίες και τη ϕύση των πραγµατικών εϕαρµογών υψηλών επιδόσεων.Όλες οι τεχνικές παραλληλοποίησης και οι περαιτέρω βελτιστοποιήσεις, που έχουν κατά καιρούςκαταγραϕεί στη σύγχρονη βιβλιογραϕία, καθώς και οι προτεινόµενες µεθοδολογίες της παρούσας διατριβήςµπορούν να ωϕελήσουν ουσιαστικά την επιστηµονική κοινότητα µόνο στο βαθµό που βρίσκουνεϕαρµογή στην βελτίωση της επίδοσης πραγµατικών αλγορίθµων και ολοκληρωµένων εϕαρµογών.Βάσει των παραπάνω, θεωρούµε πως µελλοντικά η σχετική έρευνα στο χώρο της Παράλληλης Επεξεργασίαςγενικότερα και των τεχνικών βελτιστοποίησης παράλληλων προγραµµατιστικών µοντέλωνειδικότερα θα µπορούσε να ασχοληθεί µε τα ακόλουθα ζητήµατα:• Εστίαση σε συγκεκριµένες επιστηµονικές εϕαρµογές, που µπορούν να χρησιµεύσουν ως αϕετηριακόσηµείο για την αξιοποίηση υπαρχουσών τεχνικών παραλληλοποίησης, την ανάδειξη εξειδικευµένωνπροβληµάτων της συγκεκριµένης εϕαρµογής, καθώς και ενδεχοµένως την ανάπτυξηνέων σχετικών βελτιστοποιήσεων και προγραµµατιστικών µεθόδων. Οι ϕωλιασµένοι βρόχοι παρουσιάζουνµια ακολουθία χαρακτηριστικών, όπως είναι η κανονικότητα της προγραµµατιστικήςδοµής, η σχετικά οµοιόµορϕη κατανοµή του υπολογιστικού ϕορτίου ανά επανάληψη, η έµϕασησε ζητήµατα επικοινωνίας και συγχρονισµού έναντι άλλων βασικών ζητηµάτων της ΠαράλληληςΕπεξεργασίας (π.χ. αρχική κατανοµή των δεδοµένων εισόδου, αποθήκευση των δεδοµένωνεξόδου, περιορισµός της επιβάρυνσης εισόδου/εξόδου, δυναµική διαµόρϕωση του πλήθους τωνδιεργασιών σε χρόνο εκτέλεσης κ.ά.) που δεν αντιπροσωπεύουν κατ' ανάγκη το σύνολο των υπολογιστικάαπαιτητικών εϕαρµογών. Πιστεύουµε ότι απαιτείται συνεργασία σε διεπιστηµονικόεπίπεδο, ώστε να εξεταστούν τόσο ζητήµατα βελτιστοποιήσεων που άπτονται της συµπεριϕοράςτου υλικού και του λογισµικού των παράλληλων συστηµάτων όσο όµως και βασικά θέµατα αλγοριθµικήςϕύσεως, όπως η θεωρητική αξιολόγηση της πολυπλοκότητας και της ευστάθειας µιαςµεθόδου επίλυσης, η κατανόηση της ϕυσικής σηµασίας ενός προβλήµατος, η επιλογή βέλτιστουσυνόλου ϕυσικών παραµέτρων ή/και αρχικών τιµών για συγκεκριµένο συνδυασµό αλγορίθµουκαι δεδοµένων εισόδου, η εστίαση της προγραµµατιστικής προσπάθειας σε συγκεκριµένα πεδία


• Οµοίως, η διασϕάλιση πλήρους πολυνηµατικής υποστήριξης (επίπεδο LL173επιστηµονικού ενδιαϕέροντος κ.ο.κ.• Η υβριδική ή γενικότερα πολυεπίπεδη παραλληλοποίηση είναι σίγουρο ότι έχει µελλοντικά πολλάνα προσϕέρει, ιδιαίτερα καθώς παρατηρείται µια τάση προς τις ιεραρχικές αρχιτεκτονικές υψηλώνεπιδόσεων. Στο πλαίσιο της παρούσας διατριβής έγινε απόπειρα να αξιοποιηθούν κυρίωςτα πλεονεκτήµατα των υβριδικών µοντέλων που αϕορούν στην ελαχιστοποίηση του κόστουςεπικοινωνίας, ιδίως σε αρχιτεκτονικές κατανεµηµένης µοιραζόµενης µνήµης. Εντούτοις, θα µπορούσεκανείς να εκµεταλλευτεί πολλά ακόµη προτερήµατα της υβριδικής παραλληλοποίησης,όπως αυτά περιγράϕονται και στην εργασία [SB01]. Ενδεικτικά αναϕέρουµε τις δυνατότητεςγια εύκολη δυναµική εξισορρόπηση ϕορτίου π.χ. για τη διεκπεραίωση µη κανονικών υπολογισµών,την περίπτωση εϕαρµογών που ευνοούνται εγγενώς από παραλληλισµό λεπτού κόκκου,την αποϕυγή ενδεχόµενων περιορισµών που σχετίζονται µε το πλήθος των διεργασιών ή τηνεπεκτασιµότητα της βιβλιοθήκης ανταλλαγής µηνυµάτων, τον περιορισµό των αντιγράϕων δεδοµένωνµε αξιοποίηση του κοινού χώρου διευθύνσεων κ.ά.• Τα σύγχρονα δίκτυα διασύνδεσης (π.χ. Infinib<strong>and</strong>, Myrinet, Gigabit E<strong>the</strong>rnet) εξελίσσονται συνεχώςκαι επιτυγχάνουν ολοένα και χαµηλότερες τιµές αρχικής καθυστέρησης διάδοσης, προσεγγίζονταςµάλιστα το µέσο χρόνο προσπέλασης της τοπικής µνήµης. Απόρροια του γεγονότοςαυτού είναι µεταξύ άλλων και η προτυποποίηση νέων λειτουργιών στις βιβλιοθήκες ανταλλαγήςµηνυµάτων, όπως οι λειτουργίες µονόπλευρης επικοινωνίας (RMA) του MPI-2 προτύπου. Ηεϕαρµογή των λειτουργιών αυτών στην παραλληλοποίηση πραγµατικών αλγορίθµων βρίσκεταιακόµα σε πρώιµο στάδιο, και αναµένεται να αποτελέσει αντικείµενο µελλοντικής έρευνας.I$HJM2¤4©Heτου MPI προτύπου) τελεί στην παρούσα ϕάση υπό ανάπτυξη σε κάποιες περιπτώσεις δηµοϕιλών4M2 J©d©K©ef©>βιβλιοθηκών ανταλλαγής µηνυµάτων ανοιχτού κώδικα, όπως η Open MPI, και διατίθεται µόνοαπό λίγες κλειστές βιβλιοθήκες εµπορικού τύπου, όπως η MPI/Pro. Ένα ζήτηµα που εξετάστηκεµερικώς στην παρούσα εργασία και χρήζει περαιτέρω διερεύνησης και κυρίως πειραµατικήςαξιολόγησης είναι κατά πόσο η ευχέρεια που παρέχει η πλήρης πολυνηµατική υποστήριξη στηνκλήση λειτουργιών ανταλλαγής µηνυµάτων από όλα τα νήµατα µπορεί να αποϕέρει µικρότερουςχρόνους εκτέλεσης από ένα funneled µοντέλο χονδρού κόκκου, που χρησιµοποιεί κάποιο σχήµααποδοτικής εξισορρόπησης ϕορτίου και παράλληλα αποϕεύγει την πρόσθετη επιβάρυνση πουσχετίζεται µε τη διασϕάλιση πλήρους πολυνηµατικής υποστήριξης (π.χ. κλειδώµατα κατά τηνπρόσβαση σε κοινές δοµές επικοινωνίας ή σε συγκεκριµένα τµήµατα του κώδικα ανταλλαγήςµηνυµάτων).• ∆ύο περαιτέρω νέα στοιχεία που προτυποποιούνται στο MPI-2 και υποστηρίζονται σε πρώιµο


174 Συµπεράσµατα - Προτάσεις για Μελλοντική Έρευναστάδιο από νέες υλοποιήσεις είναι η δυνατότητα δυναµικής διαχείρισης των διεργασιών (dynamicprocess management) καθώς και η παράλληλη είσοδος και έξοδος (parallel I/O). Οι δυνατότητεςαυτές θα µπορούσαν να χρησιµεύσουν ιδίως σε εϕαρµογές µε µεταβλητό ϕορτίο, που δεν µπορείνα προβλεϕθεί µε ακρίβεια κατά το χρόνο µεταγλώττισης, καθώς και σε εϕαρµογές των οποίωνη επίδοση περιορίζεται σηµαντικά από λειτουργίες εισόδου/εξόδου.• Η επιλογή κατάλληλης καρτεσιανής τοπολογίας διεργασιών θα µπορούσε να ενσωµατωθεί στη4M2 §£©C¦$ 3C£©¦βιβλιοθήκη Lανταλλαγής µηνυµάτων (π.χ. κλήση του MPI) εϕόσον προσκο-µίζεται επιπλέον πληροϕορία για τη σηµασιολογία του αλγορίθµου, όπως η µορϕή του χώρουεπαναλήψεων ή οι αλγοριθµικές εξαρτήσεις δεδοµένων που οδηγούν σε επικοινωνία. Η δουλειάπου έχει καταγραϕεί στη διεθνή βιβλιογραϕία προς την κατεύθυνση αυτή, µέρος της οποίας έχειενσωµατωθεί σε υλοποιήσεις της βιβλιοθήκης MPI, αϕορά στον καθορισµό καρτεσιανής τοπολογίαςπου στοχεύει να αντιστοιχίσει διεργασίες που επικοινωνούν για ανταλλαγή δεδοµένωνσε κόµβους της υϕιστάµενης αρχιτεκτονικής που επιτυγχάνουν συγκριτικά ταχύτερη αµοιβαίαπρόσβαση, µε δεδοµένο όµως το πλήθος των διεργασιών σε κάθε διάσταση της τοπολογίας. Θαήταν ίσως ενδιαϕέρον να εξεταστεί κατά πόσο είναι χρήσιµος ο αυτόµατος προσδιορισµός µιαςπροτεινόµενης τοπολογίας από τη βιβλιοθήκη ανταλλαγής µηνυµάτων, που να εϕαρµόζει τις τεχνικέςτης παρούσας διατριβής για την ελαχιστοποίηση του όγκου των δεδοµένων επικοινωνίας.• Τέλος, ένα µεγάλο ανοιχτό ερευνητικό ζήτηµα παραµένει ο κατά το δυνατόν αυτόµατος προσδιορισµόςτου βέλτιστου κόκκου παραλληλισµού για µια δεδοµένη αρχιτεκτονική υποδοµή και ένασυγκεκριµένο αλγόριθµο ϕωλιασµένων βρόχων. Στο πλαίσιο της παρούσας εργασίας θεωρήσαµετη µία από τις διαστάσεις του υπερκόµβου (ύψος z) ως ελεύθερη παράµετρο, επιτρέποντας έτσιτον πειραµατικό καθορισµό του βέλτιστου κόκκου παραλληλισµού. Θα ήταν σίγουρα εξαιρετικάχρήσιµο αν η βέλτιστη τιµή σε κάθε περίπτωση µπορούσε να προκύψει από την ακριβή συνεκτίµησητης πληθώρας των παραµέτρων που επηρεάζουν τη συνολική επίδοση του παράλληλουπρογράµµατος (π.χ. σχετικό κόστος υπολογισµού-επικοινωνίας, τρόπος προσπέλασης δεδοµένωνστην ιεραρχία µνήµης, επιβαρύνσεις υλικού και λογισµικού κ.ά.).


ΠΑΡΑΡΤΗΜΑ ΑΤο Πρότυπο MPIΤο Message Passing Interface (MPI) αποτελεί µια προσπάθεια για καταγραϕή, οργάνωση και προτυποποίησητων κυριότερων λειτουργιών που θα πρέπει να υποστηρίζει ένα προγραµµατιστικό περιβάλλονανταλλαγής µηνυµάτων, µε άξονες τη λειτουργικότητα, τη ϕορητότητα και την επίτευξη υψηλήςεπίδοσης σε επίπεδο εϕαρµογής. Η προσπάθεια αυτή ξεκίνησε ουσιαστικά το 1992 από µια οµάδασυντελεστών προερχόµενων από τους χώρους της ακαδηµαϊκής έρευνας, των υπολογιστών και τηςβιοµηχανίας. Σε γενικές γραµµές, ο στόχος της προσπάθειας αυτής ήταν η ανάπτυξη ενός εύχρηστουπρογραµµατιστικού περιβάλλοντος για τη συγγραϕή προγραµµάτων ανταλλαγής µηνυµάτων, που θαγινόταν ευρύτερα αποδεκτό από την ενδιαϕερόµενη κοινότητα. Τον Ιούνιο του 1994 συντάχθηκε η έκδοση1.0 του προτύπου MPI, η οποία µετεξελίχθηκε σε 1.1 τον επόµενο χρόνο και σε 1.2 λίγο αργότερα,χωρίς πάντως σηµαντικές διαϕορές σε σχέση µε την αρχική έκδοση 1.0. Σηµαντική εξέλιξη υπήρξε το1997, όταν ολοκληρώθηκε η καταγραϕή της έκδοσης 2.0 του προτύπου, που επιπλέον προδιαγράϕει καινέους τύπους λειτουργιών σε σχέση µε την αρχική προσέγγιση. Στη σηµερινή πραγµατικότητα, το MPIέχει επικρατήσει ως η πλέον διαδεδοµένη και ευρύτερα αποδεκτή βιβλιοθήκη ανταλλαγής µηνυµάτωνκαι χρησιµοποιείται κατά κόρον στο χώρο της παράλληλης επεξεργασίας.Βάσει του προτύπου MPI-1.2 δοµική µονάδα του παράλληλου προγράµµατος είναι η διεργασία(process). Οι διεργασίες οργανώνονται σε οµάδες (groups), στο πλαίσιο των οποίων αποδίδεται ωςµοναδικό αναγνωριστικό σε κάθε διεργασία ένας ακέραιος βαθµός (rank). Χρησιµοποιώντας το βαθ-µό της κάθε διεργασία µπορεί να διαϕοροποιήσει τη ροή εκτέλεσής της, επενεργώντας πάνω σε δια-ϕορετικό υποσύνολο των δεδοµένων ή/και εκτελώντας διαϕορετικούς υπολογισµούς. Οι λειτουργίες


176 Το Πρότυπο MPIεπικοινωνίας οµαδοποιούνται σε δύο βασικές κατηγορίες: από σηµείο σε σηµείο (point-to-point) καισυλλογικής επικοινωνίας (collective communication). Για κάθε κατηγορία, ορίζεται η σηµασιολογίαεναλλακτικών δυνατοτήτων αποστολής και λήψης, π.χ. σύγχρονη, ασύγχρονη κλπ. Ουσιαστικά, προδιαγράϕονταςπληθώρα δυνατοτήτων και χαρακτηριστικών επικοινωνίας σε αϕαιρετικό επίπεδο, τοMPI αϕενός διασϕαλίζει ϕορητότητα (µεταϕερσιµότητα) σε πολλαπλές αρχιτεκτονικές και αϕετέρουπαρέχει στον προγραµµατιστή µιας υλοποίησης του MPI τη δυνατότητα υποστήριξης προηγµένων αρχιτεκτονικώνχαρακτηριστικών. Επιπλέον, το πρότυπο MPI-2 προδιαγράϕει υποστήριξη για δυναµικήδιαχείριση διεργασιών (dynamic process management), αποµακρυσµένη προσπέλαση στη µνήµη (remotememory access) και παράλληλη είσοδο/έξοδο (parallel I/O).Θα πρέπει να τονιστεί πως το MPI δεν είναι µια συγκεκριµένη υλοποίηση ενός περιβάλλοντοςανταλλαγής µηνυµάτων, αλλά ένα πρότυπο που ορίζει τις σχετικές λειτουργίες που θα πρέπει να υποστηρίζειµια τέτοια βιβλιοθήκη και προσδιορίζει τη σηµασιολογία αυτών. Έτσι, πολλοί κατασκευαστέςλογισµικού παρέχουν ελεύθερες ή κλειστού τύπου (εµπορικές) υλοποιήσεις της βιβλιοθήκης MPI, πουσυµµορϕώνονται στο πρότυπο του MPI και προορίζονται για πληθώρα παράλληλων αρχιτεκτονικών.Ενδεικτικά µπορεί κανείς να παραθέσει τις ακόλουθες υλοποιήσεις:¦©¦§kkk!+©NM¡;l:m©¥b#C§N¢n8¨O$T:$M¡T:$M¡[ • MPICH ] Η πλέον δηµοϕιλής υλοποίηση ανοιχτούκώδικα του MPI. Υποστηρίζει µια πληθώρα υϕιστάµενων παράλληλων αρχιτεκτονικών, ενώσε αϕαιρετικό επίπεδο ορίζει τη συσκευή ADI (Abstract Device Interface, Αϕαιρετική ∆ιεπαϕήΣυσκευής), που επιτρέπει µε δοµηµένο τρόπο την υλοποίηση κώδικα για υποστήριξη µιας νέαςαρχιτεκτονικής δικτύου. Η συσκευή ADI (µετέπειτα ADI-2 και ADI-3) αποτελεί το βασικό λόγογια τον οποίο η υλοποίηση MPICH έχει χρησιµεύσει ως βάση για την ανάπτυξη πολλών άλλωνυλοποιήσεων του MPI. Υποστηρίζει το πρότυπο MPI-1.2.¦¦0kk©k!+©NM¡;Ao:m¥b@C§N!68¨O!T:M¡T:m¡ *• MPICH2 ] Αποτελεί προσπάθεια για αναθεώρησηκαι βελτίωση της υλοποίησης MPICH, µε βασικό άξονα την υποστήριξη του[προτύπουMPI-2 του MPI. ∆εν βασίζεται στην αρχιτεκτονική του καναλιού Chameleon ή στη σχετικά παλιάβιβλιοθήκη P4 για την υλοποίηση της επικοινωνίας (όπως το MPICH), αλλά αντίθετα διαχωρίζειτη διαχείριση των διεργασιών µε το σκέλος της επικοινωνίας. Για το πρώτο χρησιµοποιεί τηναρχιτεκτονική δαίµονα του mpd, ενώ για το δεύτερο εϕαρµόζει την αρχιτεκτονική αϕαιρετικήςδιεπαϕής συσκευής ADI-3.• [¦©¦@©0kkkl:$


L177•¦©¦§kkkC;:M+:M¡"@£¨!LAM/MPI ] Άλλη µια δηµοϕιλής υλοποίηση ανοιχτού κώδικα[MPI, που παρέχει πλήρη υποστήριξη για το πρότυπο MPI-1.2 και µερική υποστήριξη για το MPI-2. Παρέχει κάλυψη για πληθώρα δικτύων διασύνδεσης (π.χ. Myrinet, TCP/IP, Infinib<strong>and</strong>, µοιραζόµενηµνήµη κ.ά.), ενώ υιοθετεί µια δοµηµένη (modular) προσέγγιση, που διευκολύνει τηνεπέκταση της παρεχόµενης υποστήριξης σε διαϕορετικούς τύπους αρχιτεκτονικών και παρέχειευελιξία επιλογών σε χρόνο εκτέλεσης.¦¦0©F!¡b@CN!n8¨$O$©C;:m¡[• LA-MPI ] Μια ακόµη υλοποίηση ανοιχτού κώδικα, πουπαρέχει υποστήριξη για το πρότυπο MPI-1.2 και πληθώρα αρχιτεκτονικών (π.χ. Intel IA32, IntelIA64, AMD Opteron, PowerPC, Alpha, MIPS) και δικτύων διασύνδεσης (µοιραζόµενη µνήµη,E<strong>the</strong>rnet, Myrinet, QSNet, InfiniB<strong>and</strong> κ.ά.). Παράλληλα µε την επίτευξη υψηλής απόδοσης δίνειιδιαίτερη έµϕαση στο ζήτηµα της ανοχής σϕαλµάτων (fault-tolerance).] Υλοποί-•¦©¦@©0kkk@ F¥b8£k©¦ +!CC §Np©0¥£!¥q©C ¡(:M?32+ 4M2¤3d!SCI-MPICH [ηση ανοιχτού τύπου (MPI-1.2), που βασίζεται στην MPICH και παρέχει υποστήριξη για το δίκτυοδιασύνδεσης SCI µέσω των βιβλιοθηκών IRM και SISCI.•¦¦@©0kk©k#§!§N!+:$M¡"@£¨$[ Open MPI ] Αποτελεί µια προσπάθεια για ενοποίηση και ενσω-µάτωση των πλεονεκτηµάτων άλλων υλοποιήσεων του MPI (π.χ. FT-MPI, LA-MPI, LAM/MPIκαι PACX-MPI) προς την κατεύθυνση µιας υλοποίησης ανοιχτού κώδικα δοµηµένης αρχιτεκτονικής,που να παρέχει πλήρη υποστήριξη για το πρότυπο MPI-2.¦©¦@©0kkkl:M¡+¢¥ ¦¦ ;:M• MPI/Pro ] Αποτελεί εµπορική (κλειστού τύπου) υλοποίηση.∆ιαθέτει προηγµένα χαρακτηριστικά, όπως πλήρη υποστήριξη του MPI-2,[πολυνηµατικήυποστήριξη, πραγµατική επικάλυψη υπολογισµού και επικοινωνίας κ.ά.


178 Το Πρότυπο MPI


ΠΑΡΑΡΤΗΜΑ ΒΤο Πρότυπο OpenMPΤο OpenMP (Open Multi Processing) αποτελεί πρότυπο που ορίζει ένα σύνολο οδηγιών µεταγλωττιστή,συναρτήσεων βιβλιοθήκης και µεταβλητών συστήµατος για παραλληλισµό µοιραζόµενης µνήµηςσε Fortran, C και C++. Πρόκειται ουσιαστικά για µια διεπαϕή προγραµµατισµού εϕαρµογής (ApplicationProgram Interface - API) που επιτρέπει την ανάπτυξη ϕορητών πολυνηµατικών εϕαρµογών γιααρχιτεκτονικές µοιραζόµενης µνήµης. Ιστορικά, το πρώτο πρότυπο του OpenMP (1.0) εκδόθηκε τονΟκτώβριο του 1997 για Fortran και ένα χρόνο µετά για C/C++. Το Νοέµβριο του 1999 προτάθηκε ηέκδοση 1.1 του προτύπου για Fortran, ενώ ακολούθησε η έκδοση 2.0 του προτύπου, που δηµοσιεύτηκετο Νοέµβριο του 2000 για Fortran και το Μάρτιο του 2002 για C/C++. Η τρέχουσα έκδοση (2.5)δηµοσιεύτηκε το Μάιο του 2005 και µεταξύ άλλων ενοποιεί τα πρότυπα για τις γλώσσες C/C++ καιFortran.Το OpenMP προσϕέρεται κυρίως για την εύκολη πολυνηµατική παραλληλοποίηση εϕαρµογών πουβασίζονται σε πίνακες (array-based applications). Ο αρχικός σειριακός αλγόριθµος παραλληλοποιείταιµέσω της κατανοµής και απεικόνισης της υπολογιστικής ροής σε νήµατα εκτέλεσης, τα οποία διατηρούντόσο ιδιωτικά (private) όσο και µοιραζόµενα (shared) δεδοµένα. Η διάκριση αυτή στα δεδοµένατων νηµάτων αντανακλά την ύπαρξη αναγκαιότητας ή µη για την επικοινωνία µεταξύ των νηµάτωνκαι οδηγεί αναπόϕευκτα σε ανάγκη συγχρονισµού για τη διασϕάλιση της σηµασιολογικά ορθής ακολουθίαςπρόσβασης στα µοιραζόµενα δεδοµένα. Συγχρονισµός απαιτείται επίσης σε περιπτώσεις όπουυλοποιούνται λειτουργίες εισόδου/εξόδου σε πολυνηµατικό επίπεδο.Η βασική αρχή προγραµµατισµού της διεπαϕής OpenMP ακολουθεί το µοντέλο διακλάδωσης-


180 Το Πρότυπο OpenMPένωσης (<strong>for</strong>k-join): αρχικά εκκινείται µοναδικό νήµα εκτέλεσης, που χαρακτηρίζεται και ως πρωτεύοννήµα (master thread). Όταν το πρωτεύον νήµα συναντήσει κάποια παράλληλη περιοχή, η ροή εκτέλεσηςδιακλαδώνεται σε πολλαπλά νήµατα, ένα εκ των οποίων παραµένει και το αρχικό πρωτεύον νήµα.Κατά την έξοδο από την παράλληλη περιοχή τα νήµατα συνενώνονται και µόνο το πρωτεύον συνεχίζειτην εκτέλεση του προγράµµατος. Τα νήµατα επικοινωνούν µε µοιραζόµενες µεταβλητές, ενώ όπουδεν παρουσιάζεται ανάγκη επικοινωνίας χρησιµοποιούνται ιδιωτικές µεταβλητές. Η ύπαρξη µοιραζό-µενων µεταβλητών συνεπάγεται κατά κανόνα ανεπιθύµητες συνθήκες ανταγωνισµού µεταξύ των νη-µάτων (race conditions), για την αποϕυγή των οποίων απαιτείται η υλοποίηση κατάλληλου συγχρονισµού(synchronization). ∆εδοµένου ότι ο συγχρονισµός αυτός αϕενός είναι «ακριβός» σε υπολογιστικήπολυπλοκότητα ή/και κατανάλωση διαθέσιµων πόρων, αϕετέρου περιορίζει το βαθµό παραλληλίας, ηαποδοτικότητα του παραλληλοποιηµένου προγράµµατος βρίσκεται σε άµεση αντιστοιχία µε την ελαχιστοποίησητου χρησιµοποιούµενου συγχρονισµού.Σε επίπεδο διεπαϕής, το OpenMP παρέχει την απαιτούµενη προγραµµατιστική ευκολία για τηνκατά το δυνατόν άµεση πολυνηµατική παραλληλοποίηση ενός υπάρχοντος κώδικα Fortran ή C/C++.Έτσι, αντίθετα µε άλλες προσεγγίσεις πολυνηµατικής επεξεργασίας, το πρότυπο OpenMP διευκολύνειτον επαυξητικό παραλληλισµό ενός υπάρχοντος σειριακού κώδικα µέσω της προσθήκης κατάλληλωνοδηγιών προς το µεταγλωττιστή, χωρίς να απαιτείται σηµαντική αναµόρϕωση του αρχικού κώδικα.Μάλιστα, ένα πρόγραµµα σε OpenMP µπορεί να εκτελεστεί και σειριακά (µονονηµατικό περιβάλλον)σε περίπτωση που δεν υπάρχει η απαιτούµενη πολυνηµατική υποστήριξη είτε από το µεταγλωττιστή,είτε από την υϕιστάµενη αρχιτεκτονική, υπό την προϋπόθεση βέβαια πως έχει ληϕθεί η αντίστοιχηµέριµνα σε σηµασιολογικό επίπεδο από τον προγραµµατιστή.Ο πυρήνας του OpenMP είναι οι οδηγίες προς τον µεταγλωττιστή, που σύµϕωνα µε το πρότυποοµαδοποιούνται στις ακόλουθες κατηγορίες:1. Παράλληλες περιοχές (parallel regions)Αποτελούν τη βασική οδηγία δηµιουργίας παράλληλων περιοχών πολυνηµατικής επεξεργασίας.∆ηµιουργούν οµάδα νηµάτων, ο αριθµός των οποίων καθορίζεται είτε δυναµικά είτε στατικά. ΣεC/C++ η αντίστοιχη οδηγία είναι η .!C£C©©2. Κατανοµή εργασίας (work sharing constructs)Επιτρέπουν την κατανοµή εργασίας µεταξύ των διαθέσιµων νηµάτων. Θα πρέπει να τονιστείπως οι οδηγίες αυτές δεν δηµιουργούν νέα νήµατα, αλλά µοιράζουν τον όγκο υπολογισµού σταυπάρχοντα, που έχουν δηµιουργηθεί πρωτύτερα µε κάποια οδηγία . Σε C/C++ προβλέπονταιοι οδηγίες !C£$C©© (κατανοµή επαναλήψεων εντολής <strong>for</strong> µε στατικό, δυναµικό ή εκθετικό£


181τρόπο), ¥§¦M¡§N¢¥ (ορισµός ανεξάρτητων περιοχών που κατανέµονται µεταξύ των νηµάτων) και¥¡;N¨$(τµήµα κώδικα µονονηµατικής εκτέλεσης).3. Παράλληλες περιοχές κατανοµής εργασίας (parallel work sharing constructs)Αποτελούν ένα συνδυασµό των δύο παραπάνω περιπτώσεων, δηλαδή επιτρέπουν τη δηµιουργίαοµάδας νηµάτων, στην οποία ταυτόχρονα κατανέµεται εργασία. Σε C/C++ ορίζονται οι οδηγίες£και .!C£$C©s¥§¦¡§N¢¥ !C£$C©©r4. Σειριακή εκτέλεση - συγχρονισµός (master <strong>and</strong> synchronization directives)Ορίζεται οµάδα λειτουργιών, που επιτρέπει αϕενός την επίτευξη συγχρονισµού µεταξύ των διεργασιώνκαι αϕετέρου την υλοποίηση σειριακής εκτέλεσης σε περιοχές πολυνηµατικής επεξεργασίας.Έτσι, σε C/C++ η οδηγία ορίζει τµήµα κώδικα που εκτελείται µόνο από το πρωτεύοννήµα της οµάδας. Η :MC¥§¦$£ οριοθετεί µια περιοχή, στην οποία επιτρέπεται σε κάθε χρονικήστιγµή η πρόσβαση το πολύ σε ένα νήµα της οµάδας. Η οδηγία §£M¡¤¦M¡C συγχρονίζει όλα ταυπάρχοντα νήµατα της οµάδας, ενώ η F!C££M¡£ ενηµερώνει ατοµικά µια περιοχή µνήµης. Η οδηγίαC¦$;:"¡$§¥υποδεικνύει τόσο στους µεταγλωττιστές να αποκαταστήσουν τις τιµές των καταχωρητώνστη µνήµη (λειτουργία volatile της C) όσο και στο υλικό να αποκαταστήσει τους αποµονωτέςεγγραϕής στη µνήµη. Τέλος, η λειτουργία επιβάλλει σειριακή εκτέλεση ενός βρόχου<strong>for</strong> που περιέχεται σε µια παράλληλη περιοχή πολυνηµατικής επεξεργασίας.££5. Περιβάλλον δεδοµένων (data environment)Περιλαµβάνει µία οδηγία και περισσότερες προτάσεις (clauses) για τον έλεγχο του περιβάλλοντοςδεδοµένων σε παράλληλες περιοχές. Έτσι, σε C/C++ ορίζεται£$©C£¡;OC¦ η οδηγία ,καθώς και ¦ οι προτάσεις , , , ¥ C£$ , , , C§¢§¦ £¢0¦M¡§§N C¥0¦©£¡¤OC¦ ¡;£!¥§¦©£¡¤OC¦ £M¡;O$C¦και §


182 Το Πρότυπο OpenMPχρόνο εκτέλεσης, καθώς και στον ορισµό του µέγιστου αριθµού νηµάτων του παράλληλου προγράµ-µατος.Εκτενέστερη παρουσίαση του προτύπου OpenMP υπάρχει στα [Boa05,DM98]. Το πρότυπο Open-MP εµϕανίζει στην παρούσα ϕάση αρκετά σηµαντικούς περιορισµούς στην επίδοση, όπως η µη υποστήριξηϕωλιασµένου παραλληλισµού και οι περιορισµένες δυνατότητες εξισορρόπησης ϕορτίου µεταξύτων νηµάτων. Αρκετά ενδιαϕέρουσες προεκτάσεις του προτύπου αναϕορικά µε τα παραπάνω ζητήµαταέχουν προταθεί στο µεταγλωττιστή NanosCompiler [GAM + 00]. Για τις ανάγκες της παρούσας εργασίαςχρησιµοποιήθηκε ο µεταγλωττιστής C/C++ της Intel (icc), που µπορεί να αναζητηθεί στη δικτυακήδιεύθυνση και στην παρού-¦k!C£©§©£¢0¦¢¥©¤:M¡£!¥©¡;N!¦©¦0k©kkX¡TN©¦n¤:M©¥σα ϕάση παρέχει υποστήριξη για το πρότυπο 2.5 του OpenMP. Οι εκδόσεις του icc µεταγλωττιστή πουχρησιµοποιήθηκαν ήταν οι 8.1 και 9.


ΠΑΡΑΡΤΗΜΑ ΓΣχεδίαση Υλοποίησης MPICHΗ υλοποίηση MPICH αποτελεί ενδεχοµένως τη δηµοϕιλέστερη υλοποίηση του προτύπου MPI, καθώςµεταξύ άλλων έχει χρησιµεύσει ως βάση για την προσαρµογή του περιβάλλοντος MPI σε πολλάπροηγµένα δίκτυα διασύνδεσης (π.χ. MPICH-GM για το δίκτυο Myrinet ή SCI-MPICH για το δίκτυοSCI). Βασικό προτέρηµα της βιβλιοθήκης MPICH είναι ότι αποτελεί ελεύθερο λογισµικό ανοιχτού κώδικα,συνεπώς η στρωµατική αρχιτεκτονική της επιτρέπει τόσο τη µελέτη του κώδικα για κατανόησητης λειτουργίας και βελτιστοποίηση της επίδοσης όσο και την επέκταση της υλοποίησης, όπου αυτήκρίνεται αναγκαία. Στην ενότητα αυτή θα δώσουµε µια εποπτική εικόνα της δοµής του κώδικα της βιβλιοθήκηςMPICH (έκδοση 1.2.5.2), καθώς θεωρούµε ότι η έστω µερική κατανόηση της λειτουργίαςτου υϕιστάµενου λογισµικού ανταλλαγής µηνυµάτων µπορεί να συντελέσει στον αποδοτικότερο παράλληλοπρογραµµατισµό αρχιτεκτονικών κατανεµηµένης µνήµης. Αντίστοιχα προς τις απαιτήσεις τηςπαρούσας διατριβής, θα αρκεστούµε στην αναϕορά σε ρουτίνες επικοινωνίας από σηµείο προς σηµείο(point-to-point communication), καθώς και στη γενική αρχικοποίηση και διαχείριση του καναλιού επικοινωνίας.Αντίθετα, δεν θα επεκταθούµε σε άλλες δυνατότητες και χαρακτηριστικά του MPI, όπως οιρουτίνες συλλογικής επικοινωνίας, οι ρουτίνες συγχρονισµού, η συλλογή στατιστικών στοιχείων κ.ά.Η βιβλιοθήκη MPICH ακολουθεί µια ιεραρχική δοµή, στο ανώτερο επίπεδο της οποίας υλοποιούνταιοι λειτουργίες του προτύπου 1.2 του MPI (σχήµα Γ.1). Στην ουσία, κατά την κλήση µιας ρουτίναςεπικοινωνίας του MPI ο έλεγχος µεταβιβάζεται άµεσα σε αντίστοιχες ρουτίνες του περιβάλλοντοςεκτέλεσης MPIR ή τελικά της αϕαιρετικής διεπαϕής συσκευής ADI-2 (Abstract Device Interface) τουMPID, που αντιστοιχεί στο κανάλι CH του MPICH. Τελικά, το κανάλι CH θα προχωρήσει σε κλήση


LRLLLLR184 Σχεδίαση Υλοποίησης MPICHπ ρ ο γ ρ α µ µ α τ ι σ τ ή ςπ ρ ό τ υ π ο MPIMPIRMPID(CH ADI-2)β ι β λ ι ο θ ή κ η P4s o c k e t ss h m e mυ λ ι κ όΣχήµα Γ.1: Στρωµατική σχεδίαση της επικοινωνίας από σηµείο προς σηµείο στο MPICHρουτινών της βιβλιοθήκης P4 (Portable Programs <strong>for</strong> <strong>Parallel</strong> Processors), που σε περιβάλλοντα κατανεµηµένηςµοιραζόµενης µνήµης θα οδηγήσουν τελικά στη χρήση είτε της διεπαϕής sockets για ανταλλαγήµηνυµάτων πάνω από το δίκτυο διασύνδεσης, είτε µοιραζόµενης µνήµης SYS V για την περίπτωσηεπικοινωνίας στο εσωτερικό ενός κόµβου.Γ.1 Βασικές ∆οµέςΒασική δοµή του MPICH4M2¤> 4©£¦$©Lείναι η δοµή , που περιλαµβάνει τις διάϕορες µεθόδους επικοινωνίαςγια κάθε σηµασιολογικό πρωτόκολλο του MPICH. Όπως θα δούµε, ανάλογα µε το µέγεθοςτου µηνύµατος το MPICH διαϕοροποιεί τη διαδικασία αποστολής δεδοµένων σε short, eager ή rendezvous,υιοθετώντας διαϕορετικές προσεγγίσεις σε ζητήµατα συγχρονισµού αποστολέα-παραλήπτηκαι ενδιάµεσης αποθήκευσης δεδοµένων. ∆είκτες προς τις συναρτήσεις επικοινωνίας ορίζονται στηδοµή L4M2¤> 4£$¦$©, που περιγράϕεται στο αρχείο mpid/ch2/dev.h:¦©!u§4£¦4M2;>!u4£¦$Qv¥§¦£§¦tu4M2¤>$u4£¦xw¡;N©¦yP(z©¥NP@O$$¡0jz"{|¡;N¦S{}¡;N©¦S{}¡;N¦S{}¡TN¦S{}¡;N©¦S{4M2¤>$u¥§¨£§¢u§¦v


LLLLRRRRLRRRRRRRRPLLPLPLPLPLPLPLPLPLPLRLLRRPLPLRvLvRRRRRvvLvRvvLLvRRRRRvvvRvvRvRvΓ.1 Βασικές ∆οµές 185¡TN¦yP(z0£$0O4M2¤K!u§Kdf©~>©Hez"{€¡TN¦S{ O$$¡0jz¡TN¦yP(z¡¥§NP@O!¡0jz"{|¡;N¦S{}¡TN¦S{}¡;N¦'{}¡;N¦S{}¡;N©¦S{4M2;>!u¥0¨©£§!u¦'{4M2¤K$u?df©~>©Hejz¡TN¦yP(z¤k!C!¡;¦!u©¥N4M2¤K!u?df©~>©Hez¡TN¦yP(z¤©¥u©¥N4M2¤K!u?df©~>©Hez¡TN¦yP(zCN¢©u¥§N4M2¤K!u?df©~>©Hez¡TN¦yP(z¡¤£$§O4M2¤K!u§Kdf©~>©Hez"{€¡TN¦S{ O$$¡0jz¡TN¦yP(z¤k!C!¡;¦!u§£0O4M2¤K!u§Kdf©~>©Hez"{4M2u?¦C¦¢¥xz¡TN¦yP(z¤©¥u§£0O4M2¤K!u§Kdf©~>©Hez¡TN¦yP(zCN¢©u£0O4M2¤K!u§Kdf©~>©Hez¡TN¦yP(z¤©N!4M2¤K!u§Kdf©~>©Hez"{€¡TN¦S{ O$$¡0jz¡TN¦yP(z§uC0UP@O!¡0jz"{|¡;N¦O!¡0‚P(z¦4M2¤>!u§4£¦szv ƒΓια παράδειγµα, οι και είναι δείκτες προς τις συναρτήσεις απλής και ασύγχρονης αποστολής,αντίστοιχα. Οµοίως, οι ¥§N και αϕορούν ¡¥N περιπτώσεις κανονικής ή ασύγχρονης προειδο-¡¤£$§O £§Oποιηµένης λήψης, ενώ η ©N$ αντιµετωπίζει την απρόσµενη λήψη δεδοµένων.Στο ίδιο αρχείο περιγράϕεται και η L δοµή2:42¤> >$OM¡, που ορίζει µια συσκευή επικοινωνίας ADI-¦$u>O¡4M2¤>$u>OM¡nv¥0¦©£0¦ju4M2¤>$u§>$O¡sw¡TN¦N¨!uNS{„O!N©¨!uNSv4M2¤>!u§4©£¦©…z¥£¦$u;:m¥0¨S{†zN¨$u;:m¥0¨S{†z§O$N©¨!uT:m¥§¨'v4M2¤>!u§4©£¦©…z©C¨$£'{‡z0£NO'v¡TN¦z0¨©£$CN©U$u¦©uO$£C§N©USv¡TN¦PXz©0U!uO¡4M2¤>!u§>OM¡zQ{4M2;>!u§ˆHg3‰2;~Šu§J‹©4e¡TN¦PXz§¦$£§:G¡;N$C¦$4M2¤>!u§>OM¡…z¡TN¦PXzCF!£¦P(¥0¦©£0¦4M2;K!u3gI~203fJ$gKjzQ{|¡;N©¦S{‡C£zL©L¥0¦©£0¦ju4M2¤>$u>O¡…z0N!©¦Svƒ vΗ δοµή αυτή διατηρεί δείκτες στα διαϕορετικά πρωτόκολλα που υποστηρίζει η συσκευή (δείκτες σεδοµές L4M2¤> 4©£$¦$©τύπου ), ενώ ιδιαίτερα σηµαντική είναι η ρουτίνα 0U OM¡, που ορίζει τοβασικό τρόπο προσπέλασης της συσκευής για έλεγχο πακέτων και θα περιγραϕεί στην ενότητα Γ.6. Η


δοµή Lt¥§¦©£§¦tw¦© >O$?©¦NO'v42¤>!u>O¡…z©zOSv¡;N©¦NO$u©¡¥§¦'v42¤>!u>O¡…zO$u©¡¥§¦'v42uK$Œ$¥0¦x£$Œ$u0!§N¡TN©¨'vορίζει το σύνολο των εικονικών συσκευών ADI-2 του MPICH, ενώ για τον ίδιο σκοπό ορίζεται η κα-42¤> O!¥¦θολική µεταβλητή στο αρχείο mpid/ch2/adi2init.c. Θα πρέπει να τονιστεί πως Lπαρά τηνπαραµετρικότητα της αρχιτεκτονικής σχεδίασης, το MPICH είναι ουσιαστικά άρρηκτα συνδεδεµένο µετο κανάλι CH, που αποτελεί πρακτικά και τη µοναδική συσκευή ADI-2 που χρησιµοποιείται.4M2¤K ?d©f~©>He Kd©f©~©>©He42¤KΤέλος, στο Lαρχείο Lmpid/ch2/req.h ορίζονται οι δοµές και , που συσχετίζονταιµε µία δεδοµένη λειτουργία αποστολής ή λήψης, αντίστοιχα. Για παράδειγµα, η πρώτηορίζεται ως4M2¤>$u>O?¦Sv¦©©He4M2¤K!u?df~>He'v¥§¦£§¦tu4M2¤K$u?df©~>©Hetw42¤K!u©g§4J‹©4eCN$©u¦


LLLRRRPLPLPLPLPLRRRRRvvvvvΓ.2 Έλεγχος Ροής 1874M2¤>!u§K©~> c uJ£§O!uCNbv¡TN¦yP(z0¦$¥0¦4M2¤K$u?df~©>©Hejz¡TN¦yP(z¤©¥4M2¤K$u?df~©>©HejzmR¡TN¦yP(z¤k!C!¡;¦4M2¤K$u?df~©>©Hejz¡TN¦yP(zCN¢©4M2¤K$u?df~©>©Hejz¡TN¦yP(z§ ¡;NM¡¥4M2¤K$u?df~©>©HejzMRƒ vενώ ανάλογα ορίζεται και η δοµή L.Kd©f©~©>©He 4M2¤KΑπό τα παραπάνω θα µπορούσε κανείς να ξεχωρίσει τα πεδία και , πουN¦¡¤¨ C¥ F


kL, περιµένει επιβεβαίωση λήψης(LLPLLLLLLLLLmpid/ch2/chflow.c ορίζεται το κατώϕλι µνήµης :M¤:LLLRvRvRv) εϕόσον έχουν καταγραϕεί 40 εκκρεµή πακέτα (LRvLR188 Σχεδίαση Υλοποίησης MPICHκαι ταυτόχρονα να συνεχίσει να στέλνει πακέτα προς µια τρίτη διεργασία Γ. Ο έλεγχος ροής πακέτωνπραγµατοποιείται τακτικά σε πολλά σηµεία του κώδικα, π.χ. πριν την αποστολή ενός νέου πακέτου.Έτσι, το τµήµα κώδικαŽ¡¤ ©4M2¤>!u§4©f©3‰!u3g§~©JK$gH¡0 P4M2¤>$u4f©3‰eJ$uK©3 c >!uŠeJ'Pp©U©¦$+©¥§£!RR4M2;>!u?§N4£¦f!§U6Pp©U©¦$+¦b{‘U©¦!+¥0£¢42¤>!u4f©3‰©eJ$uf>>$uK©3 c >'Pp©U¦!+§¦$b{‘U©¦$+©¥0£!Ž§N¡0επαναλαµβάνεται σε πολλά σηµεία λήψης πακέτων και αποστέλλει επιβεβαίωση (Lεϕόσον έχουν ληϕθεί 25 ανεπιβεβαίωτα (L πακέταένα το πλήθος των πακέτων που έχουν (L ληϕθεί4©f3‰©e©J K3 c > Še©J42¤>4©f3‰©e©J f©>> K3 c >42¤>του παραπάνω κώδικα ορίζονται στο αρχείο mpid/ch2/chpackflow.h:αληθής), ενώ αυξάνει κατά4M2¤> ?©N4©£¦$f!0U). Οι βασικές µακροεντολές)Ž© ¡;N$4M2;>!u4f©3‰eJ$uK©3 c >!uŠeJ'Pp$C£¦N$£Rr’4M2¤>!u0$C§U$u¡;N 68$C0U!u§£!0OA“”!C£¦N!£©•x–—%˜i©i4M2u§4©U$uC0U§:MC£UŽ© ¡;N$4M2;>!u4f©3‰eJ$uf>>$uK©3 c >'P:n{‘!C£©¦N$£Rr’ελέγχει κατά πόσο µε το νέο εισερχόµενο πακέτο το πλήθος των ανεπι-όπου42¤> 4©f3‰©e©J K3 c > Še©Jη Lβεβαίωτων πακέτων ϕτάνει L το κατώϕλιτο πλήθος των ληϕθέντων πακέτων. Αντίστοιχα, ο κώδικας4M2 4UC§U:MC£U, ενώ η L4M2¤> 4©f3‰©e©J f©>> K3 c >ενηµερώνει42¤>!u§$C0U!u¡TN 6!C0U$u£!0O©“”$C£¦N$£©•x–©iš%¡›P!œ4M2;>$u4f©3‰eJ$u3de©3‰$ug§‰'P@¥0¦RR42¤>!u>O¡30U'P42¤>!u0ˆHg3‰2;~©Šπραγµατοποιεί έλεγχο στον αποστολέα για το κατώϕλι L42¤>!u4f©3‰©eJ$u§f©>>$u?e~J'P42¤>$u


ενώ στο αρχείο mpid/ch2/flow.h ορίζεται η σταθερά LkLPLLLLLLLLeLLLLeeeLLLLRviLRvLΓ.3 Αρχικοποίηση Καναλιού CH(ameleon) 189¡¤ P8:M¤:mu§¦£¥:M¤:mu§¦£$¥42¤>!už©Hg05¢u0ˆ©f?e$u§J©dKe?d'v ij& R4M2;> žH$g§5 ˆf?e J©d©Ke$?dΟ έλεγχος των διαθέσιµων πόρων µνήµης γίνεται ως εξής: κατά την αποστολή ενός πακέτου µε τοeager πρωτόκολλο, ο αποστολέας ελέγχει αρχικά αν υπάρχει διαθέσιµη µνήµη στον παραλήπτη. Στηνπερίπτωση που αυτό δεν συµβαίνει, ο αποστολέας αναβάλλει την αποστολή, π.χ. ζητώντας άδεια αποστολήςL (πακέτο ) µε επιλογή του rendezvous πρωτοκόλλου ή εκτελώντας ένα4©‰©J J!g ?e©~>4M2;> g‰βρόχο ελέγχου του καναλιού µε τη§U©>OM¡λειτουργία 3για να ενηµερωθεί από τον παραλήπτηµόλις υπάρξει διαθέσιµος χώρος µνήµης. Αντίστοιχα, ο παραλήπτης ενηµερώνει τους διαθέσιµους πόρουςαποθήκευσης κάθε ϕορά που λαµβάνεται ένα (αναµενόµενο ή απροσδόκητο) eager µήνυµα, µειώνονταςτη χρησιµοποιηµένη µνήµη ισόποσα προς το µέγεθος του µηνύµατος που ελήϕθη. Στην περίπτωσηπου κατά τη διαδικασία αυτή η διαθέσιµη µνήµη υπερβεί την τιµή κατωϕλίου, ο παραλήπτηςενηµερώνει τον αποστολέα ότι είναι έτοιµος να δεχθεί περισσότερα eager µηνύµατα. Για παράδειγµα,οι µακροεντολές του αρχείου mpid/ch2/flow.hŽ ¡TN!42¤>!u§žHg05¢u0ˆ©f?e$u§Jd©Ke?dŸ%0&7$E©.)©,Rr’Ž ¡TN!42¤>!u§žHg05¢uug§‰6P(¥¡¤/b{ $C£¦N$£mR4M2¤>$u $§k!u$¡TN '“”$C£¦N$£©•So:;:Mu§¢¥4M2;>!u §k¢u¡TN '“”!C£¦N!£©•Al:;:mu§¦£$¥Rr’Ž ¡TN!42¤>!u§žHg05¢uu?e~©>6PX¥¡¤/b{p$C£¦N$£σε συνδυασµό µε την ακολουθία ελέγχου4M2¤>!u §k!u¡;N S“”$C£©¦N$£•Sl:M;:Mu0¥¡–©i¥¡0/RR¡›P!œ42¤>$u§žHg05¢uug§‰6PX§NA{#¥§¦4M2¤>!u§>$O¡30U6P4M2¤>!u0ˆHg3‰M2;~©Š4M2¤> 3d eC¨$£F ¡¥Nτης Lβασικής ρουτίνας ασύγχρονης eager αποστολής του καναλιού CH υλοποιούνστον αποστολέα τον έλεγχο για διαθέσιµη µνήµη στη διεργασία-παραλήπτη. Παρατηρούµε ότικαι εδώ ο έλεγχος ροής αϕορά ζεύγη διεργασιών που επικοινωνούν, και ουσιαστικά επιτρέπει σε µιαδιεργασία Α να στείλει µέχρι 1 MB δεδοµένα µε το eager πρωτόκολλο σε µια δεύτερη διεργασία Β πρινη Α αναγκαστεί να περιµένει την ολοκλήρωση των αντίστοιχων λήψεων στη Β.4M2¤>!u§žHg05!uu?e~©>6P9NS{#¥0¦Γ.3 Αρχικοποίηση Καναλιού CH(ameleon)Το κανάλι CH αποτελεί τη βασική συσκευή ADI-2 του MPICH και αρχικοποιείται κατά την κλήσητης ρουτίνας L42 2;NM¡¤¦του MPI. Η ρουτίνα αυτή ορίζεται στο αρχείο src/env/init.c και µεταβιβάζει


LLLLLLLLLLLLL&RRiiiL¥LLLLRLLLLLRRvvRvRv190 Σχεδίαση Υλοποίησης MPICHτον έλεγχο2;Nm¡¤¦ 4M2¤Kστη ρουτίνα του αρχείου src/env/initutil.c, η οποία µε τη σειρά της θα καλέσειLτην του αρχείου mpid/ch2/adi2init.c. Στην τελευταία αρχικοποιείται η καθολική Lµεταβλητή2TNm¡¤¦ 4M2¤>O!¥¦ 42¤>, που δηλώνεται στο αρχείο mpid/ch2/adi2init.c ως42¤>!u>O?©¦jz42¤>!uO!¥¦…it&nvκαι αναϕέρεται στο σύνολο των συσκευών ADI-2 που διαχειρίζεται το MPICH, ουσιαστικά δηλαδήτο κανάλι CH. Έτσι, στη L ρουτίνακώδικα2;Nm¡;¦ 4M2¤>γίνεται αρχικοποίηση του L4M2;> O¢¥¦από το τµήµα42¤>!u>O¡…zOSv42¤>!uO!¥¦$+O!u¡¥§¦sit&nvOhi4M2¤>!u3d!u2TNm¡;¦¥§¨4C¥©¥GP¢C£©¨!Q{¢C£¨©OS{4M2¤>!u?£¦$u©§NA{¢+!%N©ti4M2¤>$u!uO!¥¦$+§NOsiš%mv£yPT¡£it&nv|¡NAv}¡¤–©–42¤>!uO!¥¦$+©O“¤¡¤•xihOSv42¤>!uO!¥¦$+§NO$u¡¥0¦si—%MvΑξίζει να4M2¤> 2TNm¡¤¦ 3d ¥§¨4C¥©¥σταθούµε στη ρουτίνα , καθώς εκεί γίνεται αρχικοποίηση των τριώνLπρωτοκόλλων επικοινωνίας (short/eager/rendezvous), του ελέγχου ροής, καθώς και άλλων βασικώνλειτουργιών του καναλιού CH. L Ητα βασικότερα σηµεία της έχουν ως εξής:4M2¤> 3d2;Nm¡¤¦¥0¨©4C¥¥ορίζεται στο αρχείο mpid/ch2/chinit.c και42¤>!uO!¥¦$+O!u¡¥§¦si…OSv42¤>!u>O¡…zOSv¡0 PX¥£¦!u§N£©¦!u§Nhi4M2¤>$u4‰J!uf©¥$u§>f©Jf$u?!2§¦eSv¡0 P9N¨$u©§N &N©¨!u©§Niš%0*©E©&&©&bvO!+©©§N©¨!u§Ni¥£¦!uNSvO!+©O$§N¨$uNijN¨$u©§NAvO!+©¥£©¦$uT:m¥§¨4M2¤>$u3d$u?£¦$u©¥¦SPO!+©©§N©¨!uT:m¥0¨4M2¤>$u3d$ueC¨$£F!u¥¦©'PO!+©O$§N¨$uT:m¥§¨4M2¤>$u3d$uKNOF!u©¥¦SPO!+©C¨£i…O!+©§N¨$uT:-¥0¨'vO!+©£NOi…O!+O$N©¨$u;:m¥0¨'vO!+©§U$uO¡¡i4M2¤>$u3d$u30U$u¡;N¢;:"¡TN©¨Sv


ŽN¡¤© Ž¢¡0LLŽN¡¤£¦£NhOSv4M2¤> 4©£$¦$δοµές τύπου και υλοποιούν ουσιαστικά τη σηµασιολογία των τριών διαϕορετικώνLπρωτοκόλλων επικοινωνίας του MPICH. Τα πρωτόκολλα αυτά αρχικοποιούνται µέσω των συναρτήσεωνLLLLLiiLLLRvRv(πρωτόκολλο short, αρχείο mpid/ch2/chshort.c), LvΓ.4 Ασύγχρονη Αποστολή 191O!+©§¦$£§:G¡;N$C¦4M2;>!u3d$ueN6vO!+©CF$£¦4M2;>!u3d$ufF$£©¦'vO!+©0N!¦it&nv42©¡©2;NM¡¤¦6P¢C£©¨!Q{¢C£©¨©OŽ¢¡0 ©4M2¤>!u§ž©H$g05!u3g§~J©K$gH¨R4M2¤>!u§ž!§k$?©¦©'P„F© u¦£¥{§:M¤:mu§¦£$¥4M2¤>!u§4f3‰$u3g§~J©K$gH4M2¤>!u§4$C0U¦ž$§k$?¦'P4M2;>Η συνάρτηση επιστρέϕει ένα δείκτη σε L>OM¡δοµή τύπου . Το πεδίο της δο-N N¨ Oµής ορίζει το κατώϕλι µεταξύ short και eager πρωτοκόλλου και εξισώνεται µε την τιµή της συµβολικήςσταθεράς L. Για συστοιχίες υπολογιστών, στην εν λόγω σταθερά απο-4©‰©J >©f©J©f ?!2§¦e4M2;> f©¥δίδεται τιµή ίση µε 1024 bytes (αρχείο mpid/ch2/packets.h). Οµοίως, το πεδίο της επι-N O$N¨στρεϕόµενης δοµής αρχικοποιείται στην τιµή 128000 bytes και αντιστοιχεί στο κατώϕλι µεταξύ eager£©¦ :-¥§¨και rendezvous πρωτοκόλλου. Τα πεδία , και αποτελούν δείκτες σε:-¥§¨ O!N¨ :-¥0¨ N¨ ¥(πρωτόκολλο eager, αρχείο mpid/ch2/chbeager.c) και Lαρχείο mpid/ch2/chbrndv.c). Το πεδίο 4M2¤> 3d 33d KNOF 4M2¤>OM¡ §U¥¦(πρωτόκολλο rendezvous,του O αποτελεί δείκτη προς τη συνάρτηση, που χρησιµοποιείται για τη βασική λειτουργία ελέγχου κίνησης στο κα-¡;N;:"¡TN¨ §Uνάλι CH.4M2¤> ž$k!?¦LΤέλος, Lοι συναρτήσεις καιαρχικοποίηση του ελέγχου ροής, όπως αυτός περιγράϕηκε στην ενότητα Γ.2.42¤> 4$C§U¦ž$§k$?©¦αναλαµβάνουν την42¤> 3d ?¥¦© £©¦4M2¤> 3d e$C¨$£F¥¦Γ.4 Ασύγχρονη ΑποστολήΗ βασική ρουτίνα ασύγχρονης αποστολής του MPI είναι L4M2 2¥Nη , που άλλωστε χρησιµοποιήσα-µε και στους αλγοριθµικούς συµβολισµούς της παρούσας διατριβής. Σηµασιολογικά, η έξοδος από την4M2 2¥Nδεν διασϕαλίζει την ολοκλήρωση της διαδικασίας αποστολής, συνεπώς ο σχετικός αποµονωτήςδεδοµένων δεν µπορεί να επαναχρησιµοποιηθεί πριν διασϕαλιστεί η επιτυχής περάτωση της αποστολήςµε κάποια κλήση L4M2 J$¥§¦ή L42 5!C$¡¤¦. Η L4M2 2¥Nορίζεται στο αρχείο src/pt2pt/isend.c,


και αϕού πραγµατοποιήσει απλές µετατροπές τύπων και αρχικοποιήσει ένα h<strong>and</strong>le τύπου LLRLLLeL·RRv¸LeL192 Σχεδίαση Υλοποίησης MPICH42¤> 2¥N>C¦$C¦2¥§N>C¦C¦$C¦$C¦©2¥N©3§N¦¡;¨£$Œ!¥0¦$+¥C§N' ¢¡TNm¡¥ij&nv¡0 P9N O!+©§N©¨$u©§N!¤Nti…O!+©©¥£¦!uT:m¥0¨!+¡¥§N'v©¥j¡0 PX§N O!+©O$§N¨$uNs ©42¤>!u§žHg05¢uug§‰6PX§NA{#¥§¦$u§¨£$C§N©URR!¤Nti…O!+©§N©¨$u;:m¥0¨$+©¡¥N6v©¥!¤Nti…O!+©§O!§N©¨!uT:m¥0¨!+¡¥§N'vRRz£©£$£$u©¡iyPXz"P !¤NP„F© '{†NA{‡¥§£¢u©£C§NU'{„¦$C¨'{‡N¦$¦!u¡¤6{ª¥§¦!u§¨©£C§N©US{:-¥§¨©£S{ P4M2¤K$u?df~©>©Hejz£$Œ$¥0¦Στον παραπάνω κώδικα, είναι το µήκος του µηνύµατος προς αποστολή, που µεταβιβάζεται ωςπαράµετρος στην N . Αν το µέγεθος αυτό είναι µικρότερο από 1024 bytes καλείταιL2¥N3§N©¦¡¤¨4M2¤>磦 :m¥§¨!+©¡¥§Nσχετική συνάρτηση O!+©©¥για short αποστολή. Αν το µήνυµα προς αποστολήέχει µήκος µεταξύ 1024 και 128000 bytes και επιπλέον υπάρχει διαθέσιµος χώρος µνήµης για ενδεχό-µενη ενδιάµεση αποθήκευση δεδοµένων στον παραλήπτη (µακροεντολή Lαληθής)žH$g§5 4M2;> g§‰καλείται η για eager αποστολή. Τέλος, αν το µήνυµα υπερβαίνει τα 128000:m¥§¨!+©¡¥§N O$+©©§N¨bytes έχουµε rendezvous αποστολή ( ).O!+O$N©¨ :-¥§¨!+$¡¥N£¦ :-¥§¨$+©$¡¥§NΤα πεδία , και της συσκευής ADI-2O!N¨ :-¥§¨$+©$¡¥N :-¥0¨!+©$¡¥§N N¨ ¥δεικτοδοτούν τις βασικές συναρτήσεις ασύγχρονης αποστολής του MPICH. Κάθε µία από τις συναρτήσειςτου επιπέδου MPID ονοµατίζεται στο MPICH σύµϕωνα µε τη γενική µορϕή42¤>!uuˆ…·¤¸¹¢·;¸!u«¬«­®¬©¯°±©²³!´§­$´§µ©µ$´«¬±!´§º¯xµ©®³!´0¬©±«¬©º±©³¯©«¯που ϕανερώνει τη συσκευή επικοινωνίας, το πρωτόκολλο που ακολουθείται, το αν η συνάρτηση αυτήείναι σύγχρονη ή ασύγχρονη, καθώς και το περιγραϕικό όνοµα της ρουτίνας. Για παράδειγµα, η συ-L42¤> 3d KNOFνάρτησηrendezvous πρωτοκόλλου.¥Nαϕορά σύγχρονη απλή αποστολή µε χρήση του καναλιού CH και του


L©U©¦¤N©¦©¦$u¡¤siN¦¦$u$¡¤6vi¥§£¢u£C§NU'v©U©¦§£$C§N©U¥eL LLLkLkLLLLLeLiiLLLeLLLLRvRvRvR+LRvLΓ.4 Ασύγχρονη Αποστολή 193Γ.4.1Short Αποστολή4M2;>Στην περίπτωση short αποστολής καλείται L3d e$C¨$£F ¡¥§N ¥ £©¦η συνάρτηση , στην οποίατης συσκευής ADI-2. Τα βασικά σηµεία της συνάρτησης έχουνδείχνει το πεδίο ¥ ως εξής (αρχείο mpid/ch2/chshort.c):£©¦ :-¥§¨!+$¡¥N4M2¤>!u§4©‰J$u?d$g§KJ!u§J U©¦Sv©U©¦!u©Ni¥¡0/ nP42;>!u§4‰J!u?d$gKJ$uJ4M2¤>!u§4©‰J$uf¥$u§>©fJf!u?$2§¦e'v©U©¦o:4M2¤>$u4‰J!u?d!g§KJ'v©U©¦ ¦i…¥§¦'v©U©¦¤¥ŒN:ijNh–sU¦!u©§NSv©U©¦¤¥0£¢4M2¤>$u2¥N 42µήκους U¦ §N .στον αντίστοιχο αποµονωτήU©¦A8F© £ του U©¦ , και τελικά το συνολικό µήνυµα µήκους N–U¦ N αποστέλλεται στονπαραλήπτη µέσω της Lµακροεντολήςαποστολή µηνυµάτων ελέγχου.4M2¤> ?©N3§N¦£©§ˆ!0U, που όπως θα δούµε χρησιµεύει για την£¦£N4M2u?0I3©3e?©?bvΓ.4.2Eager ΑποστολήΚατά την eager αποστολή πραγµατοποιείται κλήση της L ρουτίνας του αρχείου3d ¡¥N4M2¤> e$C¨$£Fmpid/ch2/chbeager.c, αϕού σε αυτή δείχνει το πεδίο της ADI-2 συσκευής::-¥§¨!+$¡¥§N N©¨4M2¤>!u§4©‰J$uH$g§~©ŠuJU©¦Sv¡›P!œ42¤>$u§žHg05¢uug§‰6PX§NA{#¥§¦RR4M2¤>!u§>$O¡30U6P4M2¤>!u0ˆHg3‰M2;~©Š4M2¤>!u§žHg05!uu?e~©>6P9NS{#¥0¦RR¡›P!œ42¤>$u§4©f©3‰©eJ$u3de©3‰!ug§‰'P@¥§¦


LLU¦¤§N©¦¦$u¡0xiN¦$¦!u¡¤6vi¥§£¢u©§£CN©U'vU¦£C§N©ULL¥LiiLLLLLLLοπότε και ο αποστολέας θα πρέπει να περιµένει σχετική επιβεβαίωση λήψης (LLLLRvLRevLRvRvRRvvLeL194 Σχεδίαση Υλοποίησης MPICH42¤>!u>O¡30U'P42¤>!u0ˆHg3‰2;~©Š42¤>!u4f©3‰©eJ$u§f©>>$u?e~J'P42¤>$u!u?§N©3§N©¦©£©§ˆ!§U6P ©U¦S{„©U©¦!u©NS{ ¥0¦42¤>!u?§N©3C§N©N$©QP„F '{†NS{ª¥§¦CN$©+$¡¥u©;:¢¦¡i—%mv¡0 PX¥CN$©+ ¢¡TNm¡¥MRP(¥CN©+© ¢¡;NM¡¥P‡¥C§N$mR£$¦£N4M2u?0I$33e$??bvΑρχικά πραγµατοποιείται έλεγχος ροής, τόσο για την ύπαρξη διαθέσιµου χώρου µνήµης στη διεργα-42¤> žH$g05 g§‰4M2¤> žH$g05 ?e©~©>σία παραλήπτη (µακροεντολή Lγια έλεγχο, µακροεντολή γιαLενηµέρωση) όσο και για το αν µε το παρόν συµπληρώνονται 40 ανεπιβεβαίωτα απεσταλµένα πακέτα,για έλεγχο4U ¡;k!C¦$£του4M2¤> 4©f©3‰©e©J f>©>4M2 ?e~©Jκατωϕλίου , για ενηµέρωση του πλήθουςLLτων πακέτων που έχουν αποσταλεί). Στη συνέχεια δηµιουργείται ένα πακέτο-επικεϕαλίδα τύπουU©¦42¤> 4©‰©J H$g~Š J, στο οποίο καταγράϕονται βασικές πληροϕορίες που σχετίζονται µε το προς αποστολήµήνυµα (π.χ. βαθµός της διεργασίας αποστολέα, ετικέτα και µήκος του µηνύµατος κ.ο.κ.). Ηεπικεϕαλίδα U©¦ αποστέλλεται στον παραλήπτη µέσω της µακροεντολής Lενώ ακολουθεί αποστολή των δεδοµένων του µηνύµατος που περιέχονται στον αποµονωτή F τηςµέσω της µακροεντολής L2¥N4M2¤> ?N©3 C§NN$42θεωρείται ότι ολοκληρώθηκε επιτυχώς ( C§N$©+©¡¥ ¤:$!¦$¡iš%¥3d e$C¨$£F ¡¥N42¤>επιστρέϕεται η τιµή επιτυχίας L4M2¤> ?N©3N©¦£$©0ˆ!0U. Η διαδικασία της ασύγχρονης αποστολής4M2 ?§I$33e$??.), και κατά την έξοδο από την,4M2;> 4©f3‰©eJ 3d©e3‰g‰Γ.4.3Rendezvous ΑποστολήΣτην περίπτωση της rendezvous αποστολής πραγµατοποιείται κλήση της ρουτίνας που δεικτοδοτείταιαπό το πεδίο της συσκευής ADI-2. Η ρουτίνα αυτή είναι η L42¤> 3d KNOF ¡¥N:-¥§¨!+©¡¥§N O!N¨,


LkLLL©U©¦¤N©¦©¦$u¡¤siN¦¦$u$¡¤6vi¥§£¢u£C§NU'v©U©¦§£$C§N©U¥¥¥¥¥¥LL¥LiiLLLLLLiLLγια εκκρεµή πακέτα),ενώ αϕετέρου αποστέλλει µόνο το µήνυµα-επικεϕαλίδα U©¦ τύπου LLRvRRvRRvvΓ.4 Ασύγχρονη Αποστολή 195όπως καθορίζεται από τη L συνάρτηση κατά την αρχικοποίηση του καναλιούCH µέσω της Lσυνάρτησηςmpid/ch2/chbrndv.c:42¤> 3d3d KNOF 42¤>¥0¨4C¥¥ 2;Nm¡;¦. Η L¥¦©3d KNOF ¡¥N4M2¤>ορίζεται στο αρχείο4M2¤>!u§4©‰J$u§K©e$»¤Ie$?J$u?e~>!u§JU©¦Sv¡›P!œ42¤>$u§4©f©3‰©eJ$u3de©3‰!ug§‰'P@¥§¦RR4M2¤>!u§>$O¡30U6P4M2¤>!u0ˆHg3‰M2;~©Š4M2¤>!u§4©f©3‰e©J$u§f>©>$u?e~J6P42;>!u!u§4‰J!u§Ke$»0Ie?J$u?e©~>$u§J©U©¦ ¦C¨is¦$C¨Sv©U©¦NijNAvCN©+¡¥u©¤:!¦ij&nvCN©+©¥§¦C£¦isF© 6vCN©+0F!u§5$C$¡;¦©ž£3;:¢¦©?§N6vCN©+§¦$¥0¦ij&nvCN©+ ¡TNM¡¥ij&nvCN©+0!C£¦N!£ih¥0¦Sv4M2¤>!u0N¢u0$§N¢¡TN©¨––6v4M2¤>!u?©§N3§N©¦£$©0ˆ¢0U'P ©©U©¦S{‡¥¡0/© nP#©U¦{ ¥0¦£¦£N4M2u?0I3©3e?©?bvΗ συνάρτηση αυτή διαϕέρει από την eager περίπτωση στο ότι αϕενός δεν πραγµατοποιεί έλεγχο διαθέσιµηςµνήµης στον παραλήπτη (γίνεται µόνο έλεγχος του κατωϕλίου L4M2 4©U¡;k$C¦$£. Επίσης, ορίζεται και µια συνάρτηση wait στο h<strong>and</strong>le αποστο-µε χρήση L τηςλής του (L µηνύµατος?©N©3§N¦£0ˆ!0U4M2;>5!C!¡¤¦ž$£©3;:¢¦©?§N42¤>), η οποία θα κληθεί µελλοντικά για ολοκλήρωσητης διαδικασίας αποστολής. Οι παραπάνω διαϕορές αποδίδονται στο ότι κατά το rendezvous πρωτόκολλοπραγµατοποιείται χειραψία (h<strong>and</strong>shake) µεταξύ του αποστολέα και του παραλήπτη, για νααποϕευχθεί η επιβάρυνση λόγω ενδεχόµενης ενδιάµεσης αποθήκευσης του µεγάλου µηνύµατος πουαποστέλλεται. Έτσι, αρχικά ο αποστολέας ζητά άδεια από τον παραλήπτη για τη µετάδοση του µηνύµα-4M2;> 4©‰©J K©e!»0Ie?J ?e©~©> J


LLL¥F£$CUSv3$g~©~$uKe C¥RLLweLRvRRvRRvR196 Σχεδίαση Υλοποίησης MPICHτος. Ο τελευταίος µπορεί να επιτρέψει την αποστολή όταν πληροϕορηθεί τον αποµονωτή προορισµού4M2 K$§O 2¤£$§O42του Lµηνύµατος Lπ.χ. από µια συνάρτηση ή , ώστε να µη χρειαστούν ενδιάµεσεςαντιγραϕές των δεδοµένων επικοινωνίας. Τελικά, αϕού λάβει τη σχετική άδεια, ο αποστολέας θα καλέσειτη ρουτίνα που δεικτοδοτείται από το πεδίο του h<strong>and</strong>le αποστολής για την ολοκλήρωσητης διαδικασίας αποστολής µε τη µετάδοση των πραγµατικών δεδοµένων.k!C!¡¤¦Γ.4.4P4 Βιβλιοθήκη ΕπικοινωνίαςΌλες οι παραπάνω περιπτώσεις βλέπουµε πως καταλήγουν σε αποστολή µηνυµάτων-επικεϕαλίδας µέσωL της ή/και αποστολή των δεδοµένων επικοινωνίας µέσω της κλήσης της4M2;>?©N©3 42¤>. Αµϕότερες µακροεντολές ορίζονται στο αρχείο mpid/ch2/channel.h και οδηγούν?N©3§N¦£0ˆ!0UC§N©N$©σε κλήση της συνάρτησης 4M2;F¥N , µε διαϕορετική εσωτερική ετικέτα αποστολής LΣυγκεκριµένα, τα µηνύµατα ελέγχου χρησιµοποιούν την ετικέτα αποστολής 0, ενώ τα µηνύµατα δεδο-µένων έχουν πάντα µη µηδενική ετικέτα αποστολής (αρχείο mpid/ch2/packets.h):42¤> 4©J$*4J J©f©Š.z¡¼½¾©¿¼ÀÁ©À…ÂÃÄÅÆ©ÇÈ…zŽ© ¡;N$4M2;>!u4J*4J$u§J©f©Š…&z¡¼½¾©¿¼ÀÁ©À…ɩ©ÉÇ©¼Ä¾Ê¾…zŽ© ¡;N$4M2;>!u4J*4J*©uJf©ŠnP(¥0£!P;%;–6P(¥0£¢RRΗ ρουτίνα 4M2;F¥N ορίζεται στη βιβλιοθήκη P4, που χρησιµοποιεί το MPICH για την υλοποίηση τηςεπικοινωνίας σε χαµηλό επίπεδο. Από τη συνάρτηση 4M2;F¥N (αρχείο mpid/ch p4/chdef.h) καλείταιη 7¥§N (αρχείο mpid/ch p4/p4/lib/p4 sr.h) και τελικά η ¥N :M¥©¥C¨ , που ορίζεται στο αρχείοmpid/ch p4/p4/lib/p4 tsr.c:§N©N¦©


¥¥LLLΓ.4 Ασύγχρονη Αποστολή 197F£©CU'vΠαρατηρούµε ότι αναλόγως µε το πώς έχει οριστεί η σύνδεση µε τη διεργασία παραλήπτη προσδιορίζεταιο τύπος σύνδεσης ¦$ , και είτε αξιοποιείται η SYS V µοιραζόµενη µνήµη µέσω της§N©N¦ 4‰©J ?d!gK©J 42¤> 4©‰©J H$g~ŠCN+¡¥ ¤:$¢¦Συνάρτηση short msg->isend long msg->isend vlong msg->isendΠρωτόκολλο short eager rendezvousΕπικεϕαλίδα1 1 0Μέγεθος µηνυµάτων< 1024 1024 ≤ < 128000≥ 12800042¤> 4©‰©J K©e!»¤Ie$?J ?e©~©>§NNΠλήθος µηνυµάτων 1 µε 1 µε 2 µε+ 1 µε 3 + 1 µε 3 Αντιγραϕές (αποστολέας) 1 0 1Αντιγραϕές (παραλήπτης) 2-3 2-3 1Έλεγχος ροής (πακέτα) Όχι Ναι ΝαιΈλεγχος ροής (µνήµη) Όχι Ναι ΌχιΣυγχρονισµός Όχι Όχι ΝαιCN©N!©CN©N$Πίνακας Γ.1: Σύνοψη διαϕορών σε ρουτίνες ασύγχρονης αποστολής για τα τρία πρωτόκολλα της συσκευήςCH του MPICHΓια πληρότητα, ο πίνακας Γ.1 συνοψίζει τις κυριότερες διαϕορές µεταξύ των τριών πρωτοκόλλωνστην περίπτωση της ασύγχρονης αποστολής δεδοµένων. Θα πρέπει να τονιστεί ότι ως αντιγραϕέςκαταµετρώνται όλες οι ενδιάµεσες αποθηκεύσεις των δεδοµένων επικοινωνίας µέχρι τις πρωτογενείςκλήσεις του λειτουργικού συστήµατος, π.χ. των £$©C και k£¡¤¦$ για την περίπτωση των sockets. Ουσιαστικάδηλαδή, µας ενδιαϕέρουν µόνο οι αντιγραϕές που αϕορούν στην υλοποίηση MPICH, και όχιεκείνες που σχετίζονται µε το λειτουργικό σύστηµα ή το δικτυακό πρωτόκολλο.


u§£$Œ$¥0¦!¥6“¤¡¤•6v£$Œ!¥0¦sijC£©£$C!u?§NKŒ$¥0¦3C§N©nP#£$Œ!¥0¦R©R¡0 P9C£©£$CS{§:$M¡u££N$n{§:!!u?§Nž£©QP¢C£©£C


ƒƒνωνίας στην οποία αναϕέρονται. Αν έχουµε εκκρεµή ασύγχρονη αποστολή ( £$Œ!¥0¦$+ LkƒLƒLƒ©¥…wƒLLRRwRRRRwLRvRvΓ.5 Ολοκλήρωση Αποστολής 199Ο πίνακας C££$C< £$Œ$¥0¦!¥ περιέχει τα request h<strong>and</strong>les όλων των εκκρεµών λειτουργιών επικοινωνίαςπου θέλουµε να ολοκληρώσουµε και περνιέται ως4M2 5!C!¡;¦$CLπαράµετρος στη συνάρτηση . Οκώδικας είναι σχετικά απλός, καθώς διασχίζει όλα τα request h<strong>and</strong>les και εξετάζει τον τύπο της επικοι-ii4M2¤K ?e~©>) εξετάζεται αρχικά το ενδεχόµενο να έχει προηγηθεί ακύρωση της εν λόγω επικοινω-C§N$ ¦© ?©§N©3¤:!¦ϕανίστηκε κάποιο σϕάλµα, και σε όλες τις περιπτώσεις ενηµερώνεται κατάλληλα η αντίστοιχη θέσηστονC£©£$C< πίνακα . Επιπλέον, στην περίπτωση επιτυχούς τερµατισµού της επικοινωνίαςαπελευθερώνονται οι πόροι που είχαν δεσµευθεί και σχετίζονται µε το υπό εξέταση request h<strong>and</strong>le.¥§¦$C¦¥¥Η συνάρτηση L4M2¤> ?N©3¤:!¦ορίζεται στο αρχείο mpid/ch2/adi2send.c ως εξής:4M2¤K!u?df~>Hejz©¥CN is©£$Œ!¥0¦!+©¥C§N$bv¡›P!œ¥CN©+$¡¥u©;:!¦¡¤ yPX¥CN©+§k$C$¡;¦z£©£$£!u©¡iyPXz©¥C§N©+©0k$C$¡¤¦PÏ¥CN©¥…w42¤>!u§>$O¡…zOSv¡0 P4M2¤>$uO!¥¦$+§NO$u¡¥0¦si©iš%Ohi4M2¤>!uO!¥¦$+O$u$¡¥0¦Sv¡0 P$œ¥C§N©+©¡¥u©;:$!¦$P(zO!+©0U!uOM¡PªO'{4M2¤>$u§ˆH$g3‰2¤~©Š©Παρατηρούµε ότι το πεδίο ¥ CN$©+©¡¥ ¤:$¢¦$θα είναι µηδενικό µόνο στην περίπτωση του rendezvousπρωτοκόλλου, συνεπώς για τις περιπτώσεις short και eager αποστολής δεν πραγµατοποιείταιείσοδος στο βρόχο k . Αντίθετα, κατά το rendezvous πρωτόκολλο καλείται η PXz©¥ R ,¡C§N©+©0k$C$¡¤¦


kLLLLRRv200 Σχεδίαση Υλοποίησης MPICHτου πηγαίου αρχεί-που όπως είδαµε έχει αντιστοιχιστεί στη L συνάρτησηου mpid/ch2/adi2init.c και επιτελεί κατά βάση την ακόλουθη λειτουργία:4M2¤> 5!C$¡¤¦©ž£©3;:$!¦?N¡›P!œ8£$Œ$¥0¦$+©¡¥u;:¢¦Έτσι, µέχρι να σηµειωθείCN$©+$¡¥ ¤:¢¦ το πεδίο ¥0U >$OM¡3 4M2¤>βρόχο L ηεπιθυµητό µήνυµα L ελέγχουως αληθές, καλείται σε έναν ατέρµοναγια έλεγχο εισερχόµενων πακέτων στο κανάλι CH, ώστε να ληϕθεί το4©‰J J!g ?e©~©>4M2¤> g‰42¤>τα δεδοµένα επικοινωνίας. Το εσωτερικό L?©N©3;:¢¦της ©¥από τη διεργασία παραλήπτη και να αποσταλούναναϕέρεται στην περίπτωσηδιαχείρισης πολλαπλών συσκευών ADI-2 και έχει συνεπώς µόνο θεωρητική αξία για την παρούσαυλοποίηση MPICH, καθώς η τελευταία βασίζεται αποκλειστικά στη µοναδική συσκευή CH.42¤>!u>O¡30U'P42¤>!u0ˆHg3‰2;~©ŠΓ.6 ΛήψηΤο MPICH διατηρεί δύο ουρές για τη λήψη µηνυµάτων και την αποθήκευση των σχετικών h<strong>and</strong>les,την ουρά για τα αναµενόµενα εισερχόµενα µηνύµατα (posted receives queue) καθώς και την ουρά µετα απροσδόκητα εισερχόµενα µηνύµατα (unexpected receives queue). Οι δύο ουρές αποτελούν πεδία4M2¤> £$§O¢¥Lτης καθολικής µεταβλητής ,4M2¤> £$§O¢¥b8$¥§¦L µε το πεδίο να αντιστοιχεί στην ουρά£$0O¢¥nN!$0¦42¤>των αναµενόµενων µηνυµάτων L και το πεδίο να προδιαγράϕει την ουρά τωναπροσδόκητων µηνυµάτων. Η αναγκαιότητα τήρησης δύο διαϕορετικών ουρών για τα ληϕθέντα µηνύµαταέγκειται στο ότι ένα µήνυµα µπορεί να ληϕθεί από τη συσκευή ADI-2 πριν ή αϕού κληθεί ηαντίστοιχη συνάρτηση λήψης του MPI. Στην πρώτη περίπτωση το µήνυµα θα τοποθετηθεί στην ουράαπροσδόκητων µηνυµάτων, ενώ στη δεύτερη θα συνδυαστεί µε κάποιο h<strong>and</strong>le της ουράς αναµενόµενωνµηνυµάτων.Αναλυτικότερα, όταν λαµβάνεται κάποιο πακέτο από µία διεργασία, αυτή εξετάζει πρώτα την ουρά42¤> £$0O¢¥n$¥0¦αναζητώντας ένα σχετικό h<strong>and</strong>le λήψης, που περιγράϕει τον αποµονωτή προορισµούτου πακέτου και έχει δηµιουργηθεί νωρίτερα από την εκτέλεση αντίστοιχης MPI ρουτίνας λήψηςL4M2 K§O(π.χ. L42 2¤£§Oή ). Στην περίπτωση που βρεθεί κάποιο τέτοιο h<strong>and</strong>le, εϕόσον δηλαδή έχειπροηγηθεί η κλήση ρουτίνας λήψης που να καθορίζει τον αποµονωτή προορισµού του πακέτου, αντιγράϕεταιτο µήνυµα στον αποµονωτή αυτό, η διεύθυνση του οποίου ϕυλάσσεται στο πεδίο τουF©h<strong>and</strong>le λήψης. Αν αντίθετα δεν βρεθεί ένα h<strong>and</strong>le στην L42¤> £$0O¢¥n$¥0¦ουρά , τότε δηµιουργείταιένα νέο h<strong>and</strong>le στην L ουρά και αποθηκεύονται διάϕορες πληροϕορίεςγια το ληϕθέν µήνυµα. Έτσι, όταν κληθεί κάποια ρουτίνα λήψης του MPI εξετάζεται αρχικά η ουρά42¤> £$0O¢¥nN!$0¦4M2¤> £§O¢¥b8N$$§¦για να διευκρινιστεί αν έχει ήδη ληϕθεί το αντίστοιχο µήνυµα από τη συσκευήADI-2. Αν αυτό συµβαίνει, τότε το h<strong>and</strong>le του µηνύµατος αϕαιρείται από την ουρά απροσδό-


L££££££L£RvΓ.6 Λήψη 201κητων µηνυµάτων και γίνεται επεξεργασία του µηνύµατος. Αν αντίθετα δεν βρεθεί καταχώρηση στηνL ουράπου αποθηκεύεται στην L ουρά£$0O¢¥nN!$0¦42¤>£§O¢¥b8$¥0¦$4M2¤>, τότε δηµιουργείται µια περιγραϕή του µηνύµατος σε ένα νέο h<strong>and</strong>leΤο λεπτό σηµείο στην κατανόηση της λειτουργίας λήψης του MPICH είναι ο σαϕής διαχωρισµόςµεταξύ της εκτέλεσης µιας ρουτίνας λήψης κατά τη ροή του προγράµµατος MPI και της πραγµατικήςλήψης ενός πακέτου από τη συσκευή ADI-2. Στην πρώτη περίπτωση συναντάται κατά την εκτέλεση τουπρογράµµατος µια MPI συνάρτηση4M2LK§Oλήψης,4M2L2¤£$0Oπ.χ. ή , και ενηµερώνεται το κανάλιCH µε την περιγραϕή µιας συγκεκριµένης διαδικασίας επικοινωνίας, π.χ. για το βαθµό της διεργασίαςαποστολέα από την οποία περιµένουµε το µήνυµα, καθώς και για την ετικέτα, το µέγεθος και τον απο-µονωτή προορισµού του µηνύµατος. Το ίδιο το µήνυµα ενδέχεται να έχει ήδη ληϕθεί από τη συσκευήADI-2 ή να ληϕθεί µελλοντικά, όπως επίσης και ανάλογα µε τη σηµασιολογία της συνάρτησης λήψηςπου επιλέγουµε ενδέχεται είτε να αναστείλουµε την εκτέλεση περιµένοντας για τη λήψη του µηνύµα-4M2 K§Oτος ) είτε να συνεχίσουµε τη ροή του προγράµµατος και να ελέγξουµε τη λήψη σε κάποια(L(Lµελλοντική στιγµή ). Αυτή καθεαυτή η λήψη πακέτων από τη συσκευή ADI-2 συντονίζε-2¤£$§O 4M2ται>$O¡3 0U4M2¤>από τη ρουτίνα , που καθότι υλοποιεί τη λήψη σε χαµηλό επίπεδο δεν αποτελείLµέρος του προτύπου MPI, αλλά του στρώµατος MPID..Γ.6.1MPI Irecv4M2 2¤£$0OΗ Lσυνάρτηση ασύγχρονης λήψης ορίζεται στο αρχείο src/pt2pt/irecv.c, όπου αϕού αρχικοποιήσειµια καινούρια αίτηση λήψης (request) και κάνει ορισµένες µετατροπές τύπων καλεί σχετικά2¤£$0O©>C¦$C¦άµεσα την του αρχείου mpid/ch2/adi2hrecv.c. Η τελευταία υπολογίζει σε bytesLτο µέγεθος του µηνύµατος που επιθυµούµε να λάβουµε, αξιοποιώντας την πληροϕορία του τύπου καιτου αρχείου mpid/ch2/adi2recv.c. Συ-του πλήθους των δεδοµένων, και4M2¤>L καλεί τηννοπτικά, L η ρουτίνα έχει ως εξής:4M2¤>2;£$§O©3N©¦¡¤¨2¤£$§O©3N©¦¡¤¨4M2¤K!u§K©df~>Hejz§:m¡u0N!$0¦6{†z§£CN is©£$Œ!¥0¦!+§£C§NbvCN©+§Ni¡:MC!NSvCN©+0F©isF© 'vCN©+¡¥u©¤:!¦¡ij&nvCN©+0k!C$¡;¦ij&nvCN©+§¦$¥0¦ij&nvCN©+ ¡TNM¡¥ij&nv4M2¤>!u?©C£!u0N!!0¦uŒ!§$uC§N$u0$¥§¦6P‡¥§£¢u£C§NU'{„¦$C¨S{‡N¦$©¦$u¡¤'{CN$b{ ©§:$m¡u§N$$§¦P§:$m¡u0©N$!0¦$R¡¤


LLLLLƒLLRwLLLRRRRRvvRv202 Σχεδίαση Υλοποίησης MPICHz£©£$£$u©¡iyPXz§:$M¡u0N$$0¦$+0¥P £CNb{ §:$m¡u§N$$0¦MR4M2¤>ενώ L?©C£¢η καλούµενηmpid/util/queue.c και συνοπτικά υλοποιείται ως ακολούθως:©N!$§¦ Œ!! CN !¥0¦ορίζεται στο αρχείο πηγαίου κώδικα42¤>$u§£0O!¥42¤>!uJdKe©f>$u§>$?©uH$g3‰6P@©42¤>!u?C£¢u0©N$$0¦$uŒ$§$bP‡¥§£¢u©£C§N©US{„¦$C¨S{‡N¦¦!u¡¤6{€%M{ª£CN©¦£¡0 PXz§£C§N§¦£42;>!u§£§O!¥42¤>!uJdKe©f>$u>?©u¤I~©Hg3‰6P#©£$¦£NSv42¤>!ueNŒ!§$QPª©4M2¤>$u£0O¢¥b$¥0¦6{†¥§£¢u©£C§NU'{„¦$C¨'{‡N¦$¦!u¡¤6{ £Œ!¥§¦42;>$u£§O!¥42¤>!uJdKe©f>$u§>$?©u¤I~©Hg3‰6P#©Από τις παραπάνω συναρτήσεις συνάγονται τα εξής για4M2¤> 2¤£$§O3§N¦¡;¨Lτη λειτουργία της : κα-). Στη συνέχεια, µε βάση τα στοιχείαταρχάς αρχικοποιούνται βασικά πεδία του h<strong>and</strong>le λήψης ( £ του µηνύµατος (αποστολέας, ετικέτα, µέγεθος) γίνεται αναζήτηση στη σειρά των µη αναµενόµενωνCNεπιστρέϕει ένα δείκτη §:$M¡ ©N!!§¦ προς το ζητούµενο4M2;> £$§O!¥n©N$!0¦$?©C£¢ N!$0¦ Œ!!4M2¤>Lµηνυµάτων µέσω της Lρουτίνας για ναδιαπιστωθεί αν το µήνυµα έχει ήδη ληϕθεί από τη συσκευή ADI-2. Αν αυτό συµβαίνει, η συνάρτη-4M2¤> ?©©C£¢ ©N$!0¦ Œ$!ση Lh<strong>and</strong>le. Σε αντίθετη περίπτωση, αν δηλαδή το µήνυµα δεν έχει ληϕθεί, τότε το h<strong>and</strong>le λήψης εϕοδιάζεταιµε τα στοιχεία του µηνύµατος και τοποθετείται στην ουρά των αναµενόµενων µηνυµάτων£$0O¢¥n$¥0¦µε χρήση της ρουτίνας42¤> 4M2¤> eNŒ!§!. Παρατηρούµε ότι όλες οι λειτουργίεςLεπεξεργασίας των ουρών αναµενόµενων και απροσδόκητων µηνυµάτων περικλείονται σε λειτουργίες42¤> J©d©K©ef©> H$g3‰ 4M2;> J©d©Ke©f©> >$? >$? I~©H$g3‰κλειδώµατος , ουσιαστικά λειτουργίες mutex της(L-Lβιβλιοθήκης Pthreads), για να µην προκύψει λανθασµένη διπλή επεξεργασία του ίδιου µηνύµατος σεπολυνηµατικό περιβάλλον. Παρόλα αυτά, η υλοποίηση MPICH δεν παρέχει πλήρη πολυνηµατική υποστήριξη,καθιστώντας τήν ταυτόχρονη εκτέλεση ρουτινών επικοινωνίας MPI απαγορευτική.Τέλος, παρατηρούµε ότι στην περίπτωση που βρέθηκε σχετικό µε το µήνυµα h<strong>and</strong>le στην ουράαπροσδόκητων µηνυµάτων και άρα επεστράϕη µη µηδενική τιµή στο δείκτη , καλείταιη συνάρτηση που δεικτοδοτείται από το πεδίο 0:$m¡ ©N$!0¦ του h<strong>and</strong>le λήψης. Η κλήση της τελευταίας ©¥µας επιτρέπει να διαχειριστούµε σωστά την περίπτωση που η πραγµατική λήψη από τη συσκευή ADI-2έχει προηγηθεί χρονικά της κλήσης της L4M2 2;£$§O, όπως θα δούµε και στις ακόλουθες ενότητες.


LLLLLLƒyP=¡¥u§$¥§¦¡¤£££RvLLRRLwwLRLwLLRwRvRRRRRvΓ.6 Λήψη 203Γ.6.2MPID DeviceCheckΗ4M2¤> >OM¡3 §Uσυνάρτηση του αρχείου mpid/ch2/adi2init.c αποτελεί τη βασική ρουτίνα ελέγχουεισερχοµένων µηνυµάτων της συσκευής ADI-2. Η ρουτίνα αυτή καλείται οποτεδήποτεLθέλουµενα εξετάσουµε την άϕιξη νέου µηνύµατος, είτε πρόκειται για µήνυµα ελέγχου, είτε για µήνυµα δεδοµένων.Η ρουτίνα καλεί τελικά L τηνmpid/ch2/chchkdev.c και ξεκινάει ως εξής:4M2¤> 3d 3¡;N;:"¡TN©¨ §U, που ορίζεται στο πηγαίο αρχείο¡¤ PT¡¥u§F!0U¡TN¨si©i42¤>!u§~!g§JˆHg3‰M2;~©Š¡¤ yP$œ4M2;>$u4‰J!u3de3‰6P£$¦£Nj+¢%MvR©R4M2¤>!u§4©‰J$u05f2;J6P4M2¤>!u§4©‰J$u¤I~4f©3‰6P ©U©¦'{‡¥¡¤/© nP4M2;>$u§4©‰J$udef>!u§J{ª £$¤:mu§¨©£C§N©UΑρχικά λαµβάνεται ένα εισερχόµενο πακέτο ελέγχου στη συσκευή ADI-2, είτε µε σύγχρονο (µακροε-) είτε4M2¤> 3d©e©3‰ 4©‰J 42¤> 4©‰J 5f2¤J+Lµε ασύγχρονο τρόπο ). Η µακροεντο-(Lµεταβιβάζει τελικά τον έλεγχο στη συνάρτηση (mpid/ch p4/chdef.h), που4M2TF©£0OL ντολήL λή4©‰©J 5fM2¤J 4M2;>4©‰©J 5fM2¤J 42¤>αποτελεί τη βασική συνάρτηση λήψης πακέτου και καλεί τη ρουτίνα ©7 £$§O της P4 βιβλιοθήκης. Μάλιστα,η συγκεκριµένη ακολουθία συναρτήσεων περιλαµβάνει και µία επιπλέον ενδιάµεση αντιγραϕήτων δεδοµένων που λαµβάνονται, καθώς η 7 £$§O χρησιµοποιεί δικό της εσωτερικό αποµονωτή ενώη 4M2;F£$0O επιστρέϕει τα δεδοµένα στον αποµονωτή U¦ . Η µακροεντολή Lαποσκοπείστην εξαγωγή της επικεϕαλίδας του πακέτου, η οποία αποθηκεύεται στη µεταβλητή U©¦ . Στησυνέχεια, ακολουθεί το εξής τµήµα κώδικα:4M2¤> 4‰©J I~©4©f3‰¡¤ P4M2¤>$u§4©‰J$u2?©u?ŠnPpU¦ACAl:RR4M2¤>!u¥0¨$uC££¡¤OnP ©U©¦©CS@£C§N©US{‘U©¦ACS ¦C¨S{‘U¦©CS¤§N©¦$¦$u$¡¤6{©£CN$b{„©M¡¥u0!¥§¦¡¤ yP$œ9¡¥u0$¥0¦¡0 PpU©¦CSo: ii4M2¤>!u§4‰©J$u§K©e$»¤Ie$?J$u?e~>CN$©+¥§N$u¡¤sixU©¦A £$Œ!¥0¦$u§©U¦A¤¥§Nu¡¤'v©¥j¡0P#U¦CAl:¡i©i42¤>!u4‰J$u?d$g§K©JCN$©+¥§N$u¡¤sixU©¦A¤¥£©¦$u0©U©¦A¥Nu$¡¤6v©¥j¡0P#U¦CAl:¡i©i42¤>!u4‰J$uHg§~©ŠCN$©+¥§N$u¡¤sixU©¦A§N©¨!u0©U¦¥§Nu¡06v¥0kM¡¤¦¢PpU©¦CSo:C¥4M2¤>$u4‰J!u?d!g§KJA


ƒƒ©¥…wƒƒƒLLLLLRwαληθής πρόκειται για µήνυµα δεδοµένων, και συγκεκριµένα είτε για µήνυµα τύπου LLRRRRRRLRRRvRvvLvRRvv204 Σχεδίαση Υλοποίησης MPICH£©£…iyP(z§O$+©©¥£¦$u;:m¥0¨$+©§£0OPª£CNb{ £$;:mu¨£CN©U'{„©U©¦F£$©CUSvC¥4M2¤>!u§4‰©J$u§Ke!»¤Ie$?J$u?e~>A£©£…iyP(z§O$+©§£NO$+$¡;£§OP £CNn{ £¤:mu¨£C§NU'{„©U©¦F£$©CUSvC¥4M2¤>!u§4‰©J$uHg~©ŠS£©£…iyP(z§O$+©C¨£$+©¡;£0OP £CNb{ £$¤:Mu¨£CN©U'{„©U©¦F£$©CUSv¥0km¡;¦¢P#©U©¦CAl:C¥4M2¤>!u§4‰©J$u?d!g§KJ£©£…iyP(z§O$+©©¥£¦$u;:m¥0¨$+©0N!Pª£CNb{ £$;:mu¨£CN©U'{„©U©¦F£$©CUSvC¥4M2¤>!u§4‰©J$u§Ke!»¤Ie$?J$u?e~>A£©£…iyP(z§O$+©§£NO$+§N$P £CN$b{ª £$¤:mu§¨©£C§N©US{„©©U©¦F£$©CUSvC¥4M2¤>!u§4‰©J$uHg~©ŠS£©£…iyP(z§O$+©C¨£$+©0N$P £CNn{ £¤:mu¨£C§NU'{„©U©¦F£$©CUSvΧρησιµοποιώντας το πεδίο ©CAo:της επικεϕαλίδας U©¦ διευκρινίζεται αν πρόκειται για µήνυµαελέγχου ή µήνυµα δεδοµένων. Αν η επιστρεϕόµενη τιµή της µακροεντολής L4M2¤> 4©‰J 2??Šείναι(short πρωτόκολλο) είτε για µήνυµα L4M2¤> 4©‰©J H$g~©Šτύπου(rendezvous πρωτόκολλο). Η L ρουτίναmpid/util/queue.c) αναζητά σχετικό µε το µήνυµα h<strong>and</strong>le στην ουρά L42¤> 4©‰©J K©e!»0Ie$?J ?e©~©>(eager πρωτόκολλο) είτε για µήνυµα τύπου¥§¨ C£©£¡¤O$4M2¤>£$§O¢¥n$¥§¦4M2¤>(πηγαίο αρχείο. Αν το βρει,. Ανθέτει σε αληθή τιµή τη µεταβλητή και επιστρέϕει το h<strong>and</strong>le στη µεταβλητή £ CN¡¥ !¥0¦$£$0O¢¥n$¥§¦4M2¤>αντίθετα δεν βρεθεί σχετική καταχώρηση L στην ουρά , τότε δηµιουργείται µία νέαL4M2;> £$§O¢¥b©N$$0¦$στην ουρά και επιστρέϕεται CNστην , ενώ η ανατίθεται!¥§¦$σε µηδενική τιµή. Αν πρόκειται για αναµενόµενο µήνυµα, καλείται η κατάλληλη ρουτίνα λήψης της¡¥ £42¤> 4©‰©J ?d!gKJ


©¥…w¥¤km¡¤¦¢ŽN¡¤© Ž¢¡0LLLLLLLLLLLLRwRRvRvRRvvRvΓ.6 Λήψη 205συσκευής ADI-2:-¥0¨!+©£0O( , ή ). Αν αντίθετα πρόκειται για£NO!+©¡;£0O £¦©C¨$£$+$¡;£0O ¥, αϕετέ-C§N$απροσδόκητο µήνυµα, τότε αϕενός καταγράϕεται το αναγνωριστικό αποστολής στορου καλείται η αντίστοιχη ρουτίνα λήψης του £ £©¦ :-¥§¨!+§N! CH ( , ή ).£NO!+§N$ ©C¨$£!+§N$ ¥Ο κώδικας της L4M2¤> 3d 3¡;N¢¤:"¡TN©¨ 0Uολοκληρώνεται µε το τµήµαPpU©¦CSo:C¥4M2;>!u4‰J!ug§‰$uJ$gu?e~>££hiyPXzO$+£NO$+©uC§UPª©U©¦S{ £$;:mu¨£CN©UF£©CUSvC¥4M2;>!u4‰J!u§f~JM2u?e~>A42¤>!u?§N©3C§N¢©gU4C§U¦6Pª©U©¦S{ £$¤:Mu¨£$C§N©UF£©CUSvC¥4M2;>!u4‰J!u§f~JM2u?e~>$u©g§‰A42¤>!uK0O3C§N¢©gU4C§U¦6Pª©U©¦S{ £$¤:Mu¨£$C§N©UF£©CUSvŽ¢¡0 ©4M2¤>!u§ž©H$g05!u3g§~J©K$gHC¥4M2;>!u4‰J!u§ž©Hg§542¤>!uK0O©ž$§k4C§U¦6Pª©U©¦S{ £$¤:Mu¨£CN©UF£©CUSv4M2¤>!u§4f3‰$u3g§~J©K$gHC¥4M2;>!u4‰J!u§4K$gJ$guf©3‰AC¥4M2;>!u4‰J!u§f©3‰!u§4K!g§J$gn42¤>!uK0O©4£¦$f!§U6P ©U¦S{ª £$¤:mu§¨©£C§N©UF£©CUSvŽN¡¤ƒτο οποίο αναϕέρεται στο ενδεχόµενο το ληϕθέν µήνυµα να είναι µήνυµα ελέγχου.Γ.6.3Αναµενόµενη Short ΛήψηΗ περίπτωση της αναµενόµενης short λήψης αντιµετωπίζεται από L4M2¤> 3d e$C¨$£F £$§O ¥ £©¦την. Η συνάρτηση αυτή ορίζεται στο αρχείο mpid/ch2/chshort.c καιπου δεικτοδοτεί η ¥ συνοπτικά καθορίζει τα εξής:£¦ :-¥0¨!+©£0O,


L££eL L££LLLLLLLLPLRvRRRvRvveL206 Σχεδίαση Υλοποίησης MPICH42¤>!u4‰J$u?d$g§K©J$u§Jjz0U©¦…i4M2;>!u§4©‰J$u?d$g§KJ!u§Jjz¡;N!u§©U¦Sv¡;N©¦:-¥§¨!NSv:-¥0¨!NixU©¦!+©NSvŽ¡¤ ©4M2¤>!u§4©f©3‰!u3g§~©JK$gH¡0 P4M2¤>$u4f©3‰eJ$uK©3 c >!uŠeJ'Pp©U©¦$+©¥§£!RR4M2;>!u?§N4£¦f!§U6Pp©U©¦$+¦b{‘U©¦!+¥0£¢42¤>!u4f©3‰©eJ$uf>>$uK©3 c >'Pp©U¦!+§¦$b{‘U©¦$+©¥0£!Ž§N¡0CN$©+¥b4M2u§J©f©ŠixU©¦!+¦C¨'vCN$©+¥b4M2u?g¤IK©3esixU©¦!+©§£$C§N©U'v34©‹6P £C§N$©+©0F '{‘U¦!+©0F© £'{§:-¥§¨!NCN$©+¥bN©¦ir:-¥§¨!NSv¡0 P#£CN$©+ ¢¡TNm¡¥MRP@£CN©+© ¢¡;NM¡¥P £C§N$mR(µακροε-Έτσι, αϕού πρώτα γίνει έλεγχος ροής ληϕθέντων πακέτων για το L κατώϕλιL ντολή ), αντιγράϕεται µε χρήση της Lµακροεντολής4©U C0U:MC£©U 4234©‹το µήνυµα από το4f3‰©eJ c ŠeJ K3 > 4M2¤>πεδίο της επικεϕαλίδας στο χώρο µνήµης που έχει καθοριστεί πρωτύτερα π.χ. από κλήσηU©¦ £ © F©42 2¤£§Oτης και η διεύθυνση του οποίου παρέχεται από το πεδίο του h<strong>and</strong>le λήψης £ CN$ .LΈτσι, ακόµα και στην περίπτωση της αναµενόµενης λήψης µηνύµατος µε το short πρωτόκολλο, F© παρότιαποστέλλεται µοναδικό µήνυµα δεν αποϕεύγουµε την αντιγραϕή δεδοµένων στον παραλήπτη.Για να κατανοήσουµε καλύτερα τη διαδικασία της λήψης στις διαϕορετικές εκδοχές της και γιατα τρία πρωτόκολλα επικοινωνίας του MPICH θα εξετάσουµε την αλληλουχία συµβάντων κατά τηνανταλλαγή ενός µηνύµατος µεταξύ δύο διεργασιών. Ας υποθέσουµε λοιπόν ότι η διεργασία 1 θέλειCN$©+$¡¥u©;:¢¦¡i—%mvνα στείλει στη διεργασία 2 ένα µήνυµα. Έστω ότι το µήνυµα βρίσκεται σε κάποιο αποµονωτή ¥0F©στη διεργασία αποστολέα, και επιθυµούµε να αποθηκευτεί στον πίνακα £F© στη διεργασία παραλήπτη.Μια αρκετά συνήθης προσέγγιση είναι να επιλεγεί η απλή ρουτίνα L αποστολήςµετάδοση του µηνύµατος και να χρησιµοποιηθεί ένας συνδυασµός της Lασύγχρονης?©N 4M22;£$§O 4M2για τηµε τηρουτίνα L42 5!C$¡¤¦ελέγχου για τη λήψη, προς αποϕυγή του συγχρονισµού ή ακόµα και του αδιεξόδουπου ενδέχεται να προκαλέσει η απρόσεκτη χρήση της L σύγχρονης . Σε MPI θα µπορούσαµενα υλοποιήσουµε την επικοινωνία αυτή ως εξής:4M2 K§O¡;N©¦¡:!


LƒLLLLRLLRwRRRvRvRvRvRR{{LLΓ.6 Λήψη 207LL4M2u3¤::Mu§£$C§N©U6P4M2u3gu05¢g§K©H>'{„©:!


LL£££££££eL L£LLLLLLLiLLRvRvRRRvv208 Σχεδίαση Υλοποίησης MPICHπρολαβαίνει να εκτελέσει την L αντίστοιχη πριν ληϕθεί το µήνυµα, µε συνέπεια τη δηµιουρ-2;£$§O 4M2£§O¢¥b8$¥0¦$4M2¤>γία h<strong>and</strong>le περιγραϕής του µηνύµατος στην Lουρά αναµενόµενων µηνυµάτων .Εν Lσυνεχεία εκτελείται η , που λαµβάνει το µήνυµα επικεϕαλίδα και αντιλαµβάνεται απότο πεδίο ©CSo:£$0O¢¥n$¥0¦42¤>η L3d e$C¨£F £$§O ¥42¤>© £ F©της Lαυτού ότι πρόκειται για το short πρωτόκολλο. Μέσω αναζήτησης στην ουρά4M2 5!C!¡¤¦προκύπτει ότι το µήνυµα είναι αναµενόµενο ( ¡¥ !¥§¦$ αληθής). Έτσι, καλείτα飩¦για να πραγµατοποιήσει την αντιγραϕή του µηνύµατος από το πεδίοτου πακέτου επικεϕαλίδας στο χώρο µνήµης που είχε οριστεί από το χρήστη κατά την κλήση4M2 2¤£$0O.Γ.6.4Μη Αναµενόµενη Short Λήψη4M2;>Η µη αναµενόµενη short λήψη αντιµετωπίζεται L3d e$C¨$£F ¥CO ¥ £©¦από την , που δεικτο-. Η συνάρτηση αυτή ορίζεται στο αρχείο mpid/ch2/chshort.c και συνοπτικάδοτεί η ¥ έχει ως εξής:£¦ :-¥§¨$+©§N$42¤>!u4‰J$u?d$g§K©J$u§Jz0U¦…iyP4M2¤>!u§4‰J!u?d$gKJ$uJjz¡;N¢u0U¦'vŽ¡¤ ©4M2¤>!u§4©f©3‰!u3g§~©JK$gH¡0 P4M2¤>$u4f©3‰eJ$uK©3 c >!uŠeJ'Pp©U©¦$+©¥§£!RR4M2;>!u?§N4£¦f!§U6Pp©U©¦$+¦b{‘U©¦!+¥0£¢42¤>!u4f©3‰©eJ$uf>>$uK©3 c >'Pp©U¦!+§¦$b{‘U©¦$+©¥0£!Ž§N¡0CN$©+¥b4M2u§J©f©ŠixU©¦!+¦C¨'vCN$©+¥b4M2u?g¤IK©3esixU©¦!+©§£$C§N©U'vCN$©+¥b4M2u§e©KK$g§Kit&nvCN$©+ £;:i… £$¤:vCN$©+§$C£¦N$£ixU©¦!+¦nvCN$©+¥bN©¦ixU©¦!+©NSvCN$©+¥0¦C£©¦ i P@O$!¡¤jzfH©Hg3nP ©U©¦!+©§NR;L34©‹6P £C§N$©+©©¥0¦C£¦'{‘U©¦!+§F £S{‘U¦!+©©§NCN$©+§¢¥4M2¤>$u3d$ueC¨£F!u§N©£$0O$u¥0¦C£¦$u©¥£¦SvΗ βασική διαϕορά της από την περίπτωση της αναµενόµενης λήψης έγκειται αϕενός στην αντιγραϕήτου µηνύµατος στο πεδίο ¥§¦$C£¦ του h<strong>and</strong>le λήψης αντί για το πεδίο F© , και αϕετέρου στον καθορισµόσυνάρτησης push, L4M2¤> 3d eC¨$£F ©N©£$0O ¥0¦$C£©¦ ¥ £©¦της . Η τελευταία συνάρτηση είναι αυτήπου αναλαµβάνει να πραγµατοποιήσει την αντιγραϕή των δεδοµένων από το πεδίο του h<strong>and</strong>le¥§¦$C£¦στον αποµονωτή του χρήστη, µόλις αυτός γίνει γνωστός π.χ. µέσω της L42 2¤£§O. Για το λόγο αυτό,


Γ.6 Λήψη 209η LFτου h<strong>and</strong>le λήψης.4M2;> 3d e$C¨$£F ©N£$0O ¥§¦$C£¦ ¥£©¦καλείται στην L4M2 2¤£$0Oαϕού αρχικοποιηθεί το πεδίο∆ιεργασία 1 ∆ιεργασία 2MPID_CH _E a g er b _s en d _s ho r tM P I _ S e n dM E M C P Y ( p k t -> b u f f e r , s b u f )M P I D _ S e n d C o n t r o l B l o c kp4_sendxMPID_DeviceCheckp4_recv(&__p4lbuf)M E M C P Y ( p k t , _ _ p 4 l b u f )M P I D _E n q ueue(&M P I D _R ecvs . un ex pect ed , rh a n d le)pk t ! i s _po s t ed , M P I D _P K T _S H O R TMPID_CH _E a g er b _s a ve_s ho r trh a n d le- > pus h =M P I D _C H _E a g erb_un x recv_s t a rt _s h o rtM E M C P Y ( r h a n d l e -> s t a r t , p k t -> b u f f e r )M P I _ I r e c vMPID_Ir ecvDa t a t y p eMPID_Ir ecvCo n t igrh a n d le- > buf= rbufrh a n d le- > pus hMPID_CH _E a g er b _u n x r ecv_s t a r t _s ho r tM E M C P Y ( r h a n d l e -> b u f ,r h a n d l e -> s t a r t )M P I _ W a i t--χ ρό ν ο ςΣχήµα Γ.3: Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του short πρωτοκόλλου του MPICH (περίπτωσηµη αναµενόµενης λήψης)Για παράδειγµα, στο απλό σενάριο επικοινωνίας µεταξύ δύο διεργασιών που έχουµε υποθέσει (σχή-µα Γ.3), η διαϕορά σε σχέση µε την αναµενόµενη λήψη είναι ότι η κλήση L4M2;> >$OM¡3 0Uτηςλαµβάνει το µήνυµα προηγείται χρονικά L της . Έτσι, δηµιουργείται h<strong>and</strong>le σχετικό µε το µήνυµαπου τοποθετείται στην ουρά L2¤£$§O 4M2£§O¢¥b8N$$0¦$4M2¤>µήνυµα αντιγράϕεται στο πεδίο ¥§¦$C£©¦ του h<strong>and</strong>le αυτού. Κατά την κλήση της Lπουτων απροσδόκητων µηνυµάτων και το42 2¤£§Oγνωστοποιείταιο αποµονωτής προορισµού £F© και αϕού διαπιστωθεί ότι το µήνυµα έχει ήδη ληϕθεί απροσ-


LLLŽ§N¡0© Ž¡¤£££L££££LLLLLLLLLLLLeLeLeLLRRvvRRvvRRvRvRv210 Σχεδίαση Υλοποίησης MPICHδόκητα, γίνεται κλήση L τηςδεδοµένων στο σωστό προορισµό τους.42¤> 3d e$C¨$£F ©N©©£$§O ¥§¦C£©¦ ¥£©¦για την τελική αντιγραϕή τωνΓ.6.5Αναµενόµενη Eager ΛήψηΗ αναµενόµενη eager λήψη πραγµατοποιείται από τη συνάρτηση Lτου αρχείουmpid/ch2/chbeager.c:4M2¤> 3d e$C¨$£F¡¤£$0O42¤>!u4‰J$uHg§~©Š$u§Jjz0U©¦siyP42¤>!u§4‰©J$uHg~©Šu§Jz¡;N¢u0U¦'v¡;N©¦:m¥§¨!§NhixU©¦!+©§NAvŽ¡¤ ©4M2¤>!u§žHg05¢u3g§~©JK$gH42¤>!už©Hg05¢uuŠe©J6Pp©U©¦'{# £$;:42¤>!už©Hg05¢uu§Ke©f>6P:-¥0¨$NS{# £;:42¤>!už©Hg05¢uu§Ke3 c P:-¥0¨$NS{# £;:4M2¤>!u§4©f©3‰!u3g§~©JK$gH¡0 P4M2¤>$u4f©3‰eJ$uK©3 c >!uŠeJ'Pp©U©¦$+©¥§£!RR4M2;>!u?§N4£¦f!§U6Pp©U©¦$+¦b{‘U©¦!+¥0£¢42¤>!u4f©3‰©eJ$uf>>$uK©3 c >'Pp©U¦!+§¦$b{‘U©¦$+©¥0£!Ž§N¡0CN$©+¥bN©¦ir:-¥§¨!NSvCN$©+¥b4M2u§J©f©ŠixU©¦!+¦C¨'vCN$©+¥b4M2u?g¤IK©3esixU©¦!+©§£$C§N©U'v42¤>!uK0O©ž£;:¢3CNN$©QP £CN©+§F 6{Ð:m¥§¨!§NA{ £¤:¡0 P#£CN$©+ ¢¡TNm¡¥MRP@£CN©+© ¢¡;NM¡¥P £C§N$mRCN$©+§k$C$¡;¦ij&nvCN$©+¦¥0¦ij&nvCN$©+§¢¥ij&nvCN$©+$¡¥u©;:¢¦¡i—%mvΑρχικά πραγµατοποιείται έλεγχος ροής τόσο για τη διαθέσιµη µνήµη όσο και για τα ανεπιβεβαίωτα πακέτα.Στη συνέχεια, και δεδοµένου ότι έχει προηγηθεί ο καθορισµός του αποµονωτή λήψης από κλήσησχετικής MPI ρουτίνας, καλείται η L4M2¤> K§O©ž£$;:!3 C§NN$µακροεντολή για τη λήψη των δεδοµένωναπό τη συσκευή ADI-2. Η µακροεντολή αυτή αποτελεί τη δυαδική της µακροεντολής αποστολής42¤> ?©N©3C§N©N$©, και µεταβιβάζει τελικά τον έλεγχο στη βιβλιοθήκη P4. Είναι πάντως σηµαντικό


LΓ.6 Λήψη 211να επισηµάνουµεK$§O©ž©£;:!34M2¤> C§N©N$©ότι η επιϕέρει µια πρόσθετη αντιγραϕή δεδοµένων, καθώςLη βιβλιοθήκη P4 χρησιµοποιεί δικό της εσωτερικό αποµονωτή για τη λήψη ενός µηνύµατος από τοκανάλι επικοινωνίας.∆ιεργασία 1 ∆ιεργασία 2MPI _I r e c vMPID_Ir ecvDa t a t y p eMPID_Ir ecvCo n t igMPID_CH _E a g er b _s en dMPI _S e n drh a n d le- > buf= rbufM P I D _E n q ueue(&M P I D _recvs . po s t ed , rh a n d le)MPI D _S e n d Co n tr o lB lo c kMPI D _S e n d Ch a n n e lp4_sendxp4_sendx( sb u f )MPI _W a i tMPID_DeviceCheckp4_recv(&__p4lbuf)MEMCPY(pkt,__p4lbuf)pk t i s _po s t ed ,M P I D _P K T _L O N GMPID_CH _E a g er b _ir ecvMPID_R ecvF r o m Cha n n elp4_recv(&__p4lbuf)MEMCPY(r h a n d le - > buf,__p4lbuf)χ ρό ν ο ςΣχήµα Γ.4: Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του eager πρωτοκόλλου του MPICH (περίπτωσηαναµενόµενης λήψης)Για παράδειγµα, στην περίπτωση της ανταλλαγής µηνύµατος µεταξύ δύο διεργασιών (σχήµα Γ.4),η διεργασία 2 προλαβαίνει να εκτελέσει L την πριν ληϕθεί το µήνυµα από το κανάλι ADI-2. ∆ηµιουργείται έτσι το h<strong>and</strong>le λήψης £ 2;£$§O 4M2CN$µε τα στοιχεία του µηνύµατος και τοποθετείται στηνL4M2¤> £§O¢¥b8$¥0¦$ουρά των αναµενόµενων µηνυµάτων. Η διεργασία 1 αποστέλλει δύο διαϕορετικάµηνύµατα, την επικεϕαλίδα µέσω L της και τα δεδοµένα µέσω της µα-?©§N©3§N©¦£$©0ˆ¢0U4M2¤>?N©3LL4M2 4M2¤> 5!C!¡¤¦C§NN$κροεντολής . Κατά τη λήψη της επικεϕαλίδας µέσω της , η διεργασία 2αντιλαµβάνεται ότι πρόκειται για eager µήνυµα, του οποίου ο αποµονωτής προορισµού έχει ήδη γνωστοποιηθείστο αντίστοιχο CN+0F© £K$§O©ž©£;:!3 C§N©N$©4M2¤>για να λάβει τα δεδοµένα από το κανάλι CH µε τη βοήθεια της P4 βιβλιοθήκης.της ουράς αναµενόµενων µηνυµάτων. Τελικά, θα κληθεί η


L££££££ƒ£L££LLLLLLLLiLLLeLRwRRvRvRvRvRv212 Σχεδίαση Υλοποίησης MPICHΓ.6.6Μη Αναµενόµενη Eager ΛήψηΗ µη αναµενόµενη eager λήψη υλοποιείται από τη ρουτίνα Lαρχείο mpid/ch2/chbeager.c:4M2¤> 3d e$C¨$£F¥CO$, που ορίζεται στο42¤>!u4‰J$uJjz0©U©¦…iyP4M2¤>$u4‰J$uJjz¡TN¢u§©U¦'vŽ¡¤ ©4M2¤>!u§4©f©3‰!u3g§~©JK$gHRR¡0 P4M2¤>$u4f©3‰eJ$uK©3 c >!uŠeJ'Pp©U©¦$+ CS¤¥0£!4M2;>!u?§N4£¦f!§U6Pp©U©¦$+ CA8¦b{„©U©¦!+© CS¤¥0£!42¤>!u4f©3‰©eJ$uf>>$uK©3 c >'Pp©U¦!+ CS ¦b{‘U©¦!+© ©CS¥§£!Ž§N¡0CN$©+¥b4M2u§J©f©ŠixU©¦!+ ©CS8¦$C¨'v4M2u?g¤IK©3esixU©¦!+ ©CS@£C§N©USvCN$©+¥bixU©¦!+ ©CS8¦$bvCN$©+§$C£¦N$£ixU©¦!+ ©CS@§NSvCN$©+¥bN©¦i… £$¤:vCN$©+ £;:iš%mvCN$©+$¡¥u©;:¢¦¡0 PpU©¦!+ CA@Njs&CN$©+¥0¦C£¦ i P@O$!¡¤jzR¤LfH©Hg3nP ©U©¦!+© CS§Niš%mvCN$©+$¡¥u;:¢¦Ž¡¤ ©42¤>!už©Hg05¢u3g§~©JK$gH4M2;>!už©Hg§5!uu§Ke©f>6PpU¦$+© CS@NS{# £;:Ž§N¡042¤>!uK0O©ž£¤:!3CNN$©QP £CN$©+¥0¦C£©¦'{‘U©¦!+ CS@§NS{ £$¤:Η διαϕορά µε την αναµενόµενη περίπτωση έγκειται στο ότι το µήνυµα λαµβάνεται στον αποµονωτή£ CN$+©¥0¦$C£¦του h<strong>and</strong>le λήψης, ενώ επίσης ορίζεται συνάρτηση push για να ολοκληρωθεί ηεπικοινωνία κατά την κλήση της αντίστοιχης MPI ρουτίνας λήψης.Έτσι, στο υποθετικό σενάριο επικοινωνίας που εξετάζουµε (σχήµα Γ.5), η διεργασία 2 λαµβάνει τοeager µήνυµα µέσω της 0Uπριν κληθεί η L4M2 2¤£$0O. Κάτι τέτοιο θα µπορούσε να συµβείαν π.χ. η διεργασία 2 έλεγχε το κανάλι µέχρι να λάβει µήνυµα από µια τρίτη διεργασία, και κατά τη λειτουργίααυτή λάµβανε πρόωρα το µήνυµα της διεργασίας 1. Κατά τα γνωστά, η διεργασία 2 >$OM¡3 τοποθετείστην ουρά απροσδόκητων µηνυµάτων, και το µήνυµα αποθηκεύε-ένα σχετικό h<strong>and</strong>le λήψης C§N$ται προσωρινά στο πεδίο £ CN$©+¥0¦C£¦£. Όταν κληθεί η L4M2 2¤£$0Oγνωστοποιείται ο αποµονωτήςCN$©+§¢¥4M2¤>$u3d$ueC¨£F!u§N©£$0O$u¥0¦C£¦'v


eLΓ.6 Λήψη 213∆ιεργασία 1 ∆ιεργασία 2MPID_CH _E a g er b _s en dMPI D _S e n d Co n tr o lB lo c kMPI D _S e n d Ch a n n e lMPI _S e n dp4_sendxp4_sendx( sb u f )MPID_DeviceCheckp4_recv(&__p4lbuf)MEMCPY(pkt,__p4lbuf)M P I D _E n q ueue(&M P I D _R ecvs . un ex pect ed ,h a n d le)pk t ! i s _po s t ed ,M P I D _P K T _L O N GMPID_CH _E a g er b _s a verh a n d le- > pus h =M P I D _C H _E a g erb_un x recv_s t a rtMPID_R ecvF r o m Cha n n elp4_recv(&__p4lbuf)MEMCPY(r h a n d le - > s ta r t,__p4lbuf)MPI _I r e c vMPID_Ir ecvDa t a t y p eMPID_Ir ecvCo n t igrh a n d le- > buf= rbufrh a n d le- > pus hMPID_CH _E a g er b _u n x r ecv_s t a r tMEMCPY(r h a n d le - > buf,r h a n d le - > s ta r t)MPI _W a i t- -χ ρό ν ο ςΣχήµα Γ.5: Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του eager πρωτοκόλλου του MPICH (περίπτωσηµη αναµενόµενης λήψης)προορισµού , και καλείται η συνάρτηση L4M2¤> 3d e$C¨$£F ©N©£0O ¥§¦$C£¦£F©αντιγραϕή του µηνύµατος.για την απαιτούµενηΠαρατηρούµε ότι κατά την απροσδόκητη eager λήψη πραγµατοποιούνται συνολικά τρεις αντιγρα-ϕές στον παραλήπτη (µακροεντολή L34‹), εκ των οποίων µάλιστα η µία αϕορά ενδιάµεση αποθή-


L££££££LL££££££kLLLLLLLLLLiiLLLPLRvRvRvRvRvR214 Σχεδίαση Υλοποίησης MPICHκευση των δεδοµένων του µηνύµατος στον £ C§N$©+¥0¦C£¦. Οι αντιγραϕές αυτές µπορεί να προκαλέσουνκατασπατάληση των διαθέσιµων πόρων µνήµης του συστήµατος, οδηγώντας δυνητικά ακόµακαι σε αδυναµία περάτωσης της eager επικοινωνίας. Για το λόγο αυτό, το MPICH αϕενός υλοποιείέλεγχο ροής µνήµης πριν αποσταλεί ένα µήνυµα µέσω του eager πρωτοκόλλου, ενώ στην περίπτωσησχετικά µεγάλων µηνυµάτων επιλέγεται το rendezvous πρωτόκολλο για να αποϕευχθεί η χρονοβόραενδιάµεση αντιγραϕή της απροσδόκητης λήψης.Γ.6.7Αναµενόµενη Rendezvous ΛήψηΠερισσότερο σύνθετη περίπτωση είναι αυτή της αναµενόµενης rendezvous λήψης. Η διαχείριση τηςλήψης µεταβιβάζεται στη ρουτίνα L3d KNOF ¡¤£§O4M2;>, που ορίζεται στο αρχείο mpid/ch2/chbrndv.c:42¤>!u4‰J$uKe$»¤Ie?J!u?e~©>$u§Jjz0U©¦…i4M2;>!u§4‰©J$u§K©e$»¤Ie$?J$u?e~>!u§Jjz¡TN¢u§©U¦SvŽ¡¤ ©4M2¤>!u§4©f©3‰!u3g§~©JK$gHRR¡0 P4M2¤>$u4f©3‰eJ$uK©3 c >!uŠeJ'Pp©U©¦$+©¥§£!4M2;>!u?§N4£¦f!§U6Pp©U©¦$+¦b{‘U©¦!+¥0£¢42¤>!u4f©3‰©eJ$uf>>$uK©3 c >'Pp©U¦!+§¦$b{‘U©¦$+©¥0£!Ž§N¡0CN$©+¥bN©¦ixU©¦!+©NSvCN$©+¥b4M2u§J©f©ŠixU©¦!+¦C¨'vCN$©+¥b4M2u?g¤IK©3esixU©¦!+©§£$C§N©U'vCN$©+¥b4M2u§e©KK$g§Kit£©£SvCN$©+ £;:i… £$¤:vCN$©+¥§N$u¡¤ixU©¦!+¥Nu¡06vŽ¡¤ ©4M2¤>!u§4©f©3‰!u3g§~©JK$gHRR¡›P!œ4M2;>!u§4f©3‰eJ$u3de©3‰$ug‰6P@ £$;:4M2;>!u>OM¡30U'P42¤>!u§ˆHg3‰2;~©ŠŽ§N¡042¤>!u3£C¦K0OJ©£C§N¢¥ £6P†&b{†&n{Î £$¤:{ ©£¦$C¨42¤>!u3d$u§KNOF¢uU!u§¦©u¥§N6P £CN$©+¥§N$u¡¤'{„£©¦C¨S{ £$¤:CN$©+£0O!uCN¡i…£©¦$C¨SvCN$©+§k$C$¡;¦4M2;>!u3d$uKNOF!u0N£0O$uN6vCN$©+¦¥0¦4M2;>!u3d$uKNOF!u0N£0O$u§¦$¥0¦$u§N'vCN$©+§¢¥ij&nvCN$©+ £;:ih £$;: vCN$©+$¡¥u©;:¢¦¡ij&nv


Γ.6 Λήψη 215∆ιεργασία 1 ∆ιεργασία 2MPI _I r e c vMPID_IrecvDa t a t y p eMPID_IrecvCo nt i gMPID_CH_Rndvb_s endMPID_CH_Rndvb_i s endsh <strong>and</strong> l e- > start= sb u fMPI D _S e n d Co n tr o lB lo c kMPI _S e n dMPI _W a i trh <strong>and</strong> l e- > b u f= rb u fMPID_E nq u eu e(& MPID_rec v s. p o sted , rh <strong>and</strong> l e)MPID_Devi ceCh eckMPID_W a i t F o rCo m p l et eS endMPID_Devi ceCh eckp4_sendxp 4 _rec v ( & __p 4 l b u f)MEMCPY(pkt,__p4lbuf)p k t i s_p o sted ,MPID_PK T_R E Q U E S T_S E N DMPID_CH_Rndvb_i recvrh <strong>and</strong> l e- > w ai t =MPID_C H _R nd v b _u nx rec v _endMPID_CH_Rndvb_o k _t o _s endp 4 _rec v ( & __p 4 l b u f)MEMCPY(pkt,__p4lbuf)MPID_PK T_O K _TO _S E N Dp4_sendxMPI D _S e n d Co n tr o lB lo c kMPID_CH_Rndvb_unxrecv_endMPID_TestTransferMPID_CH_Rndvb_a ckMPI D _S e n d T r a n s fe rp4_sendx( sh a ndl e- > st a r t )MPID_R ec v Transferp 4 _rec v ( rh <strong>and</strong> l e- > b u f)χ ρό ν ο ςΣχήµα Γ.6: Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του rendezvous πρωτοκόλλου του MPICH(περίπτωση αναµενόµενης λήψης)Αρχικά πραγµατοποιείται έλεγχος για το L4M2 4©U C§U:MC£Uκατώϕλι και αποστέλλεται µήνυµα επιβεβαίωσης,εϕόσον κριθεί απαραίτητο. Εν συνεχεία ενηµερώνεται το h<strong>and</strong>le λήψης, το οποίο έχει ήδηδηµιουργηθεί στην αναµενόµενη περίπτωση που εξετάζουµε. Τελικά, αν το επιτρέπει και ο αντίστρο-ϕος έλεγχος ροής πακέτων προς τη διεργασία αποστολέα L4M2¤> 4f3‰©eJ 3d©e3‰ g‰(µακροεντολή ),αποστέλλεται µέσω της L ρουτίνας σχετική έγκριση για την περαιτέρω συνέχισητης επικοινωνίας µε τη µετάδοση των δεδοµένων, οπότε και ολοκληρώνεται η ϕάση χειραψίας42¤> 3d KNOFU ¦$ ¥Nµεταξύ αποστολέα και παραλήπτη. Επιπλέον, αρχικοποιείται το πεδίο k!C$¡¤¦ του h<strong>and</strong>le λήψης, ώστε


L££££££LLLLLLLLRvRvR216 Σχεδίαση Υλοποίησης MPICHνα κληθεί η κατάλληλη συνάρτηση για την ολοκλήρωση της rendezvous επικοινωνίας. Τέλος, παρατηρούµεότι αντίθετα µε τα short και eager πρωτόκολλα, εδώ το πεδίο ¡¥ ¤:¢¦ του h<strong>and</strong>le λήψηςαρχικοποιείται σε µηδενική τιµή, ώστε να καταδείξει τη βηµατική ακολουθία που πρέπει να εκτελεστείγια την επιτυχή ολοκλήρωση της επικοινωνίας.Για περισσότερη αποσαϕήνιση του rendezvous πρωτοκόλλου, ας εξετάσουµε εποπτικά την επικοινωνίαµεταξύ των δύο διεργασιών στο γνωστό σενάριο (σχήµα Γ.6). Η διεργασία 1 αποστέλλει µεχρήση4M2;> ?©N©3§N¦£©§ˆ!0Uτης ένα πακέτο L τύπου Lπου έχει στο µεταξύ προλάβει να καταχωρίσει την επικοινωνία L στην ουράστη διεργασία 2,4‰©J Ke!»0Ie?J ?e~©>4M2¤>£$0O¢¥n$¥0¦42¤>αναµενόµενη. Η διεργασία 2 λαµβάνει την αίτηση χειραψίας και σε κατάλληλο χρόνο θα απαντήσει4M2¤> 4‰©J g§‰ J!g ?e©~©>µε ένα µήνυµα ελέγχου για να ολοκληρώσει τη χειραψία. Μόλις η διεργασίαL1 λάβει την έγκριση, θα αποστείλει Lτα δεδοµένα µέσω της µακροεντολής , που4M2¤>µεταβιβάζει όπως L?N©3 C§NN$και η τον έλεγχο στη βιβλιοθήκη P4. Στο µεταξύ, η διεργασία 2έχει εισέλθει σε έναν ατέρµονα βρόχο αναµονής των δεδοµένων, τα οποία τελικά λαµβάνει µόλις γίνουν4M2¤> ?©§NJ£$C§N¢¥ £διαθέσιµα42¤> K$0O©J©£C§N¥§ £µέσω της .LΑπό το παραπάνω παράδειγµα γίνεται εµϕανής ο συγχρονισµός των δύο διεργασιών κατά τη χρήσητου rendezvous πρωτοκόλλου. Προϕανώς, το όϕελος που αποκοµίζουµε από το συγχρονισµό αυτόέγκειται στην αποϕυγή ενδιάµεσης αποθήκευσης των δεδοµένων επικοινωνίας, που µπορεί να αποδειχθείιδιαίτερα δαπανηρή για µεγάλα µηνύµατα.ωςΓ.6.8Μη Αναµενόµενη Rendezvous ΛήψηΗ τελευταία περίπτωση είναι αυτή της µη αναµενόµενης rendezvous λήψης. Εκεί το αρχικό µήνυµααίτησης χειραψίας λαµβάνεται από τη ρουτίνα L3d KNOF ¥CO$4M2;>του αρχείου mpid/ch2/chbrndv.c:42¤>!u4‰J$uKe$»¤Ie?J!u?e~©>$u§Jz0©U©¦…iyP4M2¤>$u4‰J!u§Ke$»0Ie?J!u?e©~>$u§Jz¡;N¢u0U¦'vŽ¡¤ ©4M2¤>!u§4©f©3‰!u3g§~©JK$gH¡0 P4M2¤>$u4f©3‰eJ$uK©3 c >!uŠeJ'Pp©U©¦$+©¥§£!RR4M2;>!u?§N4£¦f!§U6Pp©U©¦$+¦b{‘U©¦!+¥0£¢42¤>!u4f©3‰©eJ$uf>>$uK©3 c >'Pp©U¦!+§¦$b{‘U©¦$+©¥0£!Ž§N¡0CN$©+¥b4M2u§J©f©ŠixU©¦!+¦C¨'vCN$©+¥b4M2u?g¤IK©3esixU©¦!+©§£$C§N©U'vCN$©+¥b4M2u§e©KK$g§Kit&nvCN$©+¥bN©¦ixU©¦!+©NSvCN$©+$¡¥u©;:¢¦it&nvCN$©+ £;:i… £$¤:v


£££iLλήψης στην ουρά απροσδόκητων λήψεων Lκαι καθορίζεται το πεδίο ¥ Γ.6 Λήψη 217CN©+0!C£¦N!£ixU©¦$+©¦bvCN©+©¥§Nu$¡¤ixU©¦$+©¥§Nu¡¤'vCN©+0©¢¥4M2;>!u3d$u§KNOF!u0N£§O$u©¥§¦C£¦Sv¥Η βασική διαϕορά σε σχέση µε την αναµενόµενη περίπτωση έγκειται στην αρχικοποίηση του πεδίου του h<strong>and</strong>le λήψης, ώστε να δεικτοδοτεί τη ρουτίνα που θα ολοκληρώσει τη ϕάση χειραψίας. Έτσι,λαµβά-4M2¤> 4©‰J K©e!»¤Ie$?J ?e©~>όπως βλέπουµε και στο σενάριο του Lσχήµατος Γ.7, η αρχική αίτησηLνεται πρόωρα από τη ρουτίνα . Βάσει της αίτησης αυτής αρχικοποιείται h<strong>and</strong>le4M2;> >$OM¡30Uγια τη µελλοντική ολοκλήρωση της επικοινωνίας.42 2¤£§OLΌταν κληθεί η στη διεργασία 2 καθορίζεταιο αποµονωτής προορισµού, αποστέλλεται έγκριση αποστολής και καλείται η λειτουργία push,που µε τη σειρά της καθορίζει τη wait λειτουργία για την ολοκλήρωση της λήψης των δεδοµένων. Λαµβάνονταςτην έγκριση αποστολής, η διεργασία 1 µεταβαίνει στη ρουτίνα L. Τα δεδοµένα θα πα-τελική αποστολή των δεδοµένων µέσω της Lµακροεντολήςραληϕθούν από τη διεργασία 2 µόλις η τελευταία καλέσει τη L σχετικήαπευθείας στον αποµονωτή που καθόρισε ο χρήστης.3d KNOF 42¤>?©NJ©£CN¢¥§ £4M2;>4M2 5!C$¡¤¦C§Uγια τηνκαι θα αποθηκευτούνΠαρατηρούµε ότι ακόµα και στην περίπτωση της µη αναµενόµενης rendezvous λήψης δεν προκύπτειενδιάµεση αποθήκευση των δεδοµένων επικοινωνίας. Αντίθετα, απλώς αναστέλλεται η ϕάση της2¤£$§O 4M2χειραψίας µέχρι να Lκαθοριστεί από την ο αποµονωτής προορισµού των δεδοµένων. Φυσικά,εδώ η επιβάρυνση λόγω του συγχρονισµού των διεργασιών αναµένεται να είναι ακόµα µεγαλύτερησε σχέση µε την περίπτωση της αναµενόµενης λήψης.4M2¤> £$0O¢¥nN!$0¦


∆ιεργασία 1 ∆ιεργασία 2MPID_CH _R n d vb _s en dMPI _S e n dMPID_CH _R n d vb _is en ds h a n d le- > s t a rt = s bufMPI D _S e n d Co n tr o lB lo c kMPID_W a it F o r Co m p l et eS en dMPID_DeviceCheckp4_sendxMPID_DeviceCheckp4_recv(&__p4lbuf)MEMCPY(pkt,__p4lbuf)M P I D _E n q ueue(&M P I D _R ecvs . un ex pect ed ,rh a n d le)pk t ! i s _po s t ed ,M P I D _P K T _R E Q U E S T _S E N DMPID_CH _R n d vb _s a verh a n d le- > pus h =M P I D _C H _R n d vb_un x recv_s t a rtp4_recv(&__p4lbuf)MEMCPY(pkt,__p4lbuf)pk t M P I D _P K T _O K _T O _S E N DMPID_CH _R n d vb _a ckMPI D _S e n d T r a n s fe rMPI _I r e c vp4_sendxMPI _W a i tp4_sendx( sh a ndl e- > st a r t )MPID_Ir ecvDa t a t y p eMPID_Ir ecvCo n t igrh a n d le- > buf= rbufrh a n d le- > pus hMPID_CH _R n d vb _o k_t o _s en dMPI D _S e n d Co n tr o lB lo c kMPID_CH _R n d vb _u n x r ecv_s t a r trh a n d le- > w a i t =M P I D _C H _R n d vb_un x recv_en dMPID_CH _R n d vb _u n x r ecv_en dM P I D _T es t T ra n s ferM P I D _R ecvT ra n s ferp4_recv(rh a n d le- > buf)χ ρό ν ο ςΣχήµα Γ.7: Επικοινωνία µεταξύ δύο διεργασιών κατά τη χρήση του rendezvous πρωτοκόλλου του MPICH(περίπτωση µη αναµενόµενης λήψης)


Βιβλιογραϕία[ABRY03][ACN + 00][AGMJ04][AKPT99][ASTK02]R. Andonov, S. Balev, S. Rajopadhye, <strong>and</strong> N. Yanev. Optimal Semi-oblique Tiling. IEEETransactions on <strong>Parallel</strong> <strong>and</strong> Distributed Systems, 14(9):944–960, Sep 2003.R. Andonov, P. Call<strong>and</strong>, S. Niar, S. Rajopadhye, <strong>and</strong> N. Yanev. First Steps Towards OptimalOblique Tile Sizing. In Proceedings of <strong>the</strong> 8th International Workshop on Compilers <strong>for</strong><strong>Parallel</strong> Computers, pages 351–366, Aussois, France, Jan 2000.E. Ayguadé, M. González, X. Martorell, <strong>and</strong> G. Jost. Employing Nested OpenMP <strong>for</strong> <strong>the</strong><strong>Parallel</strong>ization of Multi-zone Computational Fluid Dynamics Applications. In Proceedingsof <strong>the</strong> 18th International <strong>Parallel</strong> <strong>and</strong> Distributed Processing Symposium 2004 (IPDPS2004), Santa Fe, New Mexico, USA, Apr 2004.T. Andronikos, N. Koziris, G. Papakonstantinou, <strong>and</strong> P. Tsanakas. Optimal Scheduling<strong>for</strong> UET/UET-UCT Generalized N-Dimensional Grid Task Graphs. Journal of <strong>Parallel</strong><strong>and</strong> Distributed Computing, 57(2):140–165, May 1999.M. Athanasaki, A. Sotiropoulos, G. Tsoukalas, <strong>and</strong> N. Koziris. Pipelined Scheduling ofTiled Nested Loops onto Clusters of SMPs Using Memory Mapped Network Interfaces. InProceedings of <strong>the</strong> 2002 ACM/IEEE Conference on Supercomputing, Baltimore, Maryl<strong>and</strong>,USA, 2002. IEEE Computer Society Press.[Ban88] U. Banerjee. Dependence Analysis <strong>for</strong> Supercomputing. Kluwer Academic Publishers,1988.


220 ΒΙΒΛΙΟΓΡΑΦΙΑ[BDH + 02][BDRR94][BDRV99][BL94][Boa05]R. Biswas, M. Djomehri, R. Hood, H. Jin, C. Kiris, <strong>and</strong> S. Saini. An Application-BasedPer<strong>for</strong>mance Characterization of <strong>the</strong> Columbia Supercluster. In Proceedings of <strong>the</strong> 2005ACM Conference on Supercomputing, Seattle, Washington, USA, Nov 2002.P. Boulet, A. Darte, T. Risset, <strong>and</strong> Y. Robert. (Pen)-ultimate Tiling? INTEGRATION, eVLSI Jounal, 17:33–51, 1994.P. Boulet, J. Dongarra, Y. Robert, <strong>and</strong> F. Vivien. Static Tiling <strong>for</strong> Heterogeneous ComputingPlat<strong>for</strong>ms. Journal of <strong>Parallel</strong> Computing, 25(5):547–568, May 1999.R. Butler <strong>and</strong> E. Lusk. Monitors, Messages, <strong>and</strong> Clusters: The p4 <strong>Parallel</strong> ProgrammingSystem. Journal of <strong>Parallel</strong> Computing, 20(4):547–564, 1994.OpenMP Architecture Review Board. OpenMP Application Program Interface. Technicalreport, OpenMP Architecture Review Board, May 2005. Version 2.5.[CDMC + 05] C. Coarfǎ, Y. Dotsenko, J. Mellor-Crummey, F. Cantonnet, T. El-Ghazawi, A. Mohanti,Y. Yao, <strong>and</strong> D. Chavarría-Mir<strong>and</strong>a. An Evaluation of Global Address Space Languages:Co-Array Fortran <strong>and</strong> Unified <strong>Parallel</strong> C. In Proceedings of <strong>the</strong> ACM SIGPLAN Symposiumon Principles & Practice of <strong>Parallel</strong> Programming (PPoPP), pages 36–47, Chicago,Illinois, USA, Jun 2005. ACM Press.[CDR97]P. Call<strong>and</strong>, J. Dongarra, <strong>and</strong> Y. Robert. Tiling with Limited Resources. In Proceedingsof <strong>the</strong> IEEE International Conference on Application-Specific Systems, Architectures <strong>and</strong>Processors (ASAP), pages 229–238. IEEE Computer Society Press, Jul 1997.[CDR99] P. Call<strong>and</strong>, J. Dongarra, <strong>and</strong> Y. Robert. Tiling on Systems with Communication/ComputationOverlap. Journal of Concurrency: Practice <strong>and</strong> Experience, 11(3):139–153, 1999.[CE00]F. Cappello <strong>and</strong> D. Etiemble. MPI versus MPI+OpenMP on IBM SP <strong>for</strong> <strong>the</strong> NAS Benchmarks.In Proceedings of <strong>the</strong> 2000 ACM/IEEE Conference on Supercomputing (CDROM),page 12, Dallas, Texas, USA, 2000. IEEE Computer Society.[CL95] M. Cierniak <strong>and</strong> W. Li. Unifying Data <strong>and</strong> Control Trans<strong>for</strong>mations <strong>for</strong> DistributedShared Memory Machines. In Proceedings of <strong>the</strong> ACM SIGPLAN Conference on ProgrammingLanguage Design <strong>and</strong> Implementation (PLDI’95), pages 205–217, La Jolla, Cali<strong>for</strong>nia,USA, Jun 1995.


ΒΙΒΛΙΟΓΡΑΦΙΑ 221[CM95][CM99][CMT94][Con05][CRE00]S. Coleman <strong>and</strong> K. S. McKinley. Tile Size Selection Using Cache Organization <strong>and</strong> DataLayout. In Proceedings of <strong>the</strong> ACM SIGPLAN 1995 Conference on Programming LanguageDesign <strong>and</strong> Implementation, pages 279–290, La Jolla, CA, Jun 1995.J. Chame <strong>and</strong> S. Moon. A Tile Selection Algorithm <strong>for</strong> Data Locality <strong>and</strong> Cache Interference.In Proceedings of <strong>the</strong> 13th ACM International Conference on Supercomputing (ICS’99), pages 492–499, Rhodes, Greece, Jun 1999.S. Carr, K. McKinley, <strong>and</strong> C. Tseng. Compiler Optimizations <strong>for</strong> Improving Data Locality.In Proceedings of <strong>the</strong> 6th International Conference on Architectural Support <strong>for</strong> ProgrammingLanguages <strong>and</strong> Operating Systems (ASPLOS’94), pages 252–262, San Jose, Cali<strong>for</strong>nia,USA, Oct 1994.UPC Consortium. UPC Language Specifications, V1.2. Technical Report LBNL-59208,Lawrence Berkeley National Lab, May 2005.F. Cappello, O. Richard, <strong>and</strong> D. Etiemble. Investigating <strong>the</strong> Per<strong>for</strong>mance of Two ProgrammingModels <strong>for</strong> Clusters of SMP PCs. In Proceedings of <strong>the</strong> 2000 IEEE HPCA Conference,pages 349–359. IEEE Press, Jan 2000.[DGR05] A. Debudaj-Grabysz <strong>and</strong> R. Rabenseifner. Nesting OpenMP in MPI to Implement aHybrid Communication Method of <strong>Parallel</strong> Simulated Annealing on a Cluster of SMPNodes. In Proceedings of <strong>the</strong> 12th EuroPVM/MPI Conference 2005 (EuroPVM/MPI 2005),pages 18–27, Sorrento, Italy, Sep 2005.[D’H92]E. D’Holl<strong>and</strong>er. Partitioning <strong>and</strong> Labeling of Loops by Unimodular Trans<strong>for</strong>mations.IEEE Transactions on <strong>Parallel</strong> <strong>and</strong> Distributed Systems, 3(4):465–476, Jul 1992.[DK02] S. Dong <strong>and</strong> G. Karniadakis. Dual-level <strong>Parallel</strong>ism <strong>for</strong> Deterministic <strong>and</strong> StochasticCFD Problems. In Proceedings of <strong>the</strong> 2002 ACM/IEEE Conference on Supercomputing,Baltimore, Maryl<strong>and</strong>, USA, 2002. IEEE Computer Society Press.[DK04][DM98]S. Dong <strong>and</strong> G. Karniadakis. Dual-level <strong>Parallel</strong>ism <strong>for</strong> High-order CFD <strong>Methods</strong>. Journalof <strong>Parallel</strong> Computing, 30(1):1–20, 2004.L. Dagum <strong>and</strong> R. Menon. OpenMP: An Industry-st<strong>and</strong>ard API <strong>for</strong> Shared-Memory Programming.IEEE Computational Science <strong>and</strong> Engineering, 5(1):46–55, 1998.


222 ΒΙΒΛΙΟΓΡΑΦΙΑ[DMS99][EGCD02][For94][For97][GAM + 00][GBD + 94][GKKS00][GLT99][GSK01][HAA + 96]J. Dongarra, H. Meuer<strong>and</strong>, <strong>and</strong> S. Strohmaier. Top500 Supercomputer Sites. TechnicalReport UT-CS-99-434, Department of Computer Science, University of Tennessee, Nov1999.T. El-Ghazawi, W. Carlson, <strong>and</strong> J. Draper. UPC Language Specifications, V1.1.1. In 2ndUPC Workshop, Washington DC, USA, Mar 2002.Message Passing Interface Forum. MPI: A Message Passing Interface St<strong>and</strong>ard. InternationalJournal of Supercomputer Applications, 8(3/4):159–416, 1994.High Per<strong>for</strong>mance Fortran Forum. HPF Language Specification, V2.0. Technical report,Jan 1997.M. González, E. Ayguadé, X. Martorell, J. Labarta, N. Navarro, <strong>and</strong> J. Oliver. NanosCompiler:Supporting Flexible Multilevel <strong>Parallel</strong>ism Exploitation in OpenMP. Journal of Concurrency:Practice <strong>and</strong> Experience, 12(12):1205–1218, 2000.A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, <strong>and</strong> V. Sunderam. PVM: <strong>Parallel</strong>Virtual Machine. A Users’ Guide <strong>and</strong> Tutorial <strong>for</strong> Networked <strong>Parallel</strong> Computing. Scientific<strong>and</strong> Engineering Computation. MIT Press, Nov 1994.W. Gropp, D. Kaushik, D. Keyes, <strong>and</strong> B. Smith. Per<strong>for</strong>mance Modeling <strong>and</strong> Tuning of anUnstructured Mesh CFD Application. In Proceedings of <strong>the</strong> 2000 ACM/IEEE Conferenceon Supercomputing (CDROM), page 833, Dallas, Texas, USA, Nov 2000.W. Gropp, E. Lusk, <strong>and</strong> R. akur. Using MPI-2: Advanced Features of <strong>the</strong> Message PassingInterface. Scientific <strong>and</strong> Engineering Computation series. MIT Press, Cambridge, MA,1999.G. Goumas, A. Sotiropoulos, <strong>and</strong> N. Koziris. Minimizing Completion Time <strong>for</strong> LoopTiling with Computation <strong>and</strong> Communication Overlapping. In Proceedings of IEEE International<strong>Parallel</strong> <strong>and</strong> Distributed Processing Symposium (IPDPS’01), San Francisco, USA,Apr 2001.M. Hall, J. Anderson, S. Amarasinghe, B. Murphy, S. Liao, E. Bugnion, <strong>and</strong> M. Lam. MaximizingMultiprocessor Per<strong>for</strong>mance with <strong>the</strong> SUIF Compiler. Computer, 29(12):84–89,1996.


ΒΙΒΛΙΟΓΡΑΦΙΑ 223[HCF97][HCF99][HCF03][HD02][Hen00][HLCZ00][Hod99][HS98][HS99][HS02][HST99]K. Högstedt, L. Carter, <strong>and</strong> J. Ferrante. Determining <strong>the</strong> Idle Time of a Tiling. In Proceedingsof <strong>the</strong> Principles of Programming Languages (POPL’97), pages 319–323, Paris, France,Jan 1997.K. Högstedt, L. Carter, <strong>and</strong> J. Ferrante. Selecting Tile Shape <strong>for</strong> Minimal Execution Time.In Proceedings of <strong>the</strong> ACM Symposium on <strong>Parallel</strong> Algorithms <strong>and</strong> Architectures, pages201–211, Saint Malo, France, 1999.K. Högstedt, L. Carter, <strong>and</strong> J. Ferrante. On <strong>the</strong> <strong>Parallel</strong> Execution Time of Tiled Loops.IEEE Transactions on <strong>Parallel</strong> <strong>and</strong> Distributed Systems, 14(3):307–321, Mar 2003.Y. He <strong>and</strong> C. Ding. MPI <strong>and</strong> OpenMP Paradigms on Cluster of SMP Architectures: <strong>the</strong>Vacancy Tracking Algorithm <strong>for</strong> Multi-dimensional Array Transposition. In Proceedingsof <strong>the</strong> 2002 ACM/IEEE Conference on Supercomputing, Baltimore, Maryl<strong>and</strong>, USA, 2002.IEEE Computer Society Press.D. Henty. Per<strong>for</strong>mance of Hybrid Message-Passing <strong>and</strong> Shared-Memory <strong>Parallel</strong>ism <strong>for</strong>Discrete Element Modeling. In Proceedings of <strong>the</strong> 2000 ACM/IEEE Conference on Supercomputing(CDROM), page 10, Dallas, Texas, USA, 2000. IEEE Computer Society.Y. Hu, H. Lu, A. Cox, <strong>and</strong> W. Zwaenepoel. OpenMP <strong>for</strong> Networks of SMPs. Journal of<strong>Parallel</strong> <strong>and</strong> Distributed Computing, 60(12):1512–1530, 2000.E. Hodzic. Time Optimal Tiling of Algorithms with Uni<strong>for</strong>m Dependencies <strong>for</strong> DistributedMemory <strong>Parallel</strong> Computers. PhD <strong>the</strong>sis, Santa Clara University, School of Engineering,Jun 1999.E. Hodzic <strong>and</strong> W. Shang. On Supernode Trans<strong>for</strong>mation with Minimized Total RunningTime. IEEE Transactions on <strong>Parallel</strong> <strong>and</strong> Distributed Systems, 9(5):417–428, May 1998.E. Hodzic <strong>and</strong> W. Shang. On Time Optimal Supernode Shape. In Proceedings of <strong>the</strong> InternationalConference on <strong>Parallel</strong> <strong>and</strong> Distributed Processing <strong>Techniques</strong> <strong>and</strong> Applications(PDPTA), pages 2019–2026, Las Vegas, USA, Jun 1999.E. Hodzic <strong>and</strong> W. Shang. On Time Optimal Supernode Shape. IEEE Transactions on<strong>Parallel</strong> <strong>and</strong> Distributed Systems, 13(12):1220–1233, Dec 2002.W. Hu, W. Shi, <strong>and</strong> Z. Tang. JIAJIA: An SVM System Based on a New Cache CoherenceProtocol. In Proceedings of <strong>the</strong> High-Per<strong>for</strong>mance Computing <strong>and</strong> Networking Europe 1999(HPCN’99), pages 463–472, 1999.


224 ΒΙΒΛΙΟΓΡΑΦΙΑ[IT88][KC03a][KC03b][KCDZ94][KCRB99][KCS + 98][KK02][KKH03][KLB02]F. Irigoin <strong>and</strong> R. Triolet. Supernode Partitioning. In Proceedings of <strong>the</strong> 15th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL’85), pages 319–329,San Diego, Cali<strong>for</strong>nia, USA, Jan 1988.G. Krawezik <strong>and</strong> F. Cappello. Per<strong>for</strong>mance Comparison of MPI <strong>and</strong> three OpenMP ProgrammingStyles on Shared Memory Multiprocessors. In Proceedings of <strong>the</strong> 15th ACMSymposium on <strong>Parallel</strong> Algorithms <strong>and</strong> Architectures, pages 118–127, San Diego, Cali<strong>for</strong>nia,USA, Jun 2003. ACM Press.G. Krawezik <strong>and</strong> F. Cappello. Per<strong>for</strong>mance Comparison of MPI <strong>and</strong> three OpenMP ProgrammingStyles on Shared Memory Multiprocessors. Journal of Concurrency <strong>and</strong> Computation:Practice <strong>and</strong> Experience, 2003.P. Keleher, A. Cox, S. Dwarkadas, <strong>and</strong> W. Zwaenepoel. TreadMarks: Distributed SharedMemory on St<strong>and</strong>ard Workstations <strong>and</strong> Operating Systems. In Proceedings of <strong>the</strong> 1994Winter USENIX Conference, Jan 1994.M. K<strong>and</strong>emir, A. Choudhary, J. Ramanujam, <strong>and</strong> P. Banerjee. On Reducing False Sharingwhile Improving Locality on Shared Memory Multiprocessors. In Proceedings of <strong>the</strong> InternationalConference on <strong>Parallel</strong> Architectures <strong>and</strong> Compilation <strong>Techniques</strong> (PACT’99),pages 203–211, Newport Beach, Cali<strong>for</strong>nia, USA, Oct 1999.M. K<strong>and</strong>emir, A. Choudhary, N. Shenoy, P. Banerjee, <strong>and</strong> J. Ramanujam. A HyperplaneBased Approach <strong>for</strong> Optimizing Spatial Locality in Loop Nests. In Proceedings of <strong>the</strong>International Conference on Supercomputing (ICS’98), pages 69–76, Melbourne, Australia,Jul 1998.G. Karniadakis <strong>and</strong> R. Kirby. <strong>Parallel</strong> Scientific Computing in C++ <strong>and</strong> MPI : A SeamlessApproach to <strong>Parallel</strong> Algorithms <strong>and</strong> <strong>the</strong>ir Implementation. Cambridge University Press,2002.Y. Kee, J. Kim, <strong>and</strong> S. Ha. ParADE: An OpenMP Programming Environment <strong>for</strong> SMPCluster Systems. In Proceedings of <strong>the</strong> 2003 ACM/IEEE Conference on Supercomputing(CDROM), Phoenix, Arizona, USA, Nov 2003.S. Karlsson, S. Lee, <strong>and</strong> M. Brorsson. A Fully Compliant OpenMP Implementation onSoware Distributed Shared Memory. In Proceedings of <strong>the</strong> 9th International Conferenceon High Per<strong>for</strong>mance Computing (HiPC), pages 195–208, Bangalore, India, Dec 2002.


ΒΙΒΛΙΟΓΡΑΦΙΑ 225[KM92][KMP + 96][KRC99][KSG03][KW04][LP92]K. Kennedy <strong>and</strong> K. McKinley. Optimizing <strong>for</strong> <strong>Parallel</strong>ism <strong>and</strong> Data Locality. In Proceedingsof <strong>the</strong> International Conference on Supercomputing (ICS’92), pages 323–334, Washington,D. C., USA, Jul 1992.W. Kelly, V. Maslov, W. Pugh, E. Rosser, T. Shpeisman, <strong>and</strong> D. Wonnacott. The OmegaLibrary Interface Guide. Technical Report UMIACS-TR-95-41, University of Maryl<strong>and</strong>at College Park, College Park, Maryl<strong>and</strong>, USA, Apr 1996.M. K<strong>and</strong>emir, J. Ramanujam, <strong>and</strong> A. Choudary. Improving Cache Locality by a Combinationof Loop <strong>and</strong> Data Trans<strong>for</strong>mations. IEEE Transactions on <strong>Parallel</strong> <strong>and</strong> DistributedSystems, 48(2):159–167, Feb 1999.N. Koziris, A. Sotiropoulos, <strong>and</strong> G. Goumas. A Pipelined Schedule to Minimize CompletionTime <strong>for</strong> Loop Tiling with Computation <strong>and</strong> Communication Overlapping. Journalof <strong>Parallel</strong> <strong>and</strong> Distributed Computing, 63(11):1138–1151, Nov 2003.W. Kuchera <strong>and</strong> C. Wallace. e UPC Memory Model: Problems <strong>and</strong> Prospects. InProceedings of <strong>the</strong> 18th International <strong>Parallel</strong> <strong>and</strong> Distributed Processing Symposium 2004(IPDPS 2004), Santa Fe, New Mexico, Apr 2004.W. Li <strong>and</strong> K. Pingali. Compiler Optimizations <strong>for</strong> Cache Locality <strong>and</strong> Coherence. TechnicalReport TR 92-1278, Cornell University Ithaca, New York, 1992.[LRW91] M. Lam, E. Rothberg, <strong>and</strong> M. Wolf. The Cache Per<strong>for</strong>mance <strong>and</strong> Optimizations ofBlocked Algorithms. In Proceedings of <strong>the</strong> 4th International Conference on ArchitecturalSupport <strong>for</strong> Programming Languages <strong>and</strong> Operating Systems, pages 63–74, Santa Clara,CA, Apr 1991.[LTD01][Maj00][MCT96]R. Lo, S. omas, <strong>and</strong> J. Dennis. Terascale Spectral Element Dynamical Core <strong>for</strong> AtmosphericGeneral Circulation Models. In Proceedings of <strong>the</strong> 2001 ACM/IEEE Conference onSupercomputing (CDROM), page 18, Denver, Colorado, 2001. ACM Press.A. Majumdar. <strong>Parallel</strong> Per<strong>for</strong>mance Study of Monte Carlo Photon Transport <strong>Code</strong> onShared-, Distributed-, <strong>and</strong> Distributed-Shared-Memory Architectures. In Proceedingsof <strong>the</strong> 14th International <strong>Parallel</strong> Processing Symposium (IPPS 2000), page 93, Cancun,Mexico, May 2000.K. McKinley, S. Carr, <strong>and</strong> C.-W. Tseng. Improving Data Locality with Loop Trans<strong>for</strong>mations.ACM Transactions on Programming Languages <strong>and</strong> Systems, 18(4):424–453, Jul1996.


226 ΒΙΒΛΙΟΓΡΑΦΙΑ[MH95][MLNA96][Nak03][NBF96][NR98][OSKO95][PMN + 98][Rab02][Rab03][RS92]J. Merlin <strong>and</strong> A. Hey. An Introduction to High Per<strong>for</strong>mance Fortran. Scientific Programming,4(2):87–113, 1995.X. Martorell, J. Labarta, N. Navarro, <strong>and</strong> E. Ayguadé. A Library Implementation of <strong>the</strong>Nano-Threads Programming Model. In Proceedings of <strong>the</strong> Euro-Par Conference, pages644–649, 1996.K. Nakajima. OpenMP / MPI Hybrid vs. Flat MPI on <strong>the</strong> Earth Simulator: <strong>Parallel</strong> IterativeSolvers <strong>for</strong> Finite Element Method. In Proceedings of <strong>the</strong> 5th International Symposiumon High Per<strong>for</strong>mance Computing (ISHPC 2003), pages 486–499, Tokyo-Odaiba,Japan, Oct 2003.B. Nichols, D. Buttlar, <strong>and</strong> J. Farrell. Pthreads Programming. O’Reilly & Associates, Sebastopol,CA, USA, 1996.R. Numrich <strong>and</strong> J. Reid. Co-Array Fortran <strong>for</strong> <strong>Parallel</strong> Programming. SIGPLAN FortranForum, 17(2):1–31, 1998.H. Ohta, Y. Saito, M. Kainaga, <strong>and</strong> H. Ono. Optimal Tile Size Adjustment in CompilingGeneral DOACROSS Loop Nests. In Proceedings of <strong>the</strong> 9th International Conference onSupercomputing (ICS’95), pages 270–279, Barcelona, Spain, Jul 1995.E. Polychronopoulos, X. Martorell, D. Nikolopoulos, J. Labarta, T. Papa<strong>the</strong>odorou, <strong>and</strong>N. Navarro. Kernel-Level Scheduling <strong>for</strong> <strong>the</strong> Nano-Threads Programming Model. InProceedings of <strong>the</strong> 12th ACM International Conference on Supercomputing (ICS ’98), pages337–344, Melbourne, Australia, 1998. ACM Press.R. Rabenseifner. Communication B<strong>and</strong>width of <strong>Parallel</strong> Programming Models on HybridArchitectures. In Proceedings of WOMPEI 2002, International Workshop on OpenMP:Experiences <strong>and</strong> Implementations, part of ISHPC-IV, International Symposium on HighPer<strong>for</strong>mance Computing, Kansai Science City, Japan, May 2002.R. Rabenseifner. Hybrid <strong>Parallel</strong> Programming: Per<strong>for</strong>mance Problems <strong>and</strong> Chances. InProceedings of <strong>the</strong> Cray User Group Conference, CUG SUMMIT 2003, Columbus, Ohio,USA, May 2003.J. Ramanujam <strong>and</strong> P. Sadayappan. Tiling Multidimensional Iteration Spaces <strong>for</strong> Multicomputers.Journal of <strong>Parallel</strong> <strong>and</strong> Distributed Computing, 16:108–120, 1992.


ΒΙΒΛΙΟΓΡΑΦΙΑ 227[RW03][SB01][SDH + 97][SEKBL04][SF91][SL01][SSKT99][SSOB03][Ste90][Taf01][TZ94]R. Rabenseifner <strong>and</strong> G. Wellein. Communication <strong>and</strong> Optimization Aspects of <strong>Parallel</strong>Programming Models on Hybrid Architectures. International Journal of High Per<strong>for</strong>manceComputing Applications, 17(1):49–62, 2003.L. Smith <strong>and</strong> M. Bull. Development of Mixed Mode MPI / OpenMP Applications. ScientificProgramming, 9(2-3):83–98, 2001.R. Stets, S. Dwarkadas, N. Hardavellas, G. Hunt, L. Kontothanassis, S. Parthasarathy, <strong>and</strong>M. Scott. Cashmere-2L: Soware Coherent Shared Memory on a Clustered Remote-WriteNetwork. In Proceedings of <strong>the</strong> 16th ACM Symposium on Operating Systems Principles(SOSP ’97), pages 170–183, Saint Malo, France, 1997. ACM Press.M. Su, I. El-Kady, D. Bader, <strong>and</strong> S. Lin. A Novel FDTD Application Featuring OpenMP-MPI Hybrid <strong>Parallel</strong>ization. In Proceedings of <strong>the</strong> International Conference on <strong>Parallel</strong>Processing (ICPP’04), pages 373–379, Montreal, Canada, Aug 2004.W. Shang <strong>and</strong> J. Fortes. Time Optimal Linear Schedules <strong>for</strong> Algorithms with Uni<strong>for</strong>mDependencies. IEEE Transactions on Computers, 40(6):723–742, Jun 1991.Y. Song <strong>and</strong> Z. Li. Impact of Tile-Size Selection <strong>for</strong> Skewed Tiling. In Proceedings of<strong>the</strong> 5th Workshop on Interaction between Compilers <strong>and</strong> Architectures (INTERACT’01),Monterrey, Mexico, Jan 2001.M. Sato, S. Satoh, K. Kusano, <strong>and</strong> Y. Tanaka. Design of OpenMP Compiler <strong>for</strong> an SMPCluster. In Proceedings of <strong>the</strong> European Workshop on OpenMP (EWOMP ’99), pages 32–39, Lund, Sweden, Sep 1999.H. Shan, J. Singh, L. Oliker, <strong>and</strong> R. Biswas. Message Passing <strong>and</strong> Shared Address Space<strong>Parallel</strong>ism on an SMP Cluster. <strong>Parallel</strong> Computing, 29(2):167–186, 2003.R. Stevens. UNIX Network Programming. Soware Series. Prentice Hall, Upper SaddleRiver, NJ, USA, 1990.J. Ta. Achieving 60 GFLOP/s on <strong>the</strong> Production CFD <strong>Code</strong> OVERFLOW-MLP. <strong>Parallel</strong>Computing, 27(4):521–536, 2001.P. Tang <strong>and</strong> J. Zigman. Reducing Data Communication Overhead <strong>for</strong> DOACROSS LoopNests. In Proceedings of <strong>the</strong> 8th International Conference on Supercomputing (ICS’94),pages 44–53, Manchester, UK, Jul 1994.


228 ΒΙΒΛΙΟΓΡΑΦΙΑ[WHBF02][WJB04][WL91a][WL91b][WM03][Xue97][XW02][Zig94][Αθα05][Γκο03]G. Wellein, G. Hager, A. Basermann, <strong>and</strong> H. Fehske. Fast Sparse Matrix-Vector Multiplication<strong>for</strong> TeraFlop/s Computers. In Proceedings of <strong>the</strong> 5th International Conference ofHigh Per<strong>for</strong>mance Computing <strong>for</strong> Computational Science - VECPAR 2002, pages 287–301,Porto, Portugal, Jun 2002.P. Wong, H. Jin, <strong>and</strong> J. Becker. Load Balancing Multi-zone Applications on a HeterogeneousCluster with Multi-level <strong>Parallel</strong>ism. In Proceedings of <strong>the</strong> 3rd International Symposiumon <strong>Parallel</strong> <strong>and</strong> Distributed Computing/International Workshop on Algorithms, Models<strong>and</strong> Tools <strong>for</strong> <strong>Parallel</strong> Computing on Heterogeneous Networks (ISPDC/HeteroPar’04),pages 388–393, Cork, Irel<strong>and</strong>, Jul 2004.M. Wolf <strong>and</strong> M. Lam. A Data Locality Optimizing Algorithm. In Proceedings of <strong>the</strong> ACMSIGPLAN Conference on Programming Language Design <strong>and</strong> Implementation (PLDI’91),Toronto, Ontario, Canada, Jun 1991.M. Wolf <strong>and</strong> M. Lam. A Loop Trans<strong>for</strong>mation Theory <strong>and</strong> an Algorithm to Maximize<strong>Parallel</strong>ism. IEEE Transactions on <strong>Parallel</strong> <strong>and</strong> Distributed Systems, 2(4):452–471, Oct1991.F. Wolf <strong>and</strong> B. Mohr. <strong>Automatic</strong> Per<strong>for</strong>mance Analysis of Hybrid MPI/OpenMP Applications.In Proceedings of <strong>the</strong> 11th Euromicro Conference on <strong>Parallel</strong>, Distributed <strong>and</strong>Network-Based Processing (EuroPDP 2003), pages 13–22, Genova, Italy, Feb 2003.J. Xue. Communication-Minimal Tiling of Uni<strong>for</strong>m Dependence Loops. Journal of <strong>Parallel</strong><strong>and</strong> Distributed Computing, 42(1):42–59, 1997.J. Xue <strong>and</strong> W.Cai. Time-Minimal Tiling when Rise is Larger than Zero. Journal of <strong>Parallel</strong>Computing, 28(6):915–939, 2002.J. Zigman. Perfectly Nested Loops: Communication <strong>and</strong> Memory Reuse. Master’s <strong>the</strong>sis,Faculty of Engineering <strong>and</strong> In<strong>for</strong>mation Technology, Australian National University, Dec1994.Μ. Αθανασάκη. Παραλληλοποίηση Κώδικα Βρόχων σε Αρχιτεκτονικές µη ΟµοιόµορϕηςΠροσπέλασης Μνήµης (NUMA). PhD <strong>the</strong>sis, Σχολή Ηλεκτρολόγων Μηχανικών και ΜηχανικώνΥπολογιστών, Εθνικό Μετσόβιο Πολυτεχνείο, ∆εκέµβριος 2005.Γ. Γκούµας. Αυτόµατη Παραγωγή Παράλληλου Κώδικα για Μετασχηµατισµούς Υπερκόµβων.PhD <strong>the</strong>sis, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, ΕθνικόΜετσόβιο Πολυτεχνείο, ∆εκέµβριος 2003.


ΒΙΒΛΙΟΓΡΑΦΙΑ 229[Σωτ04]Α. Σωτηρόπουλος. Αποδοτική Αξιοποίηση Σύγχρονων ∆ικτυακών Τεχνολογιών στην ΠαράλληληΕκτέλεση Υπολογισµών σε Συστοιχίες Υπολογιστών Υψηλών Επιδόσεων. PhD<strong>the</strong>sis, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Εθνικό ΜετσόβιοΠολυτεχνείο, Φεβρουάριος 2004.


230 ΒΙΒΛΙΟΓΡΑΦΙΑ


ΕυρετήριοΑανάλυση ευστάθειας Von Neumann, βλ. VonNeumann ανάλυση ευστάθειαςανάπτυγµα Taylor, 43αντιεξάρτηση, βλ. εξάρτηση δεδοµένων τύπουαντίαποστολήeager, 193rendezvous, 194short, 193αρχιτεκτονικήκατανεµηµένης µνήµης, 14κατανεµηµένης µοιραζόµενης µνήµης, 17µοιραζόµενης µνήµης, 16ασϕάλεια νήµατος, 87∆διακριτοποίηση, 43Adams-Bash<strong>for</strong>th, 45backward, 44central, 45Euler-<strong>for</strong>ward, 45<strong>for</strong>ward, 44leap-frog, 46upstream, 44διάνυσµα γραµµικής δροµολόγησης, 76διάσταση εξισορρόπησης, 102δίκτυο διασύνδεσης, 15αρχική καθυστέρηση, 15δυνατότητα παροχής, 15ρυθµός παροχής, 16δοµήMPID Device, 185MPID DevSet, 186MPID Protocol, 184MPIR RHANDLE, 186MPIR SHANDLE, 186Εέλεγχος ροήςµνήµης, 188πακέτων, 187


232 Ευρετήριοεξάρτηση δεδοµένων, 35διάνυσµα, 35πίνακας, 36τύπου αντί-, 36τύπου εξόδου, 36τύπου ροής, 36εξισορρόπηση ϕορτίουδυναµική, 104µεταβλητή, 100σταθερή, 99εξίσωσηδιαϕορών, 43διάχυσης, 41µεταϕοράς, 46επικάλυψη επικοινωνίας-υπολογισµών, 74Κκανάλι CH, 189Λλήψηeager, αναµενόµενη, 210eager, µη αναµενόµενη, 212rendezvous, αναµενόµενη, 214rendezvous, µη αναµενόµενη, 216short, αναµενόµενη, 205short, µη αναµενόµενη, 208ΜµακροεντολήMPID FLOW MEM OK, 189MPID FLOW MEM SEND, 189MPID PACKET ADD RCVD, 188MPID PACKET RCVD GET, 188Μερικές ∆ιαϕορικές Εξισώσειςελλειπτικές, 42παραβολικές, 41υπερβολικές, 41µετασχηµατισµός υπερκόµβων, 54µετροπρόγραµµαADI, 116Adv2D, 118Adv3D, 118DE-TXY, 117DE-XYT, 116Οουράαναµενόµενων µηνυµάτων, 200απροσδόκητων µηνυµάτων, 200Ππερίοδος δειγµατοληψίας, 105πολυνηµατική υποστήριξηfunneled, 87masteronly, 87multiple, 88serialized, 87single, 87πρόβληµααρχικών τιµών, 42συνοριακών τιµών, 42προγραµµατιστικό µοντέλοανταλλαγής µηνυµάτων, 21, 59πολυνηµατικής επεξεργασίας, 22υβριδικό, 24υβριδικό λεπτού κόκκου, 88υβριδικό χονδρού κόκκου, funneled, 91υβριδικό χονδρού κόκκου, multiple, 94Ρ


Ευρετήριο 233ρουτίναMPI Irecv, 201MPI Waitall, 198MPID CH Check incoming, 203MPID CH Eagerb irecv, 210MPID CH Eagerb isend, 193MPID CH Eagerb isend short, 193MPID CH Eagerb recv short, 205MPID CH Eagerb save, 212MPID CH Eagerb save short, 208MPID CH InitMsgPass, 190MPID CH Rndvb irecv, 214MPID CH Rndvb isend, 194MPID CH Rndvb save, 216MPID DeviceCheck, 203MPID IsendContig, 192MPID Search unexpected queue <strong>and</strong> post,202MPID SendComplete, 199MPID WaitForCompleteSend, 195ΣσταθεράMPI Pk ackmark, 187MPI Pk hiwater, 187MPID FLOW BASE THRESH, 189συνθήκη Courant, βλ. Courant, συνθήκησυστοιχία υπολογιστών, 15σχήµα διακριτοποίησηςFTCS, 47Lax, 47staggered leapfrog, 48two-step Lax-Wendroff, 48upwind, 47Ττοπολογία διεργασιών, 63Φϕωλιασµένοι βρόχοι, 31, 32DOACROSS, 3DOALL, 3Χχρονοδροµολόγησησωλήνωσης, 74υπερεπιπέδων, 83χώρος επαναλήψεων, 33AAdams-Bash<strong>for</strong>th διακριτοποίηση, βλ.διακριτοποίηση Adams-Bash<strong>for</strong>thADI συσκευή, 176, 183advective equation, βλ. εξίσωση µεταϕοράςanti-dependence, βλ. εξάρτηση δεδοµένωντύπου αντί-Bbackward διακριτοποίηση, βλ. διακριτοποίησηbackwardBVP,Boundary Value Problem, βλ. πρόβληµασυνοριακών τιµώνCcentral διακριτοποίηση, βλ. διακριτοποίησηcentralCH, βλ. κανάλι CH


234 Ευρετήριοcluster of computers, βλ. συστοιχία υπολογιστώνCourant, συνθήκη, 47, 48Ddependenceanti-, βλ. εξάρτηση δεδοµένων τύπου αντίflow,βλ. εξάρτηση δεδοµένων τύπου ροήςoutput, βλ. εξάρτηση δεδοµένων τύπουεξόδουdiscretization, βλ. διακριτοποίησηDOACROSS ϕωλιασµένοι βρόχοι, βλ.ϕωλιασµένοι βρόχοι DOACROSSDOALL ϕωλιασµένοι βρόχοι, βλ. ϕωλιασµένοιβρόχοι DOALLEeagerαποστολή, βλ. αποστολή eagerλήψη, αναµενόµενη, βλ. λήψη eager,αναµενόµενηλήψη, µη αναµενόµενη, βλ. λήψη eager, µηαναµενόµενηEuler-<strong>for</strong>ward διακριτοποίηση, βλ.διακριτοποίηση Euler-<strong>for</strong>wardFfine-grain υβριδικό µοντέλο, βλ.προγραµµατιστικό µοντέλο υβριδικόλεπτού κόκκου<strong>for</strong>ward διακριτοποίηση, βλ. διακριτοποίηση<strong>for</strong>wardFTCS, Forward Time Centered Space, βλ. σχήµαδιακριτοποίησης FTCSfunneled, βλ. πολυνηµατική υποστήριξηfunneledfunneled coarse-grain υβριδικό µοντέλο, βλ.προγραµµατιστικό µοντέλο υβριδικόχονδρού κόκκου, funneledIinterconnection network, βλ. δίκτυοδιασύνδεσηςIVP,Initial Value Problem, βλ. πρόβληµααρχικών τιµώνLLax, βλ. σχήµα διακριτοποίησης Laxleap-frog διακριτοποίηση, βλ. διακριτοποίησηleap-froglinear scheduling vector, βλ. διάνυσµαγραµµικής δροµολόγησηςMmasteronly, βλ. πολυνηµατική υποστήριξηmasteronlyMPI Irecv, βλ. ρουτίνα MPI IrecvMPI Pk ackmark, βλ. σταθεράMPI Pk ackmarkMPI Pk hiwater, βλ. σταθερά MPI Pk hiwaterMPI Waitall, βλ. ρουτίνα MPI WaitallMPID CH Check incoming, βλ. ρουτίναMPID CH Check incomingMPID CH Eagerb irecv, βλ. ρουτίναMPID CH Eagerb irecvMPID CH Eagerb isend, βλ. ρουτίναMPID CH Eagerb isendMPID CH Eagerb isend short, βλ. ρουτίναMPID CH Eagerb isend shortMPID CH Eagerb recv short, βλ. ρουτίναMPID CH Eagerb recv short


Ευρετήριο 235MPID CH Eagerb save, βλ. ρουτίναMPID WaitForCompleteSend, βλ. ρουτίναMPID CH Eagerb saveMPID WaitForCompleteSendMPID CH Eagerb save short, βλ. ρουτίνα MPIR RHANDLE, βλ. δοµή MPIR RHANDLEMPID CH Eagerb save shortMPIR SHANDLE, βλ. δοµή MPIR SHANDLEMPID CH InitMsgPass, βλ. ρουτίναmultiple, βλ. πολυνηµατική υποστήριξη multipleMPID CH InitMsgPassmultiple coarse-grain υβριδικό µοντέλο, βλ.MPID CH Rndvb irecv, βλ. ρουτίναπρογραµµατιστικό µοντέλο υβριδικόMPID CH Rndvb irecvχονδρού κόκκου, multipleMPID CH Rndvb isend, βλ. ρουτίναMPID CH Rndvb isendNMPID CH Rndvb save, βλ. ρουτίναnested loops, βλ. ϕωλιασµένοι βρόχοιMPID CH Rndvb saveQMPID Device, βλ. δοµή MPID DevicequeueMPID DeviceCheck, βλ. ρουτίναposted receives, βλ. ουρά αναµενόµενωνMPID DeviceCheckµηνυµάτωνMPID DevSet, βλ. δοµή MPID DevSetunexpected receives, βλ. ουράMPID FLOW BASE THRESH, βλ. σταθεράαπροσδόκητων µηνυµάτωνMPID FLOW BASE THRESHMPID FLOW MEM OK, βλ. µακροεντολήRMPID FLOW MEM OKrendezvousMPID FLOW MEM SEND, βλ. µακροεντολήαποστολή, βλ. αποστολή rendezvousMPID FLOW MEM SENDλήψη, αναµενόµενη, βλ. λήψη rendezvous,MPID IsendContig, βλ. ρουτίνααναµενόµενηMPID IsendContigλήψη, µη αναµενόµενη, βλ. λήψηMPID PACKET ADD RCVD, βλ. µακροεντολήrendezvous, µη αναµενόµενηMPID PACKET ADD RCVDround-trip time, 15MPID PACKET RCVD GET, βλ. µακροεντολήMPID PACKET RCVD GETSMPID Protocol, βλ. δοµή MPID Protocol serialized, βλ. πολυνηµατική υποστήριξηMPID Search unexpected queue <strong>and</strong> post, βλ.serializedρουτίναshortMPID Search unexpected queue <strong>and</strong> post αποστολή, βλ. αποστολή shortMPID SendComplete, βλ. ρουτίναλήψη, αναµενόµενη, βλ. λήψη short,MPID SendCompleteαναµενόµενη


236 Ευρετήριοshort (συνέχεια)λήψη, µη αναµενόµενη, βλ. λήψη short, µηαναµενόµενηsingle, βλ. πολυνηµατική υποστήριξη singleSingle Program Multiple Data, 21SPMD, βλ. Single Program Multiple Datastaggered leapfrog, βλ. σχήµα διακριτοποίησηςstaggered leapfrogTTaylor ανάπτυγµα, βλ. ανάπτυγµα Taylorthread-safety, βλ. ασϕάλεια νήµατοςtiling trans<strong>for</strong>mation, βλ. µετασχηµατισµόςυπερκόµβωνtwo-step Lax-Wendroff, βλ. σχήµαδιακριτοποίησης two-stepLax-WendroffUupstream διακριτοποίηση, βλ. διακριτοποίησηupstreamupwind, βλ. σχήµα διακριτοποίησης upwindVVon Neumann ανάλυση ευστάθειας, 46

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!