ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

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

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

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

Πολυπύρηνοι επεξεργαστές Multicore processors

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

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

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

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Κατανεμημένος και Παράλληλος Προγραμματισμός. Ύλη μαθήματος. Βιβλιογραφία Μαθήματος 2/27/2016

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Η ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ FLYNN!!! 1 ο ΕΠΑΛ ΡΟΔΟΥ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ!!!! Χατζηνικόλας Κώστας

Κεφάλαιο 1ο Πολυπρογραμματισμός Πολυδιεργασία Κατηγορίες Λειτουργικών Συστημάτων

Εισαγωγή. Λογισµικό & Προγραµµατισµός Συστηµάτων Υψηλής Επίδοσης

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

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

ΚΒΑΝΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

ΟΡΓΑΝΙΣΜΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Ενότητα 2 Εργαλεία για την αναζήτηση εργασίας: Το Βιογραφικό Σημείωμα

Instruction Execution Times

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

Αρχιτεκτονική Υπολογιστών. ηµήτρης Γκιζόπουλος Καθηγητής

(C) 2010 Pearson Education, Inc. All rights reserved.

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Συστήµατα Παράλληλης Επεξεργασίας

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΑρχιτεκτονικήΥπολογιστών. Ι (ένα) Δημήτρης Γκιζόπουλος. Καθηγητής

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

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

Αρχιτεκτονική Υπολογιστών Ι (ένα)

***Computer Organization & Design the Hardware/Software Interface, David Patterson & John Hennessy, Morgan Kaufmann Publishers, 4thed

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

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

The Simply Typed Lambda Calculus

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Παραλληλισμός σε επίπεδο εντολών

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

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

Chapter 4 ( ή 1 στο βιβλίο σας)

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

Περιεχόμενο μαθήματος

Minimum Spanning Tree: Prim's Algorithm

Παράλληλος Προγραμματισμός με OpenCL

Παράλληλοι υπολογιστές

Διαφορές single-processor αρχιτεκτονικών και SoCs

GPGPU. Grover. On Large Scale Simulation of Grover s Algorithm by Using GPGPU

Εισαγωγή Συμβόλαιο Μαθήματος

MPSoCs για εφαρμογές Video

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 4 η : Παράλληλος Προγραμματισμός. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ << ΜΕΛΕΤΗ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ CUDA ΚΑΙ ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΡΤΩΝ GPU ΤΗΣ NVIDIA >> Αρ. Μητρώου: 04/2519

The challenges of non-stable predicates

Παραλληλισμός Αλγορίθμων σε Κάρτες Γραφικών για Σχεδιασμό Κίνησης

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

ΥΠΟΛΟΓΙΣΤΙΚΗ ΧΗΜΕΙΑ ΜΕ ΕΦΑΡΜΟΓΕΣ ΣΕ ΜΟΡΙΑ, ΥΛΙΚΑ, ΠΕΡΙΒΑΛΛΟΝ. Ι ΑΣΚΟΝΤΕΣ: Μαρία Κανακίδου, Σταύρος Φαράντος, Γιώργος Φρουδάκης


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

Μεταπτυχιακή διατριβή. Ανδρέας Παπαευσταθίου

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

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

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

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

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

Finite Field Problems: Solutions

Υλοποίηση Mικροεπεξεργαστή MIPS -16

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

ΠΕΡΙΕΧΟΜΕΝΑ. Μάρκετινγκ Αθλητικών Τουριστικών Προορισμών 1

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

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

Assalamu `alaikum wr. wb.

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

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

Αρχιτεκτονικη υπολογιστων

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

HCI - Human Computer Interaction Σχεδιασμός Διεπαφής. ΓΤΠ 61 Βαµβακάρης Μιχάλης 09/12/07

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

Διονύσιος Σαλονικίδης. Μεταπτυχιακός Φοιτητής. Διπλωματική Εργασία. Επιβλέπων: Κωνσταντίνος Μαργαρίτης, Καθηγητής. Τμήμα Εφαρμοσμένης Πληροφορικής

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών week 5. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

ΠΛΕ-079. Διδάσκων: ΠΑΡΑΛΛΗΛΑ ΣΥΣΤΗΜΑΤΑ & ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Β. Δημακόπουλος. dimako@cs.uoi.gr

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

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

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία

ΕΙΣΑΓΩΓΗ στους Η/Υ. Δρ. Β Σγαρδώνη. Τμήμα Τεχνολογίας Αεροσκαφών ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ. Χειμερινό Εξάμηνο

MYE-023. Διδάσκων: ΠΑΡΑΛΛΗΛΑ ΣΥΣΤΗΜΑΤΑ & ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Β. Δημακόπουλος.

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Section 8.3 Trigonometric Equations

Διαχείριση και Επεξεργασία Μεγάλου Όγκου Δεδομένων 19/02/ / 43

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

MYE-023. Διδάσκων: ΠΑΡΑΛΛΗΛΑ ΣΥΣΤΗΜΑΤΑ & ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Β. Δημακόπουλος.

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

Transcript:

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

Εισαγωγή [1] Future computers of all sizes will embrace parallelism even more that they today those who understand applications, algorithms, and architectures will be prepared for this opportunity «Οι υπολογιστές όλων των μεγεθών θα ενσωματώσουν των παραλληλισμό ακόμα περισσότερο από ότι σήμερα αυτοί οι οποίοι κατανοούν από εφαρμογές, αλγόριθμούς και αρχιτεκτονικές θα βρεθούν προετοιμασμένοι γι αυτή την ευκαιρία.» [1] Computer Organization & Design the Hardware/Software Interface, David Patterson & John Hennessy, Morgan Kaufmann Publishers, 4 th ed. 2008. 2

Τι είναι Παράλληλη Επεξεργασία HWikipedia για το τι είναι Παράλληλη Επεξεργασία: Parallel processing in Humans: The ability of the brain to simultaneously process incoming stimuli. This becomes most important in vision, as the brain divides and conquers what it sees. It breaks up a scene into four components: color, motion, form, and depth. These are individually analysed and then compared to stored memories, which helps the brain identify what you are viewing. The brain then combines all of these into one image that you see and comprehend. This is a continual and seamless operation. Parallel Processing in Computers: Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently ("in parallel"). There are several different forms of parallel computing: bit-level, instruction level, data, and task parallelism. Parallelism has been employed for many years, mainly in high-performance computing, but interest in it has grown lately due to the physical constraints preventing frequency scaling. As power consumption (and consequently heat generation) by computers has become a concern in recent years, parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multicore processors. Note that parallel processing differs from multitasking, in which a single CPU executes several programs at once???. Parallel processing is also called parallel computing.

Παράλληλος Υπολογισμός - Παράλληλο Σύστημα Παράλληλος Υπολογισμός Παράλληλη υπολογισμός/επεξεργασία είναι η ταυτόχρονη πραγματοποίηση δύο ή περισσοτέρων διαφορετικών ροών εκτέλεσης κατά το ίδιο χρονικό διάστημα. Παράλληλο Σύστημα Παράλληλο σύστημα έχουμε όταν συνυπάρχουν πολλαπλά αντίτυπα μονάδων υλικού (Hardware) στο ίδιο υπολογιστικό σύστημα, τα οποία έχουν τη δυνατότητα να παράγουν έργο ταυτόχρονα. 4

Παράλληλοι Υπολογιστές/Παράλληλοι Επεξεργαστές Βασική ορολογία που συναντάται συχνά στην περιοχή της Παράλληλης Επεξεργασίας -Τι σημαίνουν οι όροι και τι εννοούμε - Το Υλικό The Hardware Παράλληλος Υπολογιστής Parallel Computer Παράλληλος Επεξεργαστής Parallel Processor Υπερυπολογιστής Supercomputer Πολυεπεξεργαστικό σύστημα Multiprocessor Πολυπύρηνος επεξεργαστής Multi-core Επεξεργαστής πολλαπλών Many-core Το Λογισμικό The Software Παράλληλος αλγόριθμος Parallel algorithm Παράλληλο πρόγραμμα Parallel program Παραλληλοποιητής Μεταφραστής Parallelizing Compiler 5

Μερικά Ιστορικά Στοιχεία Οι πρώτες ιδέες για single instruction multiple data (SIMD) υπολογιστές εντοπίζονται χρονολογικά στην κατασκευή του Illiac IV. Ο Iliiac IV ήταν ένα από τα πρώτα ερευνητικά παράλληλα συστήματα των supercomputer projects της δεκαετίας του 70. Το έργο άρχισε το 1965 και έτρεξε την πρώτη πραγματική εφαρμογή του το 1976 (έντεκα χρόνια!!!). Το σύστημα σχεδιάστηκε για να αποδίδει 1000MFLOPS και όταν ολοκληρώθηκε απέδιδε μόνο 15MFLOPS (δηλαδή μόνο το 1,5% του αρχικού σχεδιασμού!!!). Το κόστος αρχικής εκτίμησης για την κατασκευή του ήταν 8$ εκατομμύρια και ξεπέρασε τα 31$ εκατομμύρια το 1966, τελικά όμως κατασκευάστηκε μόνο το ένα τέταρτο!!! της αρχικά σχεδιασμένης μηχανής. Το σύστημα χρησιμοποιούσε 64 επεξεργαστές στα 13MHz και η συνολική του μνήμη ήταν 1ΜΒ!!!. 6

ILLIAC IV 7

ILLIAC IV computer system layout composite Photographer: Lee Jones; Date: July 13, 1972 8

Η Παράλληλη Επεξεργασία Σήμερα (1/4) Υλικό - Hardware Η πρόσκρουση στο φράγμα της μνήμης (memory wall) + στο φράγμα της ισχύος (power wall)... οδήγησαν στην επανάσταση των πολυπύρηνων επεξεργαστών (the multi-core revolution) Ο νόμος του Moore επαναδιατυπώνεται: Ο αριθμός των πυρήνων σε κάθε επεξεργαστή διπλασιάζεται περίπου κάθε δυο χρόνια (ενώ η ταχύτητα ρολογιού παραμένει σχεδόν σταθερή) 9

Η Παράλληλη Επεξεργασία Σήμερα (2/4) Λογισμικό - Software Αναζήτηση για νέα προγραμματιστικά μοντέλα. Νέες, ταυτόχρονες (concurrent) γλώσσες προγραμματισμού Παραλληλοποιητές Μεταφραστές Ετερογενή περιβάλλοντα: CPUs+GPUs Περιβάλλοντα κατανεμημένης επεξεργασίας: MPI, SDSM, PGAS. Πολυνηματισμός και Διεκπεραιωτική Μνήμη (transactional memory). 10

Η Παράλληλη Επεξεργασία Σήμερα (3/4) Εφαρμογές Από τον Υπολογισμό Υψηλών Επιδόσεων (HPC): Υπολογιστική Ρευστομηχανική (CFD) Περιβάλλον και Ενέργεια Υπολογιστική Χημεία Εξόρυξη Δεδομένων Παράλληλη Επεξεργασία Σημάτων Μοριακή Βιολογία... αλλά και: Βάσεις δεδομένων Γραφικά Εφαρμογές ενσωματωμένων συστημάτων Web 2.0 11

Οι Υπερυπολογιστές Σήμερα:(http://www.top500.org) TOP 5 Jaguar, USA Cores: 224,256 Roadrunner, USA Cores: 122,400 Kraken, USA Cores: 99,072 Jugene, Germany Cores: 65,536 Tianhe, China Η Παράλληλη Επεξεργασία Σήμερα(4/4) CPUs: 6,144 Intel GPUs: 5,120 AMD 12

Γενικά χαρακτηριστικά Αρχιτεκτονικών Παράλληλων Υπολογιστών Ταξινόμηση κατά Flynn Single Instruction Stream/Single Data Stream (SISD) a sequential computer. Multiple instruction Stream/Single Data Stream (MISD) unusual. Single Instruction Stream/Multiple Data Stream (SIMD) array processors. Multiple Instruction Stream/Multiple Data Stream (MIMD) multiple autonomous processors simultaneously executing different instructions on different data. 13

Single Instruction Single Data Stream (SISD) Το κλασικό ακολουθιακό υπολογιστικό σύστημα (ένας επεξεργαστής). Παράδειγμα Για τον υπολογισμό ενός αθροίσματος N = {1, 2,, n} σε μια ακολουθιακή μηχανή, ο επεξεργαστής χρειάζεται να προσπελάσει τη μνήμη του συστήματος n φορές, και να υλοποιήσει n-1 προσθέσεις σε (n-1)*t 0 χρόνο. t 0 είναι ο στοιχειώδεις χρόνος που απαιτείται για μια πρόσθεση a+a, όπου a= 1, 2,, n. 14

Multiple instruction/single Data Stream (MISD) Στις MISD μηχανές υπάρχουν N Processors και N Control Units και η ίδια κοινή μνήμη (Memory module). Εφαρμόζονται N Instruction Streams IS στο ίδιο Stream of Data Παράδειγμα Ο έλεγχος για το αν κάποιος αριθμός Ζ, είναι πρώτος. 15

Single Instruction/Multiple Data (SIMD) Στις SIMD μηχανές υπάρχουν πολλά ίδια επεξεργαστικά στοιχεία (N Processors), κάτω από τον έλεγχο μίας μονάδας ελέγχου (Control Unit). Οι επεξεργαστές λειτουργούν συγχρονισμένα κάτω από τον έλεγχο ενός κεντρικού ρολογιού (global clock). Παράδειγμα Πρόσθεση δύο πινάκων Α, Β. A+B=C 16

Multiple Instruction/Multiple Data (MIMD) (MIMD) Η ταξινόμηση κατά flynn ενός παράλληλου υπολογιστικού συστήματος, όπου πολλές λειτουργικές μονάδες (functional units) εκτελούν διαφορετικές λειτουργίες σε διαφορετικά δεδομένα (different operations on different data), κατά το ίδιο όμως χρονικό διάστημα. Ένα απτό παράδειγμα, αποτελεί ένα δίκτυο από σταθμούς εργασίας. 17

Απλή αναπαράσταση της κατά Flynn Ταξινόμησης 18

SIMD Multiprocessor Computers PE1 DS LM1 DS IS CU IS Program loaded from host PEn DS LMn DS SIMD Architecture 19

Παράδειγμα (1/6) Έστω ότι έχουμε να αθροίσουμε 100000 αριθμούς σε ένα SIMD σύστημα με 100 επεξεργαστικά στοιχεία (PE). Το πρώτο βήμα είναι να μοιράσουμε τους 100000 αριθμούς σε 100 ανεξάρτητες υποομάδες, μια υποομάδα ανά PE. Ο ένας από τους επεξεργαστές τοποθετεί κάθε ομάδα αριθμών στην τοπική μνήμη του κάθε PE. 20

Παράδειγμα (2/6) Αν οι 100000 αριθμοί είναι αρχικά τοποθετημένοι στον host i, στον πίνακα Α, ονομάζουμε A i τον πίνακα στην τοπική μνήμη του PE i στοιχείου και τοποθετούμε τους 1000 αριθμούς που του αντιστοιχούν στον τοπικό του πίνακα, A i. Το επόμενο βήμα είναι να υπολογίσουμε το άθροισμα για κάθε υποσύνολο αριθμών. Αυτό το βήμα, που είναι και το πρώτο κομμάτι του SIMD κώδικα, είναι απλά ένας βρόγχος (loop) τον οποίο κάθε PE θα πρέπει να εκτελέσει. «Διάβασε μια λέξη (τιμή) από την τοπική μνήμη και πρόσθεσε την σε μία τοπική μεταβλητή». 21

Παράδειγμα (3/6) sum = 0; for (i = 0; i < 1000; i = i + 1) /*loop over each array*/ sum = sum + A1[i];/*sum the local arrays*/ 22

Παράδειγμα (4/6) Το τελευταίο βήμα είναι η άθροιση των 100 επιμέρους μερικών αθροισμάτων. Κάθε μερικό άθροισμα βρίσκεται σε διαφορετική επεξεργαστική μονάδα. Έτσι, θα πρέπει να χρησιμοποιήσουμε το διασυνδετικό δίκτυο (ΔΔ) του συστήματος για να μετακινήσουμε τα μερικά αθροίσματα σε ένα από τα επεξεργαστικά στοιχεία του συστήματος, ώστε να εκτελεστεί ο υπολογισμός του τελικού αθροίσματος. Αντί όμως να στείλουμε τα μερικά αθροίσματα σε μία επεξεργαστική μονάδα υλοποιώντας τελικά ακολουθιακό τρόπο άθροισης, μοιράζουμε την διαδικασία αυτή μεταξύ των PE διαιρώντας κάθε φορά των αριθμό των εμπλεκομένων επεξεργαστικών στοιχείων δια δύο, PE/2. 23

Παράδειγμα (5/6) Έτσι με P n θα συμβολίσουμε τον αριθμό των PEs. Η send(x,y) θα υποθέσουμε ότι είναι μία συνάρτηση η οποία αναλαμβάνει να στείλει μέσω του ΔΔ στο PE x,(x=1,,n) την τιμή y, και receive(y) θα είναι μία άλλη συνάρτηση η οποία παραλαμβάνειαπότοδίκτυομίατιμή, από το PE y για το PE στο οποίο εκτελείται (PE x ). 24

Παράδειγμα (6/6) Συνάρτηση για τον υπολογισμό των επιμέρους αθροισμάτων limit = 100; /*100 execution units in SIMD*/ half = 0; repeat half = limit/2; /*send vs receive dividing line* if (Pn >= half && Pn < limit) send(pn%half,sum); if (Pn < half) sum = sum + receive(); limit = half; /*upper limit of senders*/ until (half == 1); /*exit with final sum*/ 25

Σχηματική αναπαράσταση μεταφοράς μερικών αθροισμάτων μεταξύ των PE του συστήματος Για σύστημα με 16 επεξεργαστικά στοιχεία 26

Trade-off Το βασικό trade-off στις SIMD μηχανές, είναι η απόδοση του επεξεργαστή σε σχέση με τον αριθμό των επεξεργαστών που διαθέτει το σύστημα. Για παράδειγμα η Connection Machine 2 (CM-2) διέθετε 65.536 single-bit-wide processors, ενώ ο Illiac IV διέθετε 64 επεξεργαστές των 64-bit. 27

MIMD Multiprocessor Systems I/O I/O CU1 CUn PU1 PUn DS DS Shared Memory MIMD Architecture 28

Παράδειγμα (1/4) Ας θεωρήσουμε το προηγούμενο παράδειγμα μας, της πρόσθεσης 100.000 αριθμών, καιαςυποθέσουμεότιθέλουμε να υλοποιήσουμε την πρόσθεση σε MIMD σύστημα με 10 επεξεργαστές. Το πρώτο βήμα πάλι είναι να διαχωριστούν οι 100.000 αριθμοί σε υποσύνολα του ιδίου πλήθους και να κατανεμηθούν στους 10 επεξεργαστές του συστήματος. Τώρα όμως δεν χρειάζεται να μεταφέρουμε τα δεδομένα μας μεταξύ των επεξεργαστών του συστήματος αφού οι MIMD μηχανές έχουν κοινή μνήμη. Απλά δίνουμε διαφορετική αρχική διεύθυνση μνήμης στους επιμέρους επεξεργαστές. 29

Παράδειγμα (2/4) Συμβολίζουμε ξανά με P n τον αριθμό των επεξεργαστών και τους αριθμούμε από 0 έως 9. Όλοι οι επεξεργαστές αρχίζουν την εκτέλεση του προγράμματος με την εκτέλεση του βρόχου (loop) που αθροίζει το σύνολο των αριθμών που αντιστοιχεί σε κάθε επεξεργαστή. 30

Παράδειγμα (3/4) sum[pn] = 0; for (i=10000*pn; i < 10000*(Pn+1); i = i +1) sum[pn] = sum[pn] + A1[i]; /*sum the assigned memory areas*/ 31

Παράδειγμα (4/4) half = 100; /*10 processors in single-bus MIMD*/ repeat synch(); /*wait for completion of parallel sums*/ half = half/2; /*dividing line of who sums*/ if (Pn <= half) sum[pn] = sum[pn] + sum[(2*pn)-1]; until (half == 1); /*exit with final sum in Sum[0]*/ 32