Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Παραλληλοποίηση κώδικα

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Παραλληλοποίηση κώδικα"— Μεταγράφημα παρουσίασης:

1 Παραλληλοποίηση κώδικα
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011

2 Παράλληλες εφαρμογές Επιστημονικές εφαρμογές, μεγάλες βάσεις δεδομένων, visualization Έμφαση στην επεξεργαστική ισχύ Προβλήματα grand-challenge Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

3 Προβλήματα grand-challenge
Μεγάλες προκλήσεις της πληροφορικής 3-διάστατη οπτικοποίηση σε πραγματικό χρόνο (3-d rendering). Εφαρμογές: εικονική πραγματικότητα, 3-d graphics, τηλεόραση, κινηματογράφος Αναζήτηση σε μεγάλες βάσεις δεδομένων. Πχ. Google: επεξεργαστές, δίσκοι, 1,5 δισεκ. σελίδες Σχεδιασμός μεγάλων οργανικών μορίων. Εφαρμογές: σχεδιασμός φαρμάκων, βιοχημεία Εξομοίωση μεγάλων συστημάτων. Εφαρμογές: κίνηση ουράνιων σωμάτων, μελέτη ωκεάνιων ρευμάτων, πρόγνωση καιρού, αεροδυναμική Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

4 Πρόβλημα προγραμματισμού
Είμαστε συνηθισμένοι/εκπαιδευμένοι σε συγγραφή σειριακού κώδικα Μεγάλος όγκος σειριακού κώδικα προϋπάρχει Στόχος μετατροπή σειριακού κώδικα σε παράλληλο Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

5 Μετατροπή σειριακού κώδικα σε παράλληλο
P1 P2 Αποσύνθεση Ανάθεση Χρονοδιάγραμμα P3 P4 Σειριακός κώδικας Εργασίες Διεργασίες Επεξεργαστές Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

6 Παραλληλοποίηση κώδικα
Αποσύνθεση: κώδικας σε σειριακή μορφή μετατρέπεται σε γράφο εξάρτησης Ανάθεση: οι κόμβοι του γράφου εξάρτησης ομαδοποιούνται σε διεργασίες και αποφασίζουμε σε ποιον επεξεργαστή θα εκτελεστεί κάθε διεργασία Χρονοδρομολόγηση: αποφασίζουμε πότε θα εκτελεστεί κάθε διεργασία. Συχνά συνδυάζεται με την ανάθεση και γίνεται μαζί Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

7 Παράλληλοι μεταφραστές
Παράλληλη Fortran, παράλληλη C, C++ Πλήρης αυτοματοποίηση δύσκολη ιδίως στο επίπεδο αποσύνθεσης σειριακού κώδικα σε εργασίες. Βέλτιστη ομαδοποίηση σε διεργασίες επίσης δύσκολη και με πολλές ελεύθερες ή άγνωστες παραμέτρους Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

8 Αποσύνθεση κώδικα for (i=1 to 6) { /* Φάση 1 */ y[i] = f(x[i]); }
sum = 0; for (i=1 to 6) { /*Φάση 2*/ sum = sum + y[i]; y[1] = f(x[1]); y[2] = f(x[2]); ... y[6] = f(x[6]); sum = sum + y[1]; sum = sum + y[2]; sum = sum + y[6]; Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

9 Αποσύνθεση παράδειγμα
Αυτόματη αποσύνθεση x[1] x[2] x[3] x[4] x[5] x[6] Φάση 1 f f f f f f y[1] y[2] y[3] y[4] y[5] y[6] Φάση 2 + + + + + + sum Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

10 Αποσύνθεση παράδειγμα (2)
Βέλτιστη αποσύνθεση x[1] x[2] x[3] x[4] x[5] x[6] sum1=y[1]+y[2]; sum2=y[3]+y[4]; sum3=y[5]+y[6]; sum4=sum1+sum2; sum=sum3+sum4; Φάση 1 f f f f f f y[2] y[4] y[6] y[1] y[3] y[5] Φάση 2 + + + sum2 sum3 sum1 + + sum4 sum Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

11 Αποσύνθεση συμπεράσματα
Η απλή μηχανική αποσύνθεση σε ΓΕ σχετικά απλή. Η βελτιστοποίηση του κώδικα ίσως απαιτεί την τροποποίηση του σειριακού κώδικα. Βελτιστοποίηση δύσκολη Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

12 Ανάθεση εργασιών σε διεργασίες
Ανάθεση = ομαδοποίηση εργασιών σε ομάδες (διεργασίες). Κάθε διεργασία εκτελείται σε ένα επεξεργαστή. Στόχοι ανάθεσης Ίσο μοίρασμα φόρτου εργασίας Ελαχιστοποίηση επικοινωνίας Μείωση του χρόνου ανάθεσης Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

13 Εξισορρόπηση φόρτου εργασίας
Εξισορρόπηση χρήσης CPU Εξισορρόπηση χρήσης μνήμης Εξισορρόπηση χρήσης I/O Εξισορρόπηση επικοινωνίας Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

14 Παράλληλος χρόνος εκτέλεσης
Κακή ανάθεση Φ.Ε. Σειριακός χρόνος εκτέλεσης Τσειρ = 30 Τ1 = 3 Επιτάχυνση = 30/25 = 1,2 Α Τ2 = 2 Β Τ3 = 25 Γ Παράλληλος χρόνος εκτέλεσης Τπαρ = Τ3 = 25 Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

15 Βέλτιστη εξισορρόπηση Φ.Ε.
Σειριακός χρόνος εκτέλεσης Τσειρ = 30 Τ1 = 10 Επιτάχυνση = 30/10 = 3 Α Τ2 = 10 Β Τ3 = 10 Γ Τπαρ = Τ1 = Τ2 = Τ3 = 10 Παράλληλος χρόνος εκτέλεσης Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

16 Προβλήματα εξισορρόπησης Φ.Ε.
Πώς εκτιμάμε το φόρτο εργασίας? Εκ των προτέρων εκτίμηση (compile-time). Πλεονέκτημα: στατικός αλγόριθμος ανάθεσης. Μειονέκτημα: αγνοεί τις πραγματικές συνθήκες εκτέλεσης, πχ. cache-miss, network-traffic, κλπ Εν θερμώ εκτίμηση (run-time). Πλεονέκτημα: δυνατότητα βέλτιστης διαχείρισης. Μειονέκτημα: δυναμική αναπροσαρμογή της ανάθεσης Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

17 Ελαχιστοποίηση επικοινωνίας
Προσπάθεια διατήρησης στην ίδια ομάδα εκείνων των εργασιών που ανταλλάσουν δεδομένα Ίδια ομάδα = ίδια διεργασία Όλες οι εργασίες μιας διεργασίας εκτελούνται στον ίδιο επεξεργαστή = ελαχιστοποίηση επικοινωνίας Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

18 Ελαχιστοποίηση επικοινωνίας (2)
Κακή ανάθεση Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

19 Ελαχιστοποίηση επικοινωνίας (3)
Καλή ανάθεση Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

20 Μείωση χρόνου ανάθεσης
Επιλογές διαδικασίας ανάθεσης: Στατική ανάθεση Ημι-στατική ανάθεση Δυναμική ανάθεση Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

21 Στατική ανάθεση Γίνεται την ώρα της μετάφρασης (compile-time)
Γρήγοροι ευρηστικοί αλγόριθμοι Δεν απασχολείται κάποιος διαχειριστής- επεξεργαστής την ώρα της εκτέλεσης Πρόβλημα: αγνοεί τις πραγματικές συνθήκες εκτέλεσης του παράλληλου προγράμματος. Με αυτή την έννοια, όχι βέλτιστη ανάθεση Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

22 Ημιστατική ανάθεση Αρχικά, στατική ανάθεση
Κατόπιν, κατά τακτά χρονικά διαστήματα η ανάθεση τροποποιείται λαμβάνοντας υπ’ όψη τις συνθήκες εκτέλεσης σε κάθε επεξεργαστή μέχρι τώρα. Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

23 Δυναμική ανάθεση Οι εργασίες ομαδοποιούνται σε διεργασίες καθώς το πρόγραμμα εκτελείται. Δεν έχει προαποφασιστεί σε ποιον επεξεργαστή θα εκτελεστεί κάθε διεργασία Ουρές εργασιών Μια κοινή (κεντρική) ουρά Πολλές κατανεμημένες ουρές Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

24 Δυναμική ανάθεση: Μια κεντρική ουρά
T4 T3 ουρά T2 T1 PU1 PU2 PUΝ Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

25 Δυναμική ανάθεση: Πολλές κατανεμημένες ουρές
T9 T8 T6 T10 ουρά 1 ουρά 2 ουρά N T5 T3 T7 T1 T2 T4 PU1 PU2 PUΝ Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

26 Χρονοδρομολόγηση (scheduling)
Χρονοδιάγραμμα (schedule) : Πότε θα εκτελεστεί η εργασία T? Σε ποιο επεξεργαστή? Χρονοδρομολογητής (scheduler): πρόγραμμα διαχειριστής του χρονοδιαγράμματος Συχνά η χρονοδρομολόγηση γίνεται σε συνδυασμό με την ανάθεση Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

27 Χρονοδρομολόγηση (2) Ως προς τον αλγόριθμο:
Ντετερμινιστική χ/δ: υποθέτουμε ότι ο χρόνος εκτέλεσης των εργασιών είναι σταθερός και δεδομένος Μη ντετερμινιστική χ/δ: υποθέτουμε ότι ο χρόνος εκτέλεσης των εργασιών είναι τυχαίος σύμφωνα με κάποια κατανομή Ως προς την ανάθεση εργασιών σε επεξεργαστές: στατική χ/δ: απόφαση σε compile-time δυναμική χ/δ: απόφαση σε run-time Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

28 Ντετερμινιστική χ/δ Ντετερμινιστική χ/δ = η πιο απλή περίπτωση. Μακριά από την πραγματικότητα Δύο είδη ανάλογα με το μοντέλο επικοινωνίας μηδενικός χρόνος επικοινωνίας μη-μηδενικός αλλά σταθερός χρόνος επικοινωνίας Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

29 Ντετερμινιστική χ/δ - μηδενικό κόστος επικοινωνίας
Παράδειγμα: Τ1 10 Τ2 Τ3 Τ4 20 30 40 Τ5 10 Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

30 Ντετερμινιστική χ/δ - μηδενικό κόστος επικοινωνίας (2)
Χρονοδιάγραμμα 1, t = 90 3 επεξεργαστές PU1 T1 T5 PU2 T4 T3 PU3 T2 10 20 30 40 50 60 70 80 90 100 Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

31 Ντετερμινιστική χ/δ - μηδενικό κόστος επικοινωνίας (3)
Χρονοδιάγραμμα 2, t = 70 3 επεξεργαστές PU1 T1 T5 PU2 T2 T3 PU3 T4 10 20 30 40 50 60 70 80 Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

32 Ντετερμινιστική χ/δ - μηδενικό κόστος επικοινωνίας (4)
Χρονοδιάγραμμα 3, t = 60 3 επεξεργαστές PU1 T1 T3 T5 PU2 T2 PU3 T4 10 20 30 40 50 60 70 80 Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

33 Βέλτιστο χρονοδιάγραμμα
Η βέλτιστη λύση δύσκολη σε γενικές γραμμές. Εκθετικά αυξανόμενος αριθμός πιθανών σεναρίων. Πρόβλημα NP-complete Χρήση ευρηστικών αλγορίθμων Βέλτιστες λύσεις σε ειδικές περιπτώσεις Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

34 Ειδική περίπτωση 1: Δάσος εισόδου (εξόδου)
Ορισμός: Δάσος εισόδου (εξόδου) καλείται ένας γράφος όπου κάθε κόμβος έχει μόνο μια ακμή εξόδου (εισόδου) Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

35 Χ/δ: δάσος εισόδου Υπάρχει η έννοια των επιπέδων
Προτεραιότητα με βάση το επίπεδο Αναθέτουμε πρώτα τις εργασίες με τη μεγαλύτερη προτεραιότητα στον πρώτο διαθέσιμο επεξεργαστή. Σεβόμαστε τις ακμές εξάρτησης Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

36 Χ/δ: δάσος εισόδου (2) Παράδειγμα Α Β Γ επίπεδο 4 Δ Ε Ζ επίπεδο 3 Η Θ
PU1 Α4 Β4 Δ3 Θ2 Ι1 PU2 Γ4 Ε3 Ζ3 Η2 Δ Ε Ζ επίπεδο 3 2 2 PU1 Α4 Δ3 Θ2 Ι1 PU2 Β4 Ε3 Η2 PU3 Γ4 Ζ3 Η Θ επίπεδο 2 1 επίπεδο 1 Ι Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

37 Ειδική περίπτωση 2: Δύο επεξεργαστές
Παράδειγμα Α Β Γ Βήμα 1: δίνουμε αυθαίρετα προτεραιότητα 1, 2 στα φύλλα Ι, Κ (κόμβους χωρίς παιδιά) Δ Ε Ζ Η Θ 1 2 Ι Κ Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

38 Ειδική περίπτωση 2: Δύο επεξεργαστές (2)
Α Β Γ Βάφουμε γκρι τα φύλλα που μόλις πήραν προτεραιότητα Δ Ε Ζ Βήμα 2: δίνουμε προτεραιότητα σε όλους τους κόμβους (Η,Θ) που έχουν όλα τα παιδιά τους γκρι 3 4 Η Θ 1 2 Ι Κ Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

39 Ειδική περίπτωση 2: Δύο επεξεργαστές (3)
Α Β Γ Βάφουμε γκρι τα φύλλα που μόλις πήραν προτεραιότητα 5 7 6 Δ Ε Ζ Βήμα 2: δίνουμε προτεραιότητα σε όλους τους κόμβους (Δ,Ε,Ζ) που έχουν όλα τα παιδιά τους γκρι 3 4 Η Θ 1 2 Ι Κ Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

40 Ειδική περίπτωση 2: Δύο επεξεργαστές (4)
8 9 10 Α Β Γ Βάφουμε γκρι τα φύλλα που μόλις πήραν προτεραιότητα 5 7 6 Δ Ε Ζ Βήμα 2: δίνουμε προτεραιότητα σε όλους τους κόμβους (Α,Β,Γ) που έχουν όλα τα παιδιά τους γκρι 3 4 Η Θ 1 2 Ι Κ Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα

41 Ειδική περίπτωση 2: Δύο επεξεργαστές (5)
8 9 10 Βήμα 3: Αναθέτουμε εργασίες στους δύο επεξεργαστές με σειρά προτεραιότητας Α Β Γ 5 7 6 Δ Ε Ζ PU1 Γ10 Α8 Ζ6 Θ4 Κ2 PU2 Β9 Ε7 Δ5 Η3 Ι1 3 4 Η Θ 1 2 Ι Κ Κ. Διαμαντάρας Προηγμένες Αρχιτεκτονικές Η/Υ και Παράλληλα Συστήματα


Κατέβασμα ppt "Παραλληλοποίηση κώδικα"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google