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

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

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

Παράλληλη Επεξεργασία Κεφάλαιο 8 ο Προγράμματα Περάσματος Μηνυμάτων

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

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

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

Παράλληλη Επεξεργασία Κεφάλαιο 10 ο Αντίγραφα Εργαζομένων

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α A1. 2-Λάθος 3-Λάθος 4-Σωστό 5-Λάθος A2. integer. real. Boolean. char. string A3.

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Απαντήσεις στο μάθημα Δομημένος Προγραμματισμός ΕΠΑΛ

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ

ιαφάνειες παρουσίασης #5

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

Μεταγλωττιστές Βελτιστοποίηση

Γραπτές εξετάσεις στο μάθημα: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Θ) Εισηγητής: Γεωργίου Χρήστος ΘΕΜΑΤΑ & ΑΠΑΝΤΗΣΕΙΣ. Β. Χαρακτήρας(Αλφαριθμητικά)

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Μονοδιάστατοι Πίνακες

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

ιαφάνειες παρουσίασης #7

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

Προγραμματισμός PASCAL

Αποτελέσματα προόδου

ιαφάνειες παρουσίασης #3

Σκοπός. Εργαστήριο 5 Εντολές Επιλογής

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

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

ιαφάνειες παρουσίασης #6

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

ΑΠΑΝΤΗΣΕΙΣ. α- Σωστό β- Σωστό γ- Λάθος δ- Λάθος ε- Σωστό στ- Σωστό

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

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

ΜΑΗΣ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας

Εισαγωγή στην πληροφορική

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Εργαστήριο 10 Πίνακες. Πίνακες. Η έννοια της δόμησης δεδομένων στη PASCAL. Σκοπός

ΜΕΡΟΣ Α - Αποτελείται από δέκα (10) ερωτήσεις. Κάθε ερώτηση βαθμολογείται με έξι μονάδες.

Pascal. 15 Νοεμβρίου 2011

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. β. Οι πληροφορίες είναι δεδομένα τα οποία δεν έχουν υποστεί επεξεργασία.

ιαφάνειες παρουσίασης #4

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

Α2. Να γράψετε στο τετράδιό σας τους αριθμούς 1,2,3,4,5 από τη Στήλη Α και δίπλα το γράμμα α,β,γ,δ,ε,στ της Στήλης Β που δίνει τη σωστή αντιστοιχία.

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Εισαγωγή στην πληροφορική

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 8 : Πίνακες IΙ. Αλέξανδρος Τζάλλας

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους Οδηγός Προετοιμασίας για τη Τελική Εξέταση

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

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

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

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

Αλγόριθμοι. Βασικές έννοιες ΤΕΛΟΣ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

πινάκων Σύγχρονα Προγραματιστικά Περιβάλλοντα ΠΕΡΙΕΧΟΜΕΝΑ

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

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

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

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

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΛΥΣΕΙΣ

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

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

Λειτουργικά Συστήματα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 7 : Πίνακες I. Αλέξανδρος Τζάλλας

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

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

ιαφάνειες παρουσίασης #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

Pascal. 26 Οκτωβρίου 2011

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

Computing. Νοέμβριος Έκδοση 1.0

ιαφάνειες παρουσίασης #5

Βασικές Έννοιες Αλγορίθμων Τι είναι αλγόριθμος

Σχεδίαση και Ανάλυση Αλγορίθμων

Ταξινόμηση με συγχώνευση Merge Sort

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

ιαφάνειες παρουσίασης #7

Μεταγλωττιστές Βελτιστοποίηση

Άσκηση 2.1 Να σχεδιαστεί το διάγραµµα ροής πρωτοβάθµιας εξίσωσης της µορφής:

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

ιαφάνειες παρουσίασης #8

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

Transcript:

Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια Διδάκτορας Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας areti@uom.gr http://eos.uom.gr/~areti 1

Περίληψη Κεφαλαίου Ασύγχρονοι αλγόριθμοι (Relaxed Parallel Algorithms) Επικοινωνία-αλληλεπίδραση διεργασιών Μεταβλητές κανάλια (Channel Variables) Αλγόριθμοι διασωλήνωσης (Pipelined Algorithms) Επίλυση τριγωνικού συστήματος γραμμικών εξισώσεων με τη μέθοδο της προς-τα-πίσωαντικατάστασης (Back Substitution) Διτονικός αλγόριθμος ταξινόμησης με συγχώνευση 2

Παράλληλες Διεργασίας κι Επικοινωνία Fork For i:=1 to 20 do sum1:= sum1 +A[i]; Fork For j:=1 to 20 do sum2:= sum2 +B[j]; Join; Join; 3

Επικοινωνία Μεταξύ Παράλληλων Διεργασιών Αρχικοποίηση της μεταβλητής C από τη διεργασία Ρ1. Ανάγνωση της μεταβλητής C από τη διεργασία Ρ2. 4

Ανάγνωση και Εγγραφή Καναλιών Επικοινωνία με τη χρήση της μεταβλητής καναλιού Το κανάλι συμπεριφέρεται σαν μια ουρά με τιμές δεδομένων Οι τιμές αποθηκεύονται Ανάγνωση άδειου καναλιού συνεπάγεται αναμονή διεργασίας-αναγνώστη Εγγραφή-ανάγνωση μεταβλητής κανάλι Σύνταξη: <όνομα καναλιού> : Channel of <τύπος δεδομένων>, όπου <τύπος δεδομένων> μπορεί να είναι οι τύποι: Integer, Real, Boolean, Char Τελεστής? για τον έλεγχο ενός καναλιού 5

Αλληλεπίδραση Διεργασιών Παραγωγού - Καταναλωτή 6

Παράδειγμα Παραγωγού - Καταναλωτή PROGRAM Producer_Consumer; CONST endmarker=-1; VAR commchan:channel OF INTEGER; PROCEDURE Producer; VAR inval:integer; BEGIN REPEAT... (* Υπολογίζει το νέο αντικείμενο inval για το κανάλι *) commchan := inval; (* Γράφει μέσα στο κανάλι *) UNTIL inval=endmarker; PROCEDURE Consumer; VAL outval:integer; BEGIN outval:=commchan; (* Διαβάζει από το κανάλι *) WHILE outval<>endmarker DO BEGIN... (* χρησιμοποίηση της outval σε ορισμένους υπολογισμούς *) outval := commchan; (* Διαβάζει την επόμενη τιμή από το κανάλι *) BEGIN (* Κυρίως πρόγραμμα *) FORK Producer; (* Διεργασία Producer *) FORK Consumer; (* Διεργασία Consumer *) END. 7

Διασωλήνωση Διεργασιών Λήψη δεδομένων από τον αριστερό γείτονα επεξεργασία αποστολή αποτελεσμάτων στον δεξιό γείτονα Κάθε διεργασία εκτελεί μετασχηματισμούς την ίδια στιγμή με διαφορετικά δεδομένα Κάθε διεργασία ενεργεί ταυτόχρονα και ως παραγωγός και ως καταναλωτής Δήλωση: Var chan: Array [1..n] of Channel of Integer; Ο αριθμός των παράλληλων διεργασιών περιορίζεται από το πλήθος των μετασχηματισμών που πραγματοποιούνται στα δεδομένα 8

Δημιουργία Διεργασιών Διασωλήνωσης PROCEDURE PipeProcess(mynumber: INTEGER); VAR inval, outval, i:integer; BEGIN FOR i:=1 TO m DO BEGIN inval:=chan[mynumber]; (* Διαβάζει από το αριστερό κανάλι *) (* Χρήση της inval για να υπολογιστεί η inval *) chan[mynumber+1]:=outval; (* Γράφει στο δεξιό κανάλι *) 9

Σειριακός αλγόριθμος για επίλυση με προς-τα πίσωαντικατάσταση Sequential Back Substitution: FOR i:=1 TO n DO BEGIN sum:=0; FOR j:=1 TO i-1 DO sum:=sum+a[i,j]*x[j]; x[i]:=(b[i]-sum)/a[i,i]; 10

Διασωλήνωση διεργασιών στην προς-τα-πίσω-αντικατάσταση Οι απαιτούμενες τιμές που μεταφέρονται μέσω της διασωλήνωσης πρέπει να φτάνουν με την σωστή σειρά. 11

Διασωλήνωση διεργασιών στην προς-τα-πίσω-αντικατάσταση Pipeline Process i: sum:=0; FOR j:=1 TO i-1 DO BEGIN Διαβάζει την τιμή του x[j] από αριστερά; Στέλνει την τιμή του x[j] προς τα δεξιά; sum:=sum+a[i,j]*x[j]; x[i]:=(b[i]-sum)/a[i,i]; (* Υπολογίζει την τιμή του x[i] *) Στέλνει το x[i] προς τα δεξιά; 12

PROGRAM BackSubstitution; CONST n=50; VAR A:ARRAY [1.. n,1.. n] OF REAL; B,x:ARRAY [1.. n] OF REAL; pipechan : ARRAY [1.. n+1] OF CHANNEL OF REAL; i : INTEGER; PROCEDURE PipeProcess(i:INTEGER); (* Επιλύει την εξίσωση i για να υπολογίσει το x[i] *) VAR j:integer; sum,xvalue:real; BEGIN sum:=0; FOR j:=1 TO i-1 DO BEGIN xvalue:=pipechan[i]; (* Διαβάζει το x[j] από τα αριστερά *) pipechan[i+1]:=xvalue; (* Στέλνει το x[j] προς τα δεξιά *) sum := sum + A[i,j]*xvalue; x[i]:=(b[i]-sum)/a[i,i]; (* Υπολογίζει την τιμή για το x[i] *) pipechan[i+1]:=x[i]; (*Στέλνει το x[i] προς τα δεξιά *) BEGIN (* Κυρίως πρόγραμμα *)... (* Αρχικοποίηση των πινάκων Α και Β *) FORALL i:=1 TO n DO (* Δημιουργία διεργασιών διασωλήνωσης *) PipeProcess(i); END. 13

Διτονική ταξινόμηση με συγχώνευση Επικοινωνία πινάκων κατά φάσεις (Phased- Array communications) Κάθε διεργασία επικοινωνεί με πολλές διαφορετικές διεργασίες. Η σειρά τους παίζει καθοριστικό ρόλο. Κάθε διεργασία έχει το δικό της πίνακα καναλιών Διτονική λίστα, τοπικό μέγιστο, τοπικό ελάχιστο 14

Διτονική λίστα με ένα τοπικό μέγιστο Βήματα δυαδικής διάσπασης: Σε κάθε διεργασία του πρώτου μισού της λίστας ανατίθεται ως σύντροφος μια διεργασία που βρίσκεται στην ίδια σχετική θέση του δεύτερου μισού της λίστας. Αυτό απλά σημαίνει ότι σε κάθε διεργασία i του πρώτου μισού της λίστας ανατίθεται η διεργασία i+n/2 που ανήκει στο δεύτερο μισό της λίστας. Κάθε ζευγάρι διεργασιών-συντρόφων συγκρίνει τις τιμές της λίστας που της έχει ανατεθεί. Αν το στοιχείο της διεργασίας από το πρώτο μισό της λίστας είναι μεγαλύτερο από το στοιχείο της διεργασίας του δεύτερου μισού της λίστας, τότε οι διεργασίες ανταλλάσσουν τα στοιχεία τους ενώ σε αντίθετη περίπτωση δεν συμβαίνει καμιά ενέργεια. 15

Ιδιότητες της Δυαδικής Διάσπασης Κάθε στοιχείο του πρώτου μισού της λίστας είναι μικρότερο από κάθε στοιχείο του δεύτερου μισού της λίστας. Καθένα από τα δύο μισά της λίστας είναι από μόνα τους μια διτονική λίστα με μήκος n/2. 16

Αύξουσα Ταξινόμηση Διτονικής Λίστας (* Ο αριθμός αναγνώρισης της διεργασίας είναι το myid *) FOR j:=d-1 DOWNTO 0 DO BEGIN (* Χρήση του j bit του myid *) Καθορισμός της διεργασίας-συντρόφου αντιστρέφοντας το j bit του myid; Αποστολή αντιγράφου του στοιχείου της διεργασίας προς τη διεργασία-σύντροφο; Παραλαβή αντίγραφου του στοιχείου της διεργασίαςσυντρόφου; IF (το j bit του myid)=0 THEN κράτησε το μικρότερο από τα δυο στοιχεία ELSE κράτησε το μεγαλύτερο από τα δυο στοιχεία; 17