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

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

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

Εισαγωγή σε μεθόδους Monte Carlo Ενότητα 2: Ολοκλήρωση Monte Carlo, γεννήτριες τυχαίων αριθμών

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

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

τατιςτική ςτην Εκπαίδευςη II

Γνωστική Ψυχολογία 3

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

τατιςτική ςτην Εκπαίδευςη II

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

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

ΨΥΧΟΠΑΙΔΑΓΩΓΙΚΗ ΤΗΣ ΠΡΟΣΧΟΛΙΚΗΣ ΗΛΙΚΙΑΣ

ΔΙΟΙΚΗΤΙΚΗ ΕΠΙΣΤΗΜΗ. Ενότητα #10: ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ ΚΑΙ ΑΝΑΣΧΕΔΙΑΣΜΟΣ ΔΙΑΔΙΚΑΣΙΑΣ

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

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

Ιστορίας της παιδείας από τα κάτω Α03 06

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Εισαγωγή στις Βάσεις Δεδομζνων II

ΔΗΜΟΣΙΑ ΟΙΚΟΝΟΜΙΚΗ Ι

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 9: Εισαγωγή στην Ομοχειρία (Pipelining - Διοχέτευση) Μανόλης Γ.Η.

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΟΙΚΟΝΟΜΙΚΗ ΑΝΑΛΥΣΗ Ενότητα #4: ΙΣΟΡΡΟΠΙΑ ΑΓΟΡΩΝ

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

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

Γνωστική Ψυχολογία 3

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

Λογική. Δημήτρης Πλεξουσάκης. Ασκήσεις 2ου Φροντιστηρίου: Προτασιακός Λογισμός: Κανονικές Μορφές, Απλός Αλγόριθμος Μετατροπής σε CNF/DNF, Άρνηση

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

Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΙΣΤΟΡΙΑΣ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ΔΙΑΣΠΟΡΑ (A06 11)

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Γνωστική Ψυχολογία 3

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

Γνωστική Ψυχολογία 3

Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΙΣΤΟΡΙΑΣ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ΔΙΑΣΠΟΡΑ (A06 11)

Γνωστική Ψυχολογία 3

ΔΙΟΙΚΗΤΙΚΗ ΕΠΙΣΤΗΜΗ ΚΕΦΑΛΑΙΟ 2#: ΕΙΣΑΓΩΓΗ ΣTΗ ΔΙΟΙΚΗΤΙΚΗ ΕΠΙΣΤΗΜΗ

Πληροφορική ΙΙ Ενότητα 1

Πληροφορική ΙΙ Θεματική Ενότητα 7

ΔΙΔΑΚΤΙΚΗ ΜΕΘΟΔΟΛΟΓΙΑ

Δομημένος Προγραμματισμός

Γνωστική Ψυχολογία 3

Μακροοικονομική Θεωρία Ι

Ιστορίας της παιδείας από τα κάτω Α03 06

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Μακροοικονομική Θεωρία Ι

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

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

Ιστορίας της παιδείας από τα κάτω Α03 06

Βάσεις Περιβαλλοντικών Δεδομένων

ΔΡΔ: Διαγράμματα Ροής Δεδομένων

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

Υπολογιστικά Συστήματα

ΔΙΔΑΚΤΙΚΗ ΜΕΘΟΔΟΛΟΓΙΑ

Ιστορίας της παιδείας από τα κάτω Α03 06

ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ(Visual Basic)

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

Διδακτική της Πληροφορικής

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

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Μακροοικονομική Θεωρία Ι

Διδακτική της Πληροφορικής

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Προγραμματισμός Η/Υ. 3 η ενότητα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Δομημένος Προγραμματισμός

ΔΙΔΑΚΤΙΚΗ ΜΕΘΟΔΟΛΟΓΙΑ

ΟΙΚΟΝΟΜΙΚΗ ΑΝΑΛΥΣΗ Ενότητα #7: ΚΑΤΑΝΑΛΩΤΕΣ, ΠΑΡΑΓΩΓΟΙ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ ΑΓΟΡΩΝ

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Μοντελοποίηση Λογικών Κυκλωμάτων

Μακροοικονομική Θεωρία Ι

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

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

Διδακτική της Πληροφορικής

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Ηλεκτρονικοί Υπολογιστές

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Αρχιτεκτονική Υπολογιστών

Λογική Δημήτρης Πλεξουσάκης Ασκήσεις στον Κατηγορηματικό Λογισμό Τμήμα Επιστήμης Υπολογιστών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 10 : Κατασκευή ΝΠΑ. Αλέξανδρος Τζάλλας

ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΕΠΙΔΟΣΗΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΕΦΑΛΑΙΟ 4: Παιδαγωγική και κοινωνική υπόσταση της αξιολόγησης

Διοικητική Λογιστική

Δομημένος Προγραμματισμός

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

ΜΑΚΡΟΟΙΚΟΝΟΜΙΚΗ ΘΕΩΡΙΑ ΙΙ

ΑΞΙΟΛΟΓΗΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΕΡΓΟΥ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ ΣΧΟΛΕΙΟΥ ΚΕΦΑΛΑΙΟ 6: Αυτοαξιολόγηση των σχολικών μονάδων

ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΕΠΙΔΟΣΗΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΕΦΑΛΑΙΟ 8: Επεξεργασία και ερμηνεία αξιολογικών δεδομένων του μαθητή

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #4: Παράλληλοι Αλγόριθμοι Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons και ειδικότερα Αναφορά Μη εμπορική Χρήση Όχι Παράγωγο Έργο 3.0 Ελλάδα (Attribution Non Commercial Non-derivatives 3.0 Greece) CC BY-NC-ND 3.0 GR [ή επιλογή ενός άλλου από τους έξι συνδυασμούς] [και αντικατάσταση λογότυπου άδειας όπου αυτό έχει μπει (σελ. 1, σελ. 2 και τελευταία)] Εξαιρείται από την ως άνω άδεια υλικό που περιλαμβάνεται στις διαφάνειες του μαθήματος, και υπόκειται σε άλλου τύπου άδεια χρήσης. Η άδεια χρήσης στην οποία υπόκειται το υλικό αυτό αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

EM 361: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Χειμερινό Εξάμηνο 2009/10 Κεφάλαιο 4: Παράλληλοι Αλγόριθμοι Ταξινόμηση Παράλληλων Αλγόριθμων. Παράδειγμα: Υπολογισμός του Αριθμού π. Το Κόσκινο του Ερατοσθένη. Σχεδιασμός Παράλληλων Αλγορίθμων. Τύποι Επικοινωνίας Μεταξύ των Επεξεργαστών.

Παράλληλοι Αλγόριθμοι Οι παράλληλοι αλγόριθμοι μπορούν να ταξινομηθούν ανάλογα με το πως και που γίνεται ο παραλληλισμός. Κατηγορίες παράλληλων αλγορίθμων: Παραλληλισμός σε επίπεδο bits (Bit-level parallel approach). Παραλληλισμός σε επίπεδο εντολών (Control-parallel approach). Παραλληλισμός σε επίπεδο δεδομένων (Data-parallel approach). ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 5

Παραλληλισμός σε Επίπεδο Bits Bit-level parallelism: Παραλληλισμός αυξάνοντας το μέγεθος της πληροφορίας (word size), σε bits, που μπορεί να επεξεργαστεί ένας επεξεργαστής ανά κύκλο λειτουργίας. Αυξάνοντας το word size ελαττώνεται ο αριθμός των πράξεων που πρέπει να εκτελέσει ένας επεξεργαστής για μεταβλητές με μήκος μεγαλύτερο του word size. Παράδειγμα: πρόσθεση 2 16-bit ακεραίων σε 8-bit επεξεργαστή απαιτεί 2 πράξεις ενώ σε 16-bit επεξεργαστή 1. Ιστορικά: Για αρκετά χρόνια ήταν ο συνήθης τρόπος αύξησης της υπολογιστικής ισχύος: από 4-bit σε 8-bit, 16-bit και 32-bit επεξεργαστές. Οι τελευταίοι ήταν οι πιο συνηθισμένοι για περίπου 2 δεκαετίες. Πιο πρόσφατα (~2003) με την x86-64 αρχιτεκτονική 64-bit επεξεργαστές επικρατούν. Μέλλον: 128-bit επεξεργαστές; ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 6

Παραλληλισμός σε Επίπεδο Εντολών Control-level parallelism ή Παραλληλισμός Ελέγχου: Εφαρμογή διαφορετικών πράξεων σε διαφορετικά δεδομένα ταυτόχρονα. Γνωστός και ως σωλήνωση (pipelining). Κατάλληλος για MIMD συστήματα. Θεωρούμε ένα πρόβλημα ως σύνολο από διαφορετικές διεργασίες όπου η καθεμία μπορεί να ανατεθεί σε διαφορετικό επεξεργαστή. Παραδείγματα: Προσομοίωση ενός οικοσυστήματος: διαφορετικά είδη ζώων, φυτών, καιρός, κλπ. Κάθε υποσύστημα ανατίθεται σε διαφορετικό επεξεργαστή. Μοντελοποίηση αυτοκινήτου: τα διαφορετικά μέρη (μηχανή, σύστημα ψύξης, σύστημα θέρμανσης, κλπ.) κατανέμονται σε διαφορετικούς επεξεργαστές. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 7

Παραλληλισμός σε Επίπεδο Δεδομένων Data-level parallelism: Εφαρμογή ίδιων πράξεων σε διαφορετικά δεδομένα ταυτόχρονα. Η ίδια διαδικασία εκτελείται σε πολλά δεδομένα ταυτόχρονα. Αναφέρεται και ως Κατάτμηση Χωρίου (Domain Decomposition). Κατάλληλος για SIMD και MIMD συστήματα. Διαφορετικές περιοχές του χώρου ανατίθενται σε διαφορετικούς επεξεργαστές. Παραδείγματα: Κατανομή ενός πίνακα σε διαφορετικούς επεξεργαστές. Μοριακή Προσομοίωση: διαφορετικά μέρη του χωρίου κατανέμονται σε διαφορετικούς επεξεργαστές. Αναζήτηση στοιχείων σε μια βάση δεδομένων. πολλά άλλα. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 8

Παραλληλισμός σε Επίπεδο Δεδομένων Domain Decomposition : Ο πιο διαδεδομένος τρόπος παραλληλισμού πολύπλοκων επιστημονικών προβλημάτων. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 9

Παράδειγμα: Υπολογισμός του Αριθμού π Υπολογισμός του αριθμού π με την ακόλουθη μέθοδο: Περικλείουμε κύκλο με ένα τετράγωνο. Δημιουργούμε m τυχαία σημεία μέσα στο τετράγωνο. Βρίσκουμε τα σημεία που εμπεριέχονται και μέσα στον κύκλο, n. Αν r = n/m, τότε ο αριθμός π προσεγγίζεται ως π 4r. Όσο περισσότερα τα σημεία m τόσο μεγαλύτερη ακρίβεια του υπολογισμού. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 10

Σειριακός αλγόριθμος: Υπολογισμός του Αριθμού π npoints = 1000000 circle_count = 0 do j = 1, npoints generate 2 random numbers between 0 and 1 xcoordinate = random1 ycoordinate = random2 if (xcoordinate, ycoordinate) inside circle then circle_count = circle_count + 1 end do PI = 4.0*circle_count/npoints Ο χρόνος υπολογισμού είναι κυρίως ο χρόνος εκτέλεσης της επαναληπτικής διαδικασίας (loop). Αυτό οδηγεί σε (σχεδόν) τέλειο παραλληλισμό (embarrassingly parallelism): Εντατικοί υπολογισμοί. Ελάχιστη επικοινωνία, ελάχιστο Ι/Ο. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 11

Υπολογισμός του π: Παραλληλισμός Δεδομένων Ο παραλληλισμός αυτού του αλγόριθμου μπορεί να γίνει σε επίπεδο δεδομένων: αναθέτουμε σε κάθε επεξεργαστή μέρος της επαναληπτικής διαδικασίας. Κάθε επεξεργαστής εκτελεί το δικό του μέρος (task) του loop. Δεν χρειάζεται επικοινωνία μεταξύ των επεξεργαστών κατά τη διάρκεια εκτέλεσης της επαναληπτικής διαδικασίας. Χρησιμοποιούμε το μοντέλο «αφέντη/εργάτη» (master/slave). ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 12

Υπολογισμός του π: Παραλληλισμός Δεδομένων Παράλληλος αλγόριθμος (με κόκκινο οι αλλαγές): npoints = 1000000 circle_count = 0 p = number of tasks num = npoints/p do j = 1, num generate 2 random numbers between 0 and 1 xcoordinate = random1 ycoordinate = random2 if (xcoordinate, ycoordinate) inside circle then circle_count = circle_count + 1 end do find out if I am MASTER or WORKER if I am MASTER receive from WORKERS their circle_counts compute PI (use MASTER and WORKER calculations) else if I am WORKER send to MASTER circle_count end if ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 13

Παράδειγμα: Το Κόσκινο του Ερατοσθένη Αλγόριθμος εύρεσης πρώτων αριθμών (Sieve of Eratosthenes) Έστω ότι ζητάμε όλους τους πρώτους αριθμούς έως n. Ο αλγόριθμος προχωράει ως εξής: Ξεκινάμε με τον αριθμό 2. Αποκλείουμε-διαγράφουμε όλα τα πολλαπλάσιά του ως n. Ο επόμενος πρώτος μη-διαγραμμένος αριθμός είναι πρώτος. Συνεχίζουμε με τον επόμενο πρώτο μη-διαγραμμένο αριθμό (το 3) και αποκλείουμε όλα τα πολ/σια του. Επαναλαμβάνουμε την διαδικασία ως να φτάσουμε τον αριθμό n. Με τη διαδικασία αυτή βρίσκουμε όλα και λιγότερους αριθμούς προς διαγραφή. Όσοι απομένουν είναι οι πρώτοι αριθμοί. Δεν χρειάζεται να ελέγξουμε ως τον αριθμό n αλλά τον n 1/2. Γιατί; Σειριακή εκτέλεση Βασικά επαναλαμβανόμενα βήματα: (α) Βρίσκουμε τον επόμενο πρώτο. (β) Διαγράφουμε από την λίστα όλα τα πολλαπλάσιά του. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 14

Το Κόσκινο του Ερατοσθένη : Παραλληλισμός Ελέγχου Sieve of Eratosthenes A control parallel approach Κάθε επεξεργαστής δουλεύει (εκτελεί τα βήματα (α), (β)) σε διαφορετικό πρώτο αριθμό. Προβλήματα: 1. Σε ασύγχρονη επικοινωνία δύο επεξεργαστές μπορεί να δουλεύουν στον ίδιο πρώτο. 2. Μπορεί να εκτελούνται πράξεις που δεν χρειάζονται, π.χ. ο P1 βρίσκει αλλά δεν προλαβαίνει να διαγράψει τα πολ/σια του 2 ενώ ο P2 αφού τελειώνει με τον 3 βρίσκει ως επόμενο μη-διαγραμμένο αριθμό το 4! Χρόνος Υπολογισμού: Έστω ότι ο χρόνος υπολογισμού είναι μόνο ο χρόνος υπολογισμού πολ/σιων και διαγραφής-μαρκαρίσματος κάθε κελιού. Έστω n ακέραιοι αριθμοί με κ πρώτους (π 1, π 2, π κ ). Ο αριθμός των πράξεων (υπολογισμού πολ/σίων) είναι: 2 2 2 n+ 1 π 1 n+ 1 π 2 n + 1 π k Nπ = + +... + = N1+ N2 +... + N π π π 1 2 k π k ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 15

Το Κόσκινο του Ερατοσθένη : Παραλληλισμός Ελέγχου Χρόνος Υπολογισμού Έστω t 0 ο χρόνος μαρκαρίσματος κάθε κελιού. Τότε ο σειριακός χρόνος εκτέλεσης είναι: TS = Nt π 0 Μέγιστη παράλληλη επιτάχυνση: Όταν στέλνουμε όλους τους πρώτους σε διαφορετικούς επεξεργαστές. Τότε ο χρόνος υπολογισμού αντιστοιχεί στους (περισσότερους) υπολογισμούς του αριθμού 2. max n 3 TP lim TP = t P 2 0 Παράδειγμα: Έστω n=1000. Τότε Ν π =1411 και 1411 S max = 2.83 499 ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 16

Το Κόσκινο του Ερατοσθένη : Παραλληλισμός Δεδομένων Sieve of Eratosthenes A data parallel approach Όλοι οι επεξεργαστές δουλεύουν (εκτελούν τα βήματα (α), (β)) στον ίδιο πρώτο αριθμό. Έστω n ακέραιοι και σύστημα με P επεξεργαστές. Αναθέτουμε σε κάθε επεξεργαστή n/p ακέραιους. Θεωρούμε επίσης ότι Ρ<<n 1/2. Για σύστημα με κοινή μνήμη δεν υπάρχει κόστος επικοινωνίας. Για σύστημα με κατανεμημένη μνήμη υπάρχει κόστος επικοινωνίας. Αλγόριθμος: Όλοι οι πρώτοι αριθμοί είναι στον Ρ1. Ο Ρ1 βρίσκει τον επόμενο πρώτο, π κ, και στέλνει την τιμή του στους άλλους επεξεργαστές. Κατόπιν όλοι οι επεξεργαστές βρίσκουν πολλαπλάσια του π κ στο δικό τους υποσύνολο των n αριθμών. Η διαδικασία συνεχίζεται ως ότου ο Ρ1 βρει πρώτο αριθμό > n 1/2. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 17

Το Κόσκινο του Ερατοσθένη : Παραλληλισμός Δεδομένων Χρόνος Εκτέλεσης: Ο χρόνος εκτέλεσης του αλγόριθμου είναι ο χρόνος υπολογισμού (διαγραφής-μαρκαρίσματος κάθε κελιού) και ο χρόνος επικοινωνίας. Χρόνος Υπολογισμού: Ο χρόνος υπολογισμού, θεωρώντας t 0 το χρόνο μαρκαρίσματος ενός κελιού, είναι: T comp n/ P n/ P n/ P = + +... + π π π 1 2 k t 0 Επικοινωνία: ο Ρ1 στέλνει κάθε πρώτο αριθμό σε (Ρ-1) άλλους επεξεργαστές. Αν λ είναι ο χρόνος που χρειάζεται να στείλουμε έναν αριθμό, τότε ο συνολικός χρόνος επικοινωνίας για κ πρώτους αριθμούς είναι: T = kp ( 1) λ comm Προσοχή: ο χρόνος υπολογισμού μειώνεται όσο αυξάνει ο αριθμός των επεξεργαστών ενώ ο χρόνος επικοινωνίας αυξάνει. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 18

Σχεδιασμός Παράλληλων Αλγορίθμων Στόχος: ο σχεδιασμός και ο προγραμματισμός του βέλτιστου δυνατού παράλληλου αλγόριθμου. Πρώτο βήμα είναι πάντα η κατανόηση του προβλήματος και του σειριακού κώδικα, αν υπάρχει. Επιθυμητά χαρακτηριστικά: Η ελάχιστη δυνατή επικοινωνία, Επεκτασιμότητα, Τοπικότητα, Επιμεριστικότητα. Γενικές προσεγγίσεις: -- Επιμερισμός εντολών-διεργασιών Παραλληλισμός Ελέγχου -- Επιμερισμός χωρίου Παραλληλισμός Δεδομένων Πρέπει να λάβουμε υπ όψιν: -- Αριθμό διεργασιών αριθμό επεξεργαστών. -- Διεργασίες συγκρίσιμου μεγέθους. -- Πως αλλάζει το μέγεθος και ο αριθμός των διεργασιών με το μέγεθος του προβλήματος. Βασική Ερώτηση: Είναι ο παράλληλος αλγόριθμος μοναδικός; Αν όχι ποιες είναι οι εναλλακτικές λύσεις. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 19

Σχεδιασμός Παράλληλων Αλγορίθμων Επικοινωνία μεταξύ των επεξεργαστών: Εκτίμηση του κόστους επικοινωνίας: της αλληλεξάρτησης μεταξύ των διεργασιών. Σχεδιασμός της επικοινωνίας μεταξύ των διεργασιών: Πότε, Πως, Που και Τι θα σταλείληφθεί. Διαγράμματα επικοινωνίας-μεταφοράς δεδομένων. Όγκος των μεταφερόμενων πληροφοριών μεταξύ των επεξεργαστών. Καθορισμός του τρόπου επικοινωνίας: blocking vs. non-blocking. Τύποι επικοινωνίας: -- Τοπικά/Καθολικά. -- Δομημένα/Μη Δομημένα. -- Στατικά/Δυναμικά. -- Συγχρονισμένα/Ασύγχρονα. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 20

Τύποι-Σχήματα Επικοινωνίας Τοπική: η επικοινωνία επικεντρώνεται μεταξύ μικρού αριθμού διεργασιών. Καθολική: κάθε διεργασία επικοινωνεί με μεγάλο αριθμό διεργασιών. Δομημένη: η επικοινωνία ακολουθεί κάποια συγκεκριμένη δομή-τοπολογία, π.χ. δομή δέντρου, αστεριού, κλπ. Μη Δομημένη: η επικοινωνία δεν ακολουθεί κάποια συγκεκριμένη δομή-τοπολογία. Στατική: η επικοινωνία είναι σταθερή κατά τη διάρκεια εκτέλεσης του προγράμματος. Δυναμική: η επικοινωνία αλλάζει κατά τη διάρκεια εκτέλεσης του προγράμματος. Συγχρονισμένη: η αποστολή και λήψη των πληροφοριών-δεδομένων γίνεται ταυτόχρονα. Ασύγχρονη: η αποστολή και λήψη των πληροφοριών-δεδομένων είναι ανεξάρτητες μεταξύ τους. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 21

Σχεδίαση Επικοινωνίας Βασικές ερωτήσεις που τίθενται στη σχεδίαση της επικοινωνίας: Εκτελούν όλες οι διεργασίες ίδιας τάξης αριθμό εντολών επικοινωνίας; Υπάρχει διεργασία που επικοινωνεί με πολλές από (ή όλες) τις άλλες διεργασίες; Υπάρχει κίνδυνος συμφόρησης επικοινωνίας (bottleneck); Ποιος είναι ο βαθμός τοπικότητας του σχήματος επικοινωνίας; Είναι δυνατόν οι υπολογισμοί να γίνονται ταυτόχρονα με την επικοινωνία; Μπορούν πολλές διεργασίες να εκτελούνται ταυτόχρονα; ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 22

Βιβλιογραφία Parallel Programming, B. Wilkinson, M. Allen, Prentice Hall, 2nd Ed. 2005. Designing and Building Parallel Programs, Ian Foster, Addison-Wesley 1994. Parallel Computing: Theory and Practice, M. J. Quinn, McGraw-Hill, 1994. http://en.wikipedia.org/wiki/sieve_of_eratosthenes Parallel Scientific Computing in C++ and MPI, G. Karniadakis and R.M. Kirby II, Cambridge, 2003. ΕΜ 361: Παράλληλοι Υπολογισμοί 2010/11, Κεφάλαιο 4 23

Τέλος Ενότητας