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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

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

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

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

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

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

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

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

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

Διεργασίες (Processes)

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

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

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

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

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

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

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

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

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

Κεφάλαιο 7: Υπορουτίνες

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

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

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

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

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

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

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

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

Pascal - Βασικές Έννοιες

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

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

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

Αμοιβαίος αποκλεισμός

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

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ / Γ'ΕΠΑΛ ΗΜΕΡΟΜΗΝΙΑ: ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι.ΜΙΧΑΛΕΑΚΟΣ-Α.ΚΑΤΡΑΚΗ-Χ.ΠΑΠΠΑ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

ΜΑΗΣ ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΔΟΚΙΜΙΟΥ. Ενότητα Α - ΛΥΣΕΙΣ

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

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

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

Προτεινόμενες λύσεις

Ενότητα 3: «Εισαγωγή στην Αλγοριθμική και στον Προγραμματισμό: loops, subroutines, tables»

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ

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

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

α. Λογικό διάγραμμα είναι η μέθοδος που χρησιμοποιεί απλά σχήματα που υποστηρίζονται με απλές λέξεις για την αναπαράσταση συγκεκριμένων λειτουργιών.

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

Αλγόριθμοι. Χαρίκλεια Τσαλαπάτα 29/2/2012

Προγραμματισμός Ι. Ασκήσεις. Τζάλλας Αλέξανδρος, Καθηγητής Εφαρμογών. Τμ. Μηχανικών Πληροφορικής Τ.Ε.

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κανονική εξέταση, Φεβρουάριος 2005

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

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false.

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

Κεφάλαιο 12 : ΕΡΓΑΣΤΗΡΙΑΚΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑ 03 Συναρτήσεις

9.1. Προσδοκώμενα αποτελέσματα

A3. Μονάδες 5 Α4. Μονάδες 10 ΘΕΜΑ B. Β1. writeln Περιεχόμενα Εντολή Αποτελέσματα Παραμέτρων Μονάδες 20 ΘΕΜΑ Γ.

Pascal. 1 Γλώσσες προγραμματισμού. 21 Οκτωβρίου 2011

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

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

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

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

Transcript:

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

Εισαγωγή Ορισμός ατομικής λειτουργίας Τεχνική κλειδώματος Αποκλειστική πρόσβαση στα διαμοιραζόμενα δεδομένα Αναμονή των διεργασιών - Ανταγωνισμός για πρόσβαση στη μνήμη Συμφόρηση Αποκέντρωση του μηχανισμού πρόσβασης στην μνήμη 2

Σφάλμα Συγχρονισμού 3

Υλοποίηση Κλειδωμάτων PROGRAM Search; VAR A : ARRAY [1..200] OF INTEGER; i, val, n : INTEGER; L : SPINLOCK;... n := 0; Readln(val); FORALLL i := 1 TO 200 GROUPING 10 DO IF A[i] = VAL THEN Lock(L); (*Εισέρχεται και ενεργοποιεί το κλείδωμα*) n := n + 1; Unlock(L); (*Εξέρχεται και απενεργοποιεί το κλείδωμα*) END; WRITELN( Total occurrences :, n);... 4

Ηεπίδραση του κλειδώματος 5

Τεχνικές για την υλοποίηση των Ατομικών Λειτουργιών Semaphores [Dijkstra, 1968] Locks [Shaw, 1948] Critical regions [Hansen, 1983] Monitors [Hoare, 1974] Αμοιβαίος αποκλεισμός των παράλληλων διεργασιών κατά την εκτέλεση των ατομικών λειτουργιών 6

Κλειδώματα στη Multi-Pascal Ενεργός αναμονή (Busy Waiting) Τύπος δεδομένων Spinlock Διαδικασία Lock() Διαδικασία Unlock() Τιμές μεταβλητής spinlock: 0: κατάσταση ξεκλειδώματος 1: κατάσταση κλειδώματος 7

Διαδικασίες Κλειδώματος/ξεκλειδώματος Unlock(L): Write 0 into L; Lock(L): Repeat X:=TestandSet(L); (*Διαβάζεται η παλιά κατάσταση και ενεργοποιείται το κλείδωμα*) until X=0; (*Σταματά η επανάληψη του βρόγχου αν το L είναι απενεργοποιημένο*) 8

Σειριακό Πρόγραμμα Για Τη Δημιουργία Ιστογράμματος PROGRAM Histogram; CONST n=20; (*Μέγεθος της εικόνας*) max=10; (*Μέγιστη ένταση του εικονοστοιχείου*) VAR Image: Array [1..n,1..n] of integer; hist: Array [0..max] of integer; i,j,intensity: integer; FOR i := 1 to n do begin(*εισαγωγή του πίνακα της εικόνας*) For j := 1 to n do Read((image[i,j]); Readln; END; FOR i := 1 to max do (*Αρχικοποίηση του ιστογράμματος*) hist[i] := o; FOR i := 1 to n do FOR j := 1 to n do intensity := image[i,j]; hist[intensity] := hist[intensity]+1; END; END. 9

Σενάριο για την τεχνική κλειδώματος begin intensity := image[i,j]; Lock(L); hist[intensity] := hist[intensity]+1; Unlock(L); End; 10

Παράλληλο Πρόγραμμα Για Τη Δημιουργία Ιστογράμματος PROGRAM ParallelHistogram; CONST n=20; (*Μέγεθος της εικόνας*) max=10; (*Μέγιστη ένταση του εικονοστοιχείου*) VAR Image: Array [1..n,1..n] of integer; hist: Array [0..max] of integer; L: Array [0..max] of spinlock; i: integer;... (*Αρχικοποίηση του πίνακα εικόνας*) For I := 0 to max do hist[i] := 0; Forall i := 1 to n do VAR j, intensity : Integer; For j := 1 to n do intensity := image[i,j]; Lock(L[intensity]); hist[intensity] := hist[intensity]+1; Unlock(L[intensity]); END; END; END. 11

Ανταγωνισμός στο πρόγραμμα Ιστογράμματος Εικόνας 12

Εφαρμογή της Αριθμητικής Ολοκλήρωσης 13

Ακολουθιακό πρόγραμμα για την αριθμητική ολοκλήρωση Sequential Numerical Integration: sum := 0; t := a; For i := 1 to n do t:=t+w; (*Προχωρά στο επόμενο σημείο *) sum:=sum+f(t); (*Προστίθεται το σημείο δείγματος στο άθροισμα*) END; sum := sum + (f(a) + f(b)) / 2; answer := w * sum; 14

Παράλληλη μορφή αριθμητικής ολοκλήρωσης 15

PROGRAM Numerical Integration; CONST numproc = 40; (*Πλήθος των διεργασιών*) numpoints = 30; (*Πλήθος των στοιχείων ανά διεργασία*) VAR a, b, w, globalsum, answer: real; i: integer; L: spinlock; Function f(t: real): Real; (*Η συνάρτηση που θα ολοκληρωθεί*)... (*Υπολογισμός της τιμής της f(t)*) END; Procedure Integrate(myindex: Integer); VAR localsum, t: Real; j: Integer; t:= a + myindex * (b-a)/numproc; (*Η αρχική θέση*) For j:= 1 to numpoints do localsum:= localsum + f(t); (*Πρόσθεση του επομένου στοιχείου της δειγματοληψίας*) t:= t + w; END; localsum:= w*localsum; Lock(L); globalsum:= globalsum + localsum; (*Ατομική αλλαγή*) Unlock(L); END; Παράλληλο πρόγραμμα αριθμητικής ολοκλήρωσης... (*Αρχικοποίηση των τιμών των ακράιών σημείων a και b*) w:= (b-a) / (numproc*numpoints); (*Η απόσταση μεταξύ των σημείων*) Forall I:= 0 to numproc-1 do (*Δημιουργία διεργασιών*) Integrate(i); answer:=globalsum+w/2*(f(b)-f(a)); (*Πρόσθεση των ακραίων σημείων*) END. 16

Αποκέντρωση των Ατομικών Λειτουργιών Ελαχιστοποίηση του Ανταγωνισμού Πρόβλημα Ιστογράμματος: χρήση ξεχωριστών κλειδωμάτων Πρόβλημα Αριθμητικής Ολοκλήρωσης: χρήση τοπικών μεταβλητών αθροίσματος 17

Locks vs. Channels Προσομοίωση κλειδώματος από κανάλι Προσομοίωση καναλιού από κλείδωμα Απαίτηση σε χρόνο Κανάλια: ταυτόχρονα ανάγνωση κι εγγραφή Spinning vs. Blocked Επεξεργαστής: Busy Waiting vs. Blocked 18