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
- Page 1: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟ
- Page 4 and 5: ................................Ν
- Page 7: ΠερίληψηΗ Παράλληλ
- Page 11 and 12: ΠεριεχόµεναΠερίλη
- Page 13 and 14: ΠΕΡΙΕΧΟΜΕΝΑxi5.2 Εξι
- Page 15 and 16: Κατάλογος Σχηµάτων
- Page 17 and 18: ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ
- Page 19 and 20: ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ
- Page 21: ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ
- Page 24 and 25: xxiiΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩ
- Page 27 and 28: ΠρόλογοςΗ εργασία
- Page 29 and 30: ΚΕΦΑΛΑΙΟ 1Εισαγωγή
- Page 31 and 32: 1.2 Επισκόπηση Σχετι
- Page 33 and 34: 1.2 Επισκόπηση Σχετι
- Page 35 and 36: 1.3 Συµβολή της ∆ιατ
- Page 37 and 38: 1.4 Οργάνωση της ∆ια
- Page 39 and 40: DOI: DOI: 1.5 ∆ηµοσιευµέ
- Page 41 and 42: ΚΕΦΑΛΑΙΟ 2Παράλληλ
- Page 43 and 44: π2.1 Αρχιτεκτονικές
- Page 45 and 46: 2.1 Αρχιτεκτονικές Π
- Page 47 and 48: 2.2 Μοντέλα Παράλληλ
- Page 49 and 50: 2.2 Μοντέλα Παράλληλ
- Page 51 and 52: 2.2 Μοντέλα Παράλληλ
- Page 53 and 54: 2.2 Μοντέλα Παράλληλ
- Page 55 and 56: 2.2 Μοντέλα Παράλληλ
- Page 57 and 58: 2.2 Μοντέλα Παράλληλ
- Page 59 and 60:
ΚΕΦΑΛΑΙΟ 3Αλγοριθµ
- Page 61 and 62:
3.1 Αλγοριθµικό Μοντ
- Page 63 and 64:
3.1 Αλγοριθµικό Μοντ
- Page 65 and 66:
3.2 Βασικές Παραδοχέ
- Page 67 and 68:
3.2 Βασικές Παραδοχέ
- Page 69 and 70:
3.3 Παράδειγµα: Μερι
- Page 71 and 72:
3.3 Παράδειγµα: Μερι
- Page 73 and 74:
3.3 Παράδειγµα: Μερι
- Page 75 and 76:
3.3 Παράδειγµα: Μερι
- Page 77 and 78:
3.3 Παράδειγµα: Μερι
- Page 79 and 80:
3.3 Παράδειγµα: Μερι
- Page 81 and 82:
ΚΕΦΑΛΑΙΟ 4Παράλληλ
- Page 83 and 84:
4.1 Μετασχηµατισµός
- Page 85 and 86:
4.1 Μετασχηµατισµός
- Page 87 and 88:
4.1 Μετασχηµατισµός
- Page 89 and 90:
4.1 Μετασχηµατισµός
- Page 91 and 92:
4.2 Απεικόνιση σε ∆ι
- Page 93 and 94:
4.2 Απεικόνιση σε ∆ι
- Page 95 and 96:
4.2 Απεικόνιση σε ∆ι
- Page 97 and 98:
4.2 Απεικόνιση σε ∆ι
- Page 99 and 100:
4.3 Προσδιορισµός Το
- Page 101 and 102:
4.4 Ισοδύναµα: Προσδ
- Page 103 and 104:
4.5 Χρονοδροµολόγησ
- Page 105 and 106:
4.5 Χρονοδροµολόγησ
- Page 107 and 108:
ΚΕΦΑΛΑΙΟ 5Υβριδικό
- Page 109 and 110:
5.1 Υβριδικό Μοντέλο
- Page 111 and 112:
5.1 Υβριδικό Μοντέλο
- Page 113 and 114:
5.1 Υβριδικό Μοντέλο
- Page 115 and 116:
5.1 Υβριδικό Μοντέλο
- Page 117 and 118:
5.1 Υβριδικό Μοντέλο
- Page 119 and 120:
5.1 Υβριδικό Μοντέλο
- Page 121 and 122:
LLL5.1 Υβριδικό Μοντέ
- Page 123 and 124:
LL5.1 Υβριδικό Μοντέλ
- Page 125 and 126:
LL5.2 Εξισορρόπηση Φο
- Page 127 and 128:
5.2 Εξισορρόπηση Φορ
- Page 129 and 130:
5.2 Εξισορρόπηση Φορ
- Page 131 and 132:
5.2 Εξισορρόπηση Φορ
- Page 133 and 134:
5.2 Εξισορρόπηση Φορ
- Page 135 and 136:
5.2 Εξισορρόπηση Φορ
- Page 137 and 138:
5.3 Σύγκριση Μοντέλο
- Page 139 and 140:
5.3 Σύγκριση Μοντέλο
- Page 141 and 142:
5.3 Σύγκριση Μοντέλο
- Page 143 and 144:
ΚΕΦΑΛΑΙΟ 6Πειραµατ
- Page 145 and 146:
6.1 Μετροπρογράµµατ
- Page 147 and 148:
6.1 Μετροπρογράµµατ
- Page 149 and 150:
6.3 Τοπολογία ∆ιεργ
- Page 151 and 152:
6.3 Τοπολογία ∆ιεργ
- Page 153 and 154:
6.3 Τοπολογία ∆ιεργ
- Page 155 and 156:
6.3 Τοπολογία ∆ιεργ
- Page 157 and 158:
6.3 Τοπολογία ∆ιεργ
- Page 159 and 160:
6.3 Τοπολογία ∆ιεργ
- Page 161 and 162:
6.3 Τοπολογία ∆ιεργ
- Page 163 and 164:
6.3 Τοπολογία ∆ιεργ
- Page 165 and 166:
6.3 Τοπολογία ∆ιεργ
- Page 167 and 168:
6.4 Εξισορρόπηση Φορ
- Page 169 and 170:
6.4 Εξισορρόπηση Φορ
- Page 171 and 172:
6.4 Εξισορρόπηση Φορ
- Page 173 and 174:
6.4 Εξισορρόπηση Φορ
- Page 175 and 176:
6.4 Εξισορρόπηση Φορ
- Page 177 and 178:
6.4 Εξισορρόπηση Φορ
- Page 179 and 180:
6.4 Εξισορρόπηση Φορ
- Page 181 and 182:
L6.4 Εξισορρόπηση Φο
- Page 183 and 184:
6.4 Εξισορρόπηση Φορ
- Page 185 and 186:
6.5 Γενική Αξιολόγησ
- Page 187 and 188:
6.5 Γενική Αξιολόγησ
- Page 189 and 190:
6.5 Γενική Αξιολόγησ
- Page 191 and 192:
6.5 Γενική Αξιολόγησ
- Page 193 and 194:
6.6 Συµβολή της ∆ιατ
- Page 195 and 196:
6.6 Συµβολή της ∆ιατ
- Page 197 and 198:
ΚΕΦΑΛΑΙΟ 7Συµπεράσ
- Page 199 and 200:
L171κόστη υπολογισµο
- Page 201 and 202:
• Οµοίως, η διασϕάλ
- Page 203 and 204:
ΠΑΡΑΡΤΗΜΑ ΑΤο Πρότ
- Page 205 and 206:
L177•¦©¦§kkkC;:M+:M¡"@£¨!L
- Page 207 and 208:
ΠΑΡΑΡΤΗΜΑ ΒΤο Πρότ
- Page 209 and 210:
181τρόπο), ¥§¦M¡§N¢¥ (
- Page 211 and 212:
ΠΑΡΑΡΤΗΜΑ ΓΣχεδίασ
- Page 213 and 214:
LLLLRRRRLRRRRRRRRPLLPLPLPLPLPLPLPLP
- Page 215 and 216:
LLLRRRPLPLPLPLPLRRRRRvvvvvΓ.2 Έλ
- Page 217 and 218:
ενώ στο αρχείο mpid/ch2
- Page 219 and 220:
ŽN¡¤© Ž¢¡0LLŽN¡¤£¦£NhO
- Page 221 and 222:
L©U©¦¤N©¦©¦$u¡¤siN¦¦$u$
- Page 223 and 224:
LkLLL©U©¦¤N©¦©¦$u¡¤siN¦
- Page 225 and 226:
¥¥LLLΓ.4 Ασύγχρονη Απ
- Page 227 and 228:
ƒƒνωνίας στην οποί
- Page 229 and 230:
L££££££L£RvΓ.6 Λήψη 201
- Page 231 and 232:
LLLLLLƒyP=¡¥u§$¥§¦¡¤£££
- Page 233 and 234:
©¥…w¥¤km¡¤¦¢ŽN¡¤© Ž
- Page 235 and 236:
LƒLLLLRLLRwRRRvRvRvRvRR{{LLΓ.6 Λ
- Page 237 and 238:
Γ.6 Λήψη 209η LFτου handle
- Page 239 and 240:
LΓ.6 Λήψη 211να επισηµ
- Page 241 and 242:
eLΓ.6 Λήψη 213∆ιεργασ
- Page 243 and 244:
Γ.6 Λήψη 215∆ιεργασί
- Page 245 and 246:
£££iLλήψης στην ουρ
- Page 247 and 248:
Βιβλιογραϕία[ABRY03][AC
- Page 249 and 250:
ΒΙΒΛΙΟΓΡΑΦΙΑ 221[CM95][
- Page 251 and 252:
ΒΙΒΛΙΟΓΡΑΦΙΑ 223[HCF97]
- Page 253 and 254:
ΒΙΒΛΙΟΓΡΑΦΙΑ 225[KM92][
- Page 255 and 256:
ΒΙΒΛΙΟΓΡΑΦΙΑ 227[RW03][
- Page 257 and 258:
ΒΙΒΛΙΟΓΡΑΦΙΑ 229[Σωτ
- Page 259 and 260:
ΕυρετήριοΑανάλυση
- Page 261 and 262:
Ευρετήριο 233ρουτίν
- Page 263 and 264:
Ευρετήριο 235MPID CH Eager