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

Σχετικά έγγραφα
EM 361: Παράλληλοι Υπολογισμοί

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

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

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

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

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

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

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

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

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

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Θέματα Προγραμματισμού Η/Υ

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Σκοπός του μαθήματος. Αρχές Φυσικής Μοντελοποίησης

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

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

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

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

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

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

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Μοντελοποίηση προβληµάτων

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

Παραλληλισμός δεδομένων ή Φυσικός παραλληλισμός

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

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

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

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

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

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

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

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΑΕΠΠ Ερωτήσεις θεωρίας

Πρόβλημα 29 / σελίδα 28

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

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

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

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

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

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

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

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

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

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

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

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

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

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

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

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

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

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

Minimum Spanning Tree: Prim's Algorithm

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

Δομές Δεδομένων (Data Structures)

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

Αλγόριθμοι & Προγραμματισμός

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

Διάλεξη 5η: Εντολές Επανάληψης

Παρουσίαση 3ης Άσκησης

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Transcript:

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

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

Παραλληλισμός σε Επίπεδο 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 επεξεργαστές; Παράλληλοι Υπολογισμοί, Κεφάλαιο 4 3

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

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

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

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

Σειριακός αλγόριθμος: Υπολογισμός του Αριθμού π 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): Εντατικοί υπολογισμοί. Ελάχιστη επικοινωνία, ελάχιστο Ι/Ο. Παράλληλοι Υπολογισμοί, Κεφάλαιο 4 8

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

Υπολογισμός του π: Παραλληλισμός Δεδομένων Παράλληλος αλγόριθμος (με κόκκινο οι αλλαγές): 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 Παράλληλοι Υπολογισμοί, Κεφάλαιο 4 10

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

Το Κόσκινο του Ερατοσθένη : Παραλληλισμός Ελέγχου 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 Παράλληλοι Υπολογισμοί, Κεφάλαιο 4 12

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

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

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

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

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

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

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

Βιβλιογραφία 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. Παράλληλοι Υπολογισμοί, Κεφάλαιο 4 20