Σωληνωτή επεξεργασία

Σχετικά έγγραφα
Παραλληλισμός δεδομένων ή Φυσικός παραλληλισμός

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

Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών

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

Επιμερισμός δεδομένων

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

Σύγχρονοι υπολογισμοί

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

Διάλεξη 04: Παραδείγματα Ανάλυσης

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

2x 1 + x 2 x 3 + x 4 = 1. 3x 1 x 2 x 3 +2x 4 = 3 x 1 +2x 2 +6x 3 x 4 = 4

Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

Εφαρμοσμένα Μαθηματικά ΙΙ

EM 361: Παράλληλοι Υπολογισμοί

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Ειδικά θέματα στην επίλυση

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Διδάσκων: Παναγιώτης Ανδρέου

9. Εντολές επανάληψηςκαι η εντολή

Φρ. Κουτελιέρης. Επίκουρος Καθηγητής Παν/µίου Ιωαννίνων ΜΑΘΗΜΑΤΙΚΑ Ι

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός

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

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Διανύσµατα στο επίπεδο

Επίλυση ενός τριδιαγώνιου γραµµικού συστήµατος Ax = d µε τη µέθοδο απαλοιφής του Gauss (µέθοδος του Thomas)

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

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

D = / Επιλέξτε, π.χ, το ακόλουθο απλό παράδειγμα: =[IA 1 ].

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

Υπολογισμός - Εντολές Επανάληψης

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

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

5 ΠΡΟΟΔΟΙ 5.1 ΑΚΟΛΟΥΘΙΕΣ. Η έννοια της ακολουθίας

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

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU

Αριθμητική Ανάλυση και Εφαρμογές

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Προγραμματισμός Ι (ΗΥ120)

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

Ανάπτυξη εφαρμογών/ Βασικές γνώσεις/ πρώτο θέμα ΕΡΩΤΗΣΕΙΣ ΣΥΝΤΟΜΗΣ ΑΠΑΝΤΗΣΗΣ

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

ΦΥΛΛΟ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ

Εποπτεία μαθήματος στο LAMS του ΠΣΔ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Quicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. Καβακλή. Χειμερινό Εξάμηνο 2001

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

ΠΡΟΒΛΗΜΑΤΑ ΜΕΤΑΦΟΡΑΣ

Εισαγωγή στον Προγραμματισμό

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

(Γραμμικές) Αναδρομικές Σχέσεις

Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο.

(Γραμμικές) Αναδρομικές Σχέσεις

Γλώσσα Προγραμματισμού C

Δομές Δεδομένων Ενότητα 2

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Αλγόριθμοι και Πολυπλοκότητα

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

(Γραμμικές) Αναδρομικές Σχέσεις

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

Αλγόριθμοι και Πολυπλοκότητα

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ

Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Γ ΛΥΚΕΙΟΥ

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

ΦΑΙΝΟΜΕΝΑ ΜΕΤΑΦΟΡΑΣ ΙΙ ΜΕΤΑΦΟΡΑ ΘΕΡΜΟΤΗΤΑΣ ΚΑΙ ΜΑΖΑΣ

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 3

Τεχνικές Σχεδιασμού Αλγορίθμων

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

Transcript:

Σωληνωτή επεξεργασία Κ.Γ. Μαργαρίτης προσαρμογή από το μάθημα του Barry Wilkinson ITCS 4145/5145 2006Cluster Computing Univ. of North Carolina at Charlotte 5.1

Σωληνωτή επεξεργασία Το πρόβλημα διαιρείται σε σειρά εργασιών που πρέπει να εκτελεστούν σε ακολουθία (όπως στον ακολουθιακό προγραμματισμό). Κάθε εργασία αποτελεί ξεχωριστή διεργασία και ανατίθεται σε διαφορετικό επεξεργαστή (ιδανικά). 5.2

Παράδειγμα Πρόσθεση των στοιχείων ενός πίνακα a στο sum: sum = 0; for (i = 0; i < n; i++) sum = sum + a[i]; Ο βρόχος μπορεί να ξεδιπλωθεί και να δώσει: sum = 0; sum = sum + a[0]; sum = sum + a[1]; sum = sum + a[2]; sum = sum + a[3]; sum = sum + a[4];... 5.3

Σωλήνωση για το ξεδιπλωμένο βρόχο 5.4

Άλλο παράδειγμα Φίλτρο συχνοτήτων Στόχος η αφαίρεση συγκεκριμένων συχνοτήτων (f 0, f 1, f 2,f 3, κλπ.) από ψηφιοποιημένο σήμα, f(t). Αρχικά το σήμα εισέρχεται από αριστερα: 5.5

Αποδοτική χρήση Αν ένα πρόβλημα μπορεί να τεμαχιστεί σε μια ακολουθία διεργασιών, η σωληνωτή επεξεργασία μπορεί να αποδώσει για τους παρακάτω τρείς τύπους υπολογισμών: 1. Συνεχιζόμενη εκτέλεση πολλαπλών στιγμιοτύπων του ίδιου προβλήματος. 2. Μια μεγάλη σειρά δεδομένων υφίσταται ακολουθιακή επεξεργασία πολλαπλών σταδίων. 3. Μια διεργασία μπορεί να ξεκινήσει βασιζόμενη σε αποτελέσματα της προηγούμενης, πριν η τελευταία ολοκληρωθεί. 5.6

Τύπος 1: χωροχρονικό διάγραμμα 5.8

Τύπος 2: χωροχρονικό διάγραμμα 5.9

Τύπος 3: χωροχρονικό διάγραμμα Σωληνωτή επεξεργασία όπου η πληροφορία περνά στο επόμενο στάδιο πριν ολοκληρωθεί το τρέχον βήμα. 5.10

Αν ο αριθμός των σταδίων είναι μεγαλύτερος από τον αριθμό των επεξεργαστών στη σωλήνωση, τότε μια ομάδα σταδίων μπορέι να ανατεθεί σε έναν επεξεργαστή: 5.11

Παραδείγματα υπολογισμών σωληνωτής επεξεργασίας 5.13

Σωληνωτή επεξεργασία Τύπου 1 Συνεχιζόμενη εκτέλεση πολλαπλών στιγμιοτύπων του ίδιου προβλήματος. 5.6

Πρόσθεση σειράς αριθμών Πότε είναι αποδοτικός ο αλγόριθμος; 5.14

Βασικός κώδικας για διεργασία Pi : recv(&accumulation, Pi-1); accumulation = accumulation + number; send(&accumulation, Pi+1); Εκτός από τη πρώτη διαργασία, P0, που είναι send(&number, P1); Και την τελευταία διεργασία, Pn-1, που είναι recv(&number, Pn-2); accumulation = accumulation + number; 5.15

Πρόγραμμα SPMD if (process > 0) { recv(&accumulation, Pi-1); accumulation = accumulation + number; } if (process < n-1) send(&accumulation, P i+1); Το τελικό αποτέλεσμα βρίσκεται στη τελευταία διεργασία. Αντί για πρόσθεση θα μπορούσε να υπάρχει οποιαδήποτε επεξεργασία. Σε διαδοχικά βήματα του υπολογισμού θα μπορούσαν να υπάρχουν διαφορετικά δεδομένα. 5.16

Σωληνωτή επεξεργασία Τύπου 2 Μια μεγάλη σειρά δεδομένων υφίσταται ακολουθιακή επεξεργασία πολλαπλών σταδίων. 5.6

Ταξινόμηση Αριθμών Παράλληλη ταξινόμηση εισαγωγής. 5.18

Σωλήνωση για ταξινόμηση εισαγωγής 5.19

Ο βασικός αλγόριθμος της διεργασίας Pi είναι recv(&number, Pi-1); if (number > x) { send(&x, Pi+1); x = number; } else send(&number, Pi+1); Με n αριθμούς, το i διεργασία θα δεχτεί = n i αριθμούς. Αριθμός περασμάτων = n - i - 1 Επομένως μπορεί να χρησιμοποιηθεί ένα απλός βρόχος. 5.20

Ταξινόμηση εισαγωγής με επιστροφή των δεδομένων μέσω διπλής σωλήνωσης 5.21

Χωροχρονικό διάγραμμα διπλής σωλήνωσης 5.22

Γεννήτρια πρώτων αριθμών Κόσκινο του Ερατοσθένη Γεννήτρια ακεραίων, αρχίζοντας από το 2. Το 2 είναι πρώτος αριθμός και κρατείται στο P 0. Όλα τα πολλαπλάσια του 2 σταματούν στο P 0. Οι υπόλοποι συνεχίζουν στη σωλήνωση (προς P 1 ). Η ίδια διαδικασία για το 3 στο P 1 κ.ο.κ. 5.23

Ενδεικτικός κώδικας της διεργασίας, Pi : recv(&x, Pi-1); /* repeat following for each number */ recv(&number, Pi-1); if ((number % x)!= 0) send(&number, P i+1); Κάθε διεργασία δεν θα παραλάβει τον ίδιο αριθμό ακεραίων. Χρήση 'σημαίας' τερματισμού της ακολουθίας: recv(&x, Pi-1); for (i = 0; i < n; i++) { recv(&number, Pi-1); If (number == terminator) break; (number % x)!= 0) send(&number, P i+1); } 5.24

Σωληνωτή επεξεργασία Τύπου 3 Μια διεργασία μπορεί να ξεκινήσει βασιζόμενη σε αποτελέσματα της προηγούμενης, πριν η τελευταία ολοκληρωθεί. 5.6

Επίλυση άνω (ή κάτω) τριγωνικού συστήματος εξισώσεων Όπου τα a i,j and b i είναι σταθερές και τα nd x j είναι οι άγνωστες τιμές, i, j = 0, 1,.., n-1. Σε μορφή πινάκων Αx = b, που προκύπτει από την απαλοιφή Gauss σε πλήρες τετραγωνικό σύστημα εξισώσεων. 5.25

Ανάδρομη αντικατάσταση Πρώτα βρίσκουμε το x 0 από τη τελευταία (πρώτη) εξίσωση, Η τιμή του x 0 αντικαθίσταται στην επόμενη εξλισωση για να βρούμε το x 1, Οι τιμές των x 1 και x 0 αντικαθίστανται στην επόμενη εξίσωση για να βρούμε το x 2 : Συνεχίζουμε έτσι μέχρι να βρούμε όλους τους αγνώστους. 5.26

Λύση με σωλήνωση Το πρώτο στάδιο της σωλήνωσης υπολογίζει το x 0 και περνά το x 0 στο δεύτερο στάδιο, το οποίο υπολογίζει το x 1 από το x 0 και περνά τα x 0 και x 1 στο επόμενο στάδιο, που υπολογίζει το x 2 από τα x 0 και x 1, κ.ο.κ. 5.27

Υπολογισμοί διασωλήνωσης Η διεργασία i, i = 0, 1,.. n-1 : παραλαμβάνει τις τιμές x 0, x 1, x 2,, x i-1 υπολογίζει το x i από την εξίσωση: αποστέλλει τις τιμές x 0, x 1, x 2,, x i-1, x i Ειδικές περιπτώσεις οι διεργασίες 0 και n-1 : η πρώτη δεν παραλαμβάνει, η τελευταία δεν αποστέλλει. 5.28

Ακολουθιακός κώδικας Οι σταθερές a i,j και b i βρίσκονται στους πίνακες a[ ][ ] και b[ ] αντίστοιχα, οι τιμές των αγνώστων θα αποθηκευτούν στον πίνακα x[ ]. x[0] = b[0]/a[0][0]; /* computed separately */ for (i = 1; i < n; i++) { /*for remaining unknowns*/ sum = 0; For (j = 0; j < i; j++ sum = sum + a[i][j]*x[j]; x[i] = (b[i] - sum)/a[i][i]; } 5.29

Παράλληλος κώδικας Ψευδοκώδικας για τη διεργασία P i i = 0, 1,.. n-1 for (j = 0; j < i; j++) { recv(&x[j], Pi-1); send(&x[j], Pi+1); } sum = 0; for (j = 0; j < i; j++) sum = sum + a[i][j]*x[j]; x[i] = (b[i] - sum)/a[i][i]; send(&x[i], Pi+1); Τι νόημα έχουν οι δείκτες σε πίνακες; Ποιές είναι οι διαφορές για τις διεργασίες 0 και n-1; Πού βρίσκονται τα αποτελέσματα; 5.30

Χωροχρονικό διάγραμμα 5.31