Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]



Σχετικά έγγραφα
ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Πληροφορική 2. Αλγόριθμοι

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

for for for for( . */

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας

Ψευδοκώδικας. November 7, 2011

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Πληροφορική 2. Δομές δεδομένων και αρχείων

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Τ και τιµή του Β θετική µετατρέπεται ισοδύναµα στην εντολή Όσο ως εξής:

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

3.1 Η ΕΝΝΟΙΑ ΤΗΣ ΓΡΑΜΜΙΚΗΣ ΕΞΙΣΩΣΗΣ

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

πίνακας σελίδων Bit Παρουσίας Αριθμός Πλαισίου

ε = 5 / 4. Αν η τιµή του αγαθού αυξηθεί κατά 10% ποια ποσοστιαία µεταβολή της

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 Ο

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

9. Συστολικές Συστοιχίες Επεξεργαστών

ΟΤΑ Επιχειρησιακή Νοηµοσύνη

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Απαντήσεις. Απάντηση. Απάντηση

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ

Οι εντολές ελέγχου της ροής ενός προγράμματος.

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 2. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

Υπολογιστικό Πρόβληµα

Ονοματεπώνυμο: Ερώτημα: Σύνολο Μονάδες: Βαθμός:

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2

ΘΕΜΑ 1ο Α. 1. Να αναφέρετε τα κριτήρια που πρέπει να ικανοποιεί κάθε αλγόριθµος.

Μετρικές & Επιδόσεις. Κεφάλαιο V

2.4 ΚΛΑΣΜΑΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Παρατηρήσεις για την δομή Όσο..επανάλαβε( ΣΟΣ)

Μηχανική ΙI. Μετασχηµατισµοί Legendre. της : (η γραφική της παράσταση δίνεται στο ακόλουθο σχήµα). Εάν

Ορισµός. (neighboring) καταστάσεων. ηλαδή στην περίπτωση αλυσίδας Markov. 1.2 ιαµόρφωση µοντέλου

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΘΕΜΑ 1 ο. Στήλη Β Προτάσεις. β. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής. όταν η συνθήκη είναι ψευδής.

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: Τρίτη 4/11/2014, 22:00

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ

Κατανεμημένα Συστήματα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΠΡΑΞΕΙΣ ΜΕ ΕΚΑ ΙΚΟΥΣ

Κεφάλαιο 9 ο Κ 5, 4 4, 5 0, 0 0,0 5, 4 4, 5. Όπως βλέπουµε το παίγνιο δεν έχει καµιά ισορροπία κατά Nash σε αµιγείς στρατηγικές διότι: (ΙΙ) Α Κ

Search and Replication in Unstructured Peer-to-Peer Networks

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

Γυµ.Ν.Λαµψάκου Α Γυµνασίου Γεωµ.Β2.6 γωνίες από 2 παράλληλες + τέµνουσα 19/3/10 Φύλλο εργασίας

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

Λύση: Λύση: Λύση: Λύση:

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y»

Γ ΤΑΞΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ÑÏÌÂÏÓ

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Υπολογισµός διπλών ολοκληρωµάτων µε διαδοχική ολοκλήρωση

HY-486 Αρχές Κατανεμημένου Υπολογισμού

H ΓΛΩΣΣΑ C. Μάθηµα 7: Πίνακες. ηµήτρης Ψούνης

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2012 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

ΟΤΑ Επιχειρησιακή Νοηµοσύνη. Ενότητα: Bc1.1.6 Παρακολούθηση (monitoring) εκτέλεσης Επιχειρησιακών Διαδικασιών και εξαγωγή «µετρήσιµων» (metrics)

Λύσεις για τις ασκήσεις του lab5

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2012 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

Όρια συναρτήσεων. ε > υπάρχει ( ) { } = ± ορίζονται αναλόγως. Η διατύπωση αυτών των ορισµών αφήνεται ως άσκηση. x y = +. = και για κάθε (, ) ( 0,0)

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Εμπειρική αποτίμηση παράλληλων προγραμμάτων

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

Κεφάλαιο 8: Προγραμματίζοντας αλγορίθμους έξυπνα και δημιουργικά

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

Transcript:

Α. Στο παρακάτω διάγραµµα εµφανίζεται η εκτέλεση ενός παράλληλου αλγόριθµου που λύνει το ίδιο πρόβληµα µε έναν ακολουθιακό αλγόριθµο χωρίς πλεονασµό. Τα Α i και B i αντιστοιχούν σε ακολουθιακά υποέργα του επιπέδου i ενώ οι ακµές µεταξύ τους αντιστοιχούν σε εξαρτήσεις µεταξύ των διαφόρων υποέργων. Τα υποέργα Α i απαιτούν µία (1) χρονική µονάδα για να εκτελεστούν, ενώ τα υποέργα B i απαιτούν δύο () χρονικές µονάδες για να εκτελεστούν. Α 0 Β 0 Β 0 Α 1 Β 1 Α 1 Α Β Β Β 3 Α 3 Β 3 Α 4 Α 4 Α 0 Α I. Εκτελούµε τον αλγόριθµο αυτό σε ένα παράλληλο σύστηµα µε 4 επεξεργαστές µε τον ακόλουθο τρόπο: Τα υποέργα του επιπέδου i αρχίζουν να εκτελούνται µόνο εφόσον έχει ολοκληρωθεί η εκτέλεση όλων των υποέργων του προηγούµενου επιπέδου i- 1. Αγνοώντας τους χρόνους επικοινωνίας µεταξύ των επεξεργαστών, συµπληρώστε τις παρακάτω τιµές: Ακολουθιακός χρόνος εκτέλεσης : 5 Παράλληλος χρόνος εκτέλεσης : 11 Χρονοβελτίωση : 5/11 Αποδοτικότητα : 5/(11*4) Αξιοποίηση : 5/44 Β 5 Λύση Αν τον αλγόριθµο που απεικονίζεται στο σχήµα τον εκτελέσουµε σε µηχανή µε έναν επεξεργαστή, κάθε φορά θα εκτελείται και από ένα υποέργο Α i ή B i µέχρι να ολοκληρωθεί η εκτέλεση όλων των υποέργων, και του B 5. ηλαδή, για να υπολογίσω τον ακολουθιακό χρόνο εκτέλεσης πρέπει να αθροίσω όλους τους επιµέρους χρόνους των υποέργων, αφού δεν υπάρχουν επιβαρύνσεις. Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 5[χρονικές µονάδες] Υπάρχουν όµως εξαρτήσεις µεταξύ των υποέργων που βρίσκονται σε διαφορετικά επίπεδα, αυτό εξάλλου καθορίζει, δηλαδή οι εξαρτήσεις, και τα διαφορετικά επίπεδα του αλγόριθµου όπως απεικονίζονται στο παραπάνω σχήµα. Αρά όταν έχουµε περισσότερους του ενός επεξεργαστές θα µπορεί ναι µεν να εκτελούν ταυτόχρονα διαφορετικά υποέργα αλλά θα πρέπει να έχουν ικανοποιηθεί η εξαρτήσεις του υπο-εκτέλεση έργου πριν αναλάβει κάποιος επεξεργαστής την εκτέλεση του. ηλαδή, αν εκτελέσω τον παραπάνω αλγόριθµο σε µηχανή µε P=4 επεξεργαστές, θα µπορεί να εκτελούνται τα έργα σε κάθε επίπεδο ταυτόχρονα (παράλληλα) από τους επεξεργαστές του συστήµατος. Θα πρέπει όµως, λόγω των εξαρτήσεων, να τελειώνει η εκτέλεση του πιο

χρονοβόρου υποέργου στο επίπεδο που εξελίσσεται η εκτέλεση, πριν αρχίσει η εκτέλεση άλλου υποέργου σε διαφορετικό επίπεδο. Η παραπάνω εξήγηση, για να διευκολυνθούµε, απεικονίζεται στο ακόλουθο σχήµα. T P 1 A 0 A 1 A B 3 B 3 A 4 B 5 B 5 P B 0 B 0 B 1 B 1 B B A 3 A 4 P 3 B 0 B 0 A 1 B B B 3 B 3 P 4 A 0 A Κάθε θέση του πίνακα αντιστοιχεί σε µία χρονική µονάδα. Όταν εκτελείται έργο Α i χρεώνουµε µία χρονική µονάδα ενώ όταν εκτελείται έργο Β i χρεώνουµε δύο χρονικές µονάδες. Σε κάθε επίπεδο θα πρέπει να ολοκληρώνεται το πιο χρονοβόρο έργο πριν αρχίσει η εκτέλεση υποέργου στο επόµενο επίπεδο. Άρα, όσοι επεξεργαστές στο επίπεδο (i) εκτέλεσαν έργο Α i θα περιµένουν άεργοι, για µία χρονική µονάδα, µέχρι να ολοκληρωθεί η εκτέλεση όλων των υποέργων Β i.έτσι προκύπτει ο πιο πάνω πίνακας. Βλέπουµε λοιπόν ότι αν εκτελέσουµε τον αλγόριθµό µας σε µηχανή µε τέσσερις επεξεργαστές, θα υπάρχουν χρονικές στιγµές που εκτελούν όλοι οι επεξεργαστές, υπάρχουν όµως και στιγµές που εκτελούν ένας, δύο ή τρεις επεξεργαστές ενώ οι υπόλοιποι, λόγω των εξαρτήσεων όπως εξηγήσαµε πιο πάνω, είναι άεργοι. Άρα, ο παράλληλος χρόνος είναι ο χρόνος που χρειάστηκε η παράλληλη (P=4) µηχανή µας να εκτελέσει τον παράλληλο αλγόριθµο µέχρι και το τελευταίο του υποέργο, ανεξάρτητα αν όλοι οι επεξεργαστές εκτελούσαν καθ όλη τη διάρκεια εκτέλεσης του αλγορίθµου. Άρα, Τ par = 11 [χρονικές µονάδες], Χρονοβελτίωση (speedup), S=Τ ser /Τ par = 5/11 Αποδοτικότητα = S/ P= (Τ ser /Τ par )/P= Τ ser /P*Τ par =5/(4*11) Αξιοποίηση είναι το δαπανούµενο έργο των επεξεργαστών στη διάρκεια του χρόνου προς το ωφέλιµο έργο στην ίδια χρονική διάρκεια. Αυτό εύκολα βγαίνει από τον πίνακα υπολογίζοντας τις χρονικές στιγµές που πραγµατικά εκτελούν οι επεξεργαστές προς το συνολικό χρόνο που διαθέσαµε το σύστηµα στην εκτέλεση του συγκεκριµένου αλγορίθµου. Αν δηλαδή µετρήσω όλα τα κουτάκια του πίνακα, όπου δηλαδή υπάρχει Α ή Β (5), προς το σύνολο των χρονικών στιγµών για όλους τους επεξεργαστές (4*11=44). Αξιοποίηση = 5/44

Β. Το δυαδικό δέντρο που φαίνεται στο σχήµα, αναπαριστά την παράλληλη έκδοση ενός αλγορίθµου του οποίου η αντίστοιχη ακολουθιακή έκδοση χρειάζεται 380msec για να ολοκληρωθεί. Τα βάρη που φαίνονται στους κόµβους και στις ακµές του δέντρου δηλώνουν υπολογισµό (computation) και επικοινωνία (communication) αντίστοιχα, σε msec. Θεωρώντας ότι έχουµε στη διάθεση µας πολυεπεξεργαστική µηχανή κατανεµηµένης µνήµης µε τέσσερις επεξεργαστές. Ζητούνται να υπολογιστούν: α) ο παράλληλος χρόνος εκτέλεσης του αλγορίθµου. β) η χρονοβελτίωση. γ) η αποδοτικότητα. δ) η αξιοποίηση. Θεωρείστε επίσης ότι δεν υπάρχουν επιβαρύνσεις άλλες εκτός τη επικοινωνίας, που όπως φαίνεται στο σχήµα είναι πάντα msec. Λύση Στην άσκηση αυτή έχουµε πάλι να εκτελέσουµε ένα παράλληλο αλγόριθµο για τον οποίο µας δίνονται: τα υποέργα, οι εξαρτήσεις τους, οι επιβαρύνσεις λόγω τις επικοινωνίας και η αρχιτεκτονική της παράλληλης µηχανής. Ζητάµε να υπολογίσουµε τα ίδια µεγέθη όπως και στην προηγούµενη άσκηση. Για να διευκολυνθούµε φτιάχνουµε ένα πίνακα µε πέντε σειρές και πολλές στήλες, περισσότερες από 40, γιατί αν διατρέξουµε τον κλάδο του δέντρου µε τα µεγαλύτερα βάρη (χρόνοι εκτέλεσης των υποέργων) θα δούµε ότι ο κλάδος µε χρόνο 40, είναι ο αριστερός (υπολογίζοντας του ωφέλιµους χρόνους επεξεργασίας αλλά και τις επιβαρύνσεις). Άρα είναι πιθανό να έχουµε εκτέλεση για τουλάχιστον 40 χρονικές µονάδες. Στην αρχή της πρώτης στήλης του πίνακα βάζουµε Τ για την καταγραφή των χρονικών στιγµών που θα εκτελεί η µηχανή µας. Στη δεύτερη θέση της πρώτης στήλης βάζουµε P1, για να σηµειώνουµε τις χρονικές στιγµές που ο P1 θα εκτελεί. Αντίστοιχα στη τρίτη θέση P κ.ο.κ.. Στη συνέχεια αριθµούµε τους κόµβους του δένδρου (τα υποέργα) όπως φαίνεται στο επόµενο σχήµα µε τους µεγάλους, έντονους αριθµούς. Οι αριθµοί αυτοί δηλώνουν τη σειρά µε την οποία θα εκτελεστούν τα υποέργα από τους επεξεργαστές του συστήµατος µας στη διάρκεια του χρόνου.

10 4 10 6 4 6 4 10 6 4 10 6 4 10 10 Αρχίζει η εκτέλεση του παράλληλου αλγορίθµου. Ο πρώτος επεξεργαστής P1 αρχίζει να εκτελεί το πρώτο υποέργο (1) που βρίσκεται στη κορυφή του δένδρου. Το υποέργο αυτό χρειάζεται δέκα msec για να ολοκληρωθεί. Κατά τη διάρκεια εκτέλεσης του πρώτου υποέργου οι υπόλοιποι τρεις επεξεργαστές του συστήµατος µας παραµένουν ανενεργοί. Στον πίνακα που έχουµε ετοιµάσει καταγράφουµε στη σειρά που αντιστοιχεί στον επεξεργαστή P1, τον αριθµό που αντιστοιχεί στο πρώτο υποέργο (1) δέκα φορές υποδηλώνοντας τις δέκα χρονικές στιγµές που απαιτεί η εκτέλεση του πρώτου υποέργου. Στη συνέχεια ο επεξεργαστής P1 προωθεί τα αποτελέσµατά του στους επεξεργαστές που θα εκτελέσουν τα επόµενα υποέργα () και (3). Η προώθηση αυτή των αποτελεσµάτων είναι η επικοινωνία η οποία έχει επιβάρυνση msec. Έτσι στον πίνακα µας γράφουµε το C δύο φορές για να δηλώσουµε το χρόνο επικοινωνίας (Communication time). Ο P1 µε την ίδια επιβάρυνση των msec προωθεί το αποτέλεσµα του και στους δύο επεξεργαστές 1 που θα εκτελέσουν τα υποέργα () και (3). Συµβαίνει όµως ο ίδιος επεξεργαστής P1 να συνεχίζει την εκτέλεση του υποέργου (), ενώ ο δεύτερος επεξεργαστής αρχίζει την ίδια στιγµή να εκτελεί το υποέργο (3). Με τον ίδιο τρόπο τώρα καταγράφουµε στον πίνακα µας τα αντίστοιχα νούµερα στις αντίστοιχες θέσεις του για όσες χρονικές στιγµές αντιστοιχούν σε κάθε υποέργο που εκτελείται. Μετά την ολοκλήρωση του κάθε υποέργου ακολουθεί η επικοινωνία για την µεταφορά των δεδοµένων. Με τον ίδιο τρόπο εκτελούµε όλα τα έργα και καταγράφουµε τις χρονικές στιγµές και τις επικοινωνίες τους στις αντίστοιχες θέσεις του πίνακα µας. 1 Σωστό θα το ελάµβανα επίσης ακόµα και αν κάποιος χρησιµοποιούσε επιβάρυνση msec για επικοινωνία µε κάθε υποέργο/ επεξεργαστή.

Προσοχή!, όταν πλέον η εκτέλεση φτάσει στα φύλα του δένδρου µπορεί τα έργα να εκτελούνται το ένα µετά το άλλο, χωρίς όµως να υπάρχει επικοινωνία ούτε άλλη επιβάρυνση. Έτσι στον πίνακα µας φαίνεται η εκτέλεση όλων των υποέργων του αλγορίθµου που απεικονίζεται στο διάγραµµα που δίνει ή άσκηση. Τ P1 P P3 P4 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 33 34 35 36 37 38 39 40 41 4 43 44 1 1 1 1 1 1 1 1 1 1 C C C C 4 4 4 4 4 4 C C 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 C C 6 6 6 6 6 6 C C 14 14 14 14 14 14 14 14 14 14 5 5 5 5 C C 7 7 7 7 C C 15 15 15 5 15 15 15 15 15 15 15 10 10 10 11 11 11 11 11 11 11 11 11 11 9 9 9 9 9 9 13 13 13 13 Ο ακολουθιακός χρόνος µας δίνεται T se r=380msec. O παράλληλος χρόνος είναι T par =44msec Από τον πίνακα µας, φαίνεται ότι ο πρώτος επεξεργαστής αρχίζει να εκτελεί την πρώτη χρονική στιγµή και το συνολικό έργο ολοκληρώνεται µετά και την εκτέλεση των υποέργων (10) και (13) αντίστοιχα από τους επεξεργαστές P3 και P4. Η ολοκλήρωση των υποέργων (10) και (13) γίνεται την 44 η χρονική στιγµή. Τη στιγµή αυτή ολοκληρώνεται και η εκτέλεση του παράλληλου αλγόριθµου. Άρα, αυτός είναι και ο συνολικός χρόνος εκτέλεσης του αλγορίθµου µας. Παρατηρούµε επίσης ότι η ταυτόχρονή εκτέλεση δύο επεξεργαστών αρχίζει την 13 η χρονική στιγµή ενώ από την 4 η χρονική στιγµή και µέχρι την 4 η η αξιοποίηση της κατανεµηµένης µηχανής µας είναι σχεδόν 100%. Σχεδόν, γιατί βέβαια υπάρχουν και χρόνοι επικοινωνίας µέσα σ αυτό το χρονικό διάστηµα. Με αποτέλεσµα να αφήνουν για συνολικά έξι (6) χρονικές µονάδες άεργους ορισµένους επεξεργαστές. Σύµφωνα µε τα όσα παραθέτουµε στην θεωρεία, την λύση της προηγούµενης άσκησης και την παραπάνω παρατήρηση υπολογίστε την Αξιοποίηση και την Αποδοτικότητα µόνοι σας. Χρονοβελτίωση (speedup), S=Τ ser /Τ par = 380/44 Παρατηρούµε στο σηµείο αυτό ότι η χρονοβελτίωση S>>P, ενώ σύµφωνα µε τη θεωρεία πρέπει S<=P, σύµφωνοι. Όµως στο µάθηµα το είχα επαναλάβει αρκετές φορές, ότι υπάρχει η πιθανότητα για λίγους κατανεµηµένους συνήθως αλγορίθµους να παρουσιάζουν το φαινόµενο αυτό, το οποίο ονοµάζουµε superlinear speedup. Στην άσκηση µας, έδωσα πολύ µικρό παράλληλο χρόνο επίτηδες για να κάνω ιδιαίτερα εµφανές το θέµα αυτό. Τέλος, όσοι την ώρα της εξέτασης µε ρώτησαν για το θέµα αυτό τους εξήγησα ότι είναι σωστό και µπορεί όντως να συµβεί. Μάλιστα κάθε φορά που έγινε παρόµοιο σχόλιο, και έγινε πολλές φορές, η απάντηση δινόταν φωναχτά για να την ακούν όλοι.- Προσοχή!, η σειρά εκτέλεσης των υποέργων παίζει σηµαντικό ρόλο στον σωστό υπολογισµό του χρόνου παράλληλης εκτέλεσης. Αν δηλαδή εκτελέσουµε τα έργα µε διαφορετική σειρά υπάρχει πιθανότητα να εκτελεστούν σε χρόνο που θα είναι µεγαλύτερος του 44msec, αυτό είναι λάθος. Επιλέγουµε την καταλληλότερη σειρά εκτέλεσης των υποέργων, για τον υπολογισµό του παράλληλου χρόνου εκτέλεσης.

Γ. Σας δίνονται τα παρακάτω τµήµατα κώδικα σε C: Νήµα παραγωγός 1 while(1){ X = 4; 3 } 4 5 6 7 Νήµατα καταναλωτές 1 for(i=0; I < 5; i++){ while(x==0){ 3 pthread_cond_wait(&ready, &lock); 4 } 5 x = x 1; 6 printf( Νήµα %d, x = %d, id, x); 7 } Το πρώτο τµήµα εκτελείται από ένα νήµα, το νήµα παραγωγό και το δεύτερο τµήµα από 4 νήµατα τα νήµατα καταναλωτές. Τα τµήµατα κώδικα είναι ηµιτελή. Πρέπει να τα συµπληρώσετε ούτως ώστε: Μόλις το νήµα παραγωγός θέτει την τιµή 4 στη µεταβλητή x να ειδοποιεί τα νήµατα καταναλωτές και να τα περιµένει να ολοκληρώσουν µια επανάληψη (for loop). Αντίστοιχα µόλις ένα νήµα καταναλωτής ειδοποιείται θα πρέπει να µειώνει την µεταβλητή x, να εκτυπώνει τη νέα τιµή και να περιµένει να ολοκληρώσουν όλα τα νήµατα µια επανάληψη. Για την υλοποίηση θα πρέπει να χρησιµοποιήσετε συναρτήσεις για αµοιβαίο αποκλεισµό, ειδοποίηση νηµάτων και για αναµονή σε barrier. Υπενθυµίζεται ότι κατά την αναµονή σε µια µεταβλητή υπό συνθήκη το lock παραµένει ελεύθερο, ενώ µετά την επιστροφή από την αναµονή βρίσκεται δεσµευµένο. Στη συνέχεια σας δίνονται τα πρωτότυπα των συναρτήσεων που θα χρησιµοποιήσετε: int pthread_mutex_lock(pthread_mutex_t *); int pthread_mutex_unlock(pthread_mutex_t *); int pthread_cond_broadcast(pthread_cond_t *); int pthread_barrier_wait(pthread_barrier_t *); Λύση Νήµα παραγωγός 1 while(1){ pthread_mutex_lock(&lock); 3 x = 4; 4 pthread_mutex_unlock(&lock); 5 pthread_cond_broadcast(&ready); 6 pthread_barrier_wait(&bar); 7 } Νήµατα καταναλωτές 1 for(i=0; i < 5; i++){ pthread_mutex_lock(&lk); While(x==0){ 3 pthread_cond_wait(&ready, &lock); 4 } 5 x = x 1; 6 printf( Νήµα %d, x = %d, id, x); pthread_mutex_unlock(&lock); pthread_barrier_wait(&bar); 7 }. Το τέταρτο θέµα είναι ακριβώς ίδιο µε αυτό που υπάρχει στις διαφάνειες του µαθήµατος.