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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: ΥΛΟΠΟΙΗΣΗ ΑΛΓΟΡΙΘΜΩΝ ΠΡΟΒΛΕΠΤΙΚΟΥ ΕΛΕΓΧΟΥ ΜΕ ΠΕΡΙΟΡΙΣΜΟΥΣ ΣΕ ΣΥΣΤΟΙΧΙΑ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΠΑΔΟΠΟΥΛΟΣ ΣΠΥΡΟΣ AEM 4575 ΔΑΝΑΣ ΓΙΩΡΓΟΣ AEM 4584 Επιβλέπων: Γεώργιος Χασάπης Καθηγητής Θεσσαλονίκη 2007

2 2

3 Περιεχόμενα 1 Εισαγωγή Παράλληλη Επεξεργασία Δεδομένων Οι Έννοιες της σωλήνωσης. Του παραλληλισμού δεδομένων και του παραλληλισμου ελέγχου Παράλληλισμός δεδομένων Επιτάχυνση Παραλληλισμός ελέγχου Κλιμάκωση Ο νόμος του Amdhal Κατηγοριοποίηση Ψηφιακών Υπολογιστικών συστημάτων Πρότυπο SISD Πρότυπο SIMD Πρότυπο MIMD Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών Εισαγωγή Πολυεπεξεργαστές Πoλυεπεξεργαστές Οµοιόµορφης προσπέλασης Μνήµης Πoλυεπεξεργαστές μη Οµοιόµορφης προσπέλασης Μνήµης Πολυυπολογιστές Επικοινωνία Επεγεργαστών 27 4 MPC Μια κρίσιμη σύνθεση της θεωρίας και βιομηχανικών αναγκών Εισαγωγή Τι είναι το ΜPC Mια παραδοσιακή MPC διατύπωση Επεκτείνοντας τη παραδοσιακή διατύπωση του MPC MPC χωρίς περιορισμούς Σταθερότητα Τι είναι σταθερότητα Είναι σημαντική η σταθερότητα; Συμπεριφορά MPC συστημάτων Εφικτότητα της βελτιστοποίησης Μη γραμμικότητα Περιορισμοί (constraints) Θεωρία του MPC με προβλέψιμες ιδιότητες Σταθερότητα MPC με γραμμικό μοντέλο-μια πρωτότυπη απόδειξη σταθερότητας MPC με μη γραμμικό μοντέλο Μια πρωτότυπη απόδειξη σταθερότητας για το MPC με μη γραμμικό μοντέλο Συστοιχία υπολογιστών Εισαγωγή MPICH2 στα Windows XP MPICH2 στo Linux Εισαγωγή στο MPI MPI Χειριστές Επιστροφή λαθών 60 3

4 5.7 Συμβάσεις ονοματολογίας και Τύποι Δεδομένων του ΜΡΙ Αρχικοποίηση του MPI Τερματισμός του MPI H έννοια του communicator Τάξη διεργασίας και η συνάρτηση MPI comm. Rank H δομή του MPI στη C Προβλεπτικός έλεγχος Μοντέλο Προβλεπτικού Έλεγχου (ΜPC) Βήματα εκτέλεσης του αλγορίθμου Πολλαπλασιασμός πινάκων σε παραλληλία υπολογιστών 77 7 Αποτελέσματα και συμπεράσματα Εισαγωγή Εκτέλεση σε συστοιχία υπολογιστών Συμπεράσματα 86 Αναφορές. 87 4

5 Κεφάλαιο 1 Εισαγωγή Στόχος της διπλωματικής εργασίας είναι να δείξουμε πως ένα πρόβλημα μπορεί να παραλληλιστεί σε πολλούς υπολογιστές με κάποιες τεχνικές που συμβάλουν στην αποδοτική εκμετάλλευση των πόρων ενός παράλληλου υπολογιστικού συστήματος ώστε τα αποτελέσματα να είναι γρηγορότερα από ότι σε έναν απλό υπολογιστή. Θα χρησιμοποιήσουμε το μοντέλο CARIMA σε ένα ΜPC (Parallel Programming Environment) στο οποίο θα χρησιμοποιήσουμε και κάποιους περιορισμούς (constrain). Το όλο σύστημα θα λειτουργεί online, δηλαδή αν πάσα στιγμή θα δέχεται διαφορετικές τιμές και δεν θα παραμένει σταθερό (τέτοια συστήματα χρησιμοποιούνται σε βιομηχανίες). Επίσης θα δούμε πως μπορούμε να παραλληλίσουμε πολλούς υπολογιστές ώστε να φτιάξουμε ένα cluster για να μπορεί να εκτελεί παράλληλους υπολογισμούς. Στη συνέχεια θα κάνουμε μια περιγραφή στο MPI (Message Passing Interface) και τις βασικές συναρτήσεις επικοινωνίας κόμβου με κόμβου και συλλογικής επικοινωνίας και τέλος θα παρουσιάσουμε και θα αναλύσουμε τα αποτελέσματα που πήραμε από τον αλγόριθμο που αναπτύξαμε σε διάφορα πειράματα τα οποία πραγματοποιηθήκαν στον εργαστήριο αρχιτεκτονικής υπολογιστών Οι μεγάλες προκλήσεις του αιώνα μας όπως αποκαλούνται συνήθως τα σύγχρονα πολύπλοκα επιστημονικά προβλήματα, τα οποία αφορούν την ιατρική, την κβαντοχημεία, την αστροφυσική, την γενετική κ.α αντιμετωπίζονται σήμερα με αριθμητική προσομοίωση η οποία απαιτεί τεράστια υπολογιστική ισχύ. Τα τελευταία χρόνια παρατηρείται μια ραγδαία ανάπτυξη και εξάπλωση στον χώρο της παράλληλης επεξεργασίας στην προσπάθεια να επιταχυνθούν όσο το δυνατό περισσότερο και γρηγορότερα οι απαραίτητοι υπολογισμοί τέτοιων εφαρμογών. Μέχρι τα μέσα της δεκαετίας του 70 οι βασικές αρχιτεκτονικές πρόοδοι, όπως είναι η bit-παράλληλη μνήμη, η bit-παράλληλη αριθμητική, κρυφή μνήμη, οι δίαυλοι, η διαφυλλωμένη μνήμη, η σωλήνωση εντολών, οι πολλαπλές λειτουργικές μονάδες, οι σωληνωμένες λειτουργικές μονάδες είχαν είδη συμπεριληφθεί στους σχεδιασμούς υπερυπολογιστών. Έκτοτε αύξηση της απόδοσης επεξεργαστή σήμαινε μείωση χρόνου του κύκλου εντολής. Αυτό έγινε ιδιαίτερα δύσκολο, εφόσον η ταχύτητα των ηλεκτρονικών κυκλωμάτων περιορίζεται από την ταχύτητα του φωτός. [1] Κατ αντιδιαστολή οι πρώιμοι μικροϋπολογιστές, οι οποίοι δεν είχαν ενσωματώσει όλες τις αρχιτεκτονικές 5

6 προόδους στο σχεδιασμό τους, είχαν μεγάλα περιθώρια εξέλιξης, η οποία ανελικτικά οδήγησε σε εντυπωσιακές αποδόσεις αυτήν την κλάση των υπολογιστών. Η σύγκλιση στη σχετική απόδοση μεταξύ μικροϋπολογιστών και παραδοσιακών υπερυπολογιστών κατέληξε στην ανάπτυξηεμπορικά βιώσιμων παράλληλων υπολογιστών οι οποίοι αποτελούνται από δεκάδες ή και εκατοντάδων υπολογιστών και λέγονται μαζικά παράλληλοι. Με μια απλοϊκή προσέγγιση, θα μπορούσε κανείς να υποθέσει ότι όσο περισσότερες μονάδες επεξεργασίας είναι διαθέσιμες, τόσο πιο γρήγορα εκτελείται μια οποιαδήποτε απαιτητική εφαρμογή. Άρα, θα ήταν αρκετή η διάθεση τεράστιων υπερυπολογιστών, που θα επέλυαν το κάθε πρόβλημα σε κλάσματα του δευτερολέπτου. Στην πραγματικότητα όμως τα πράγματα είναι διαφορετικά. Ένας μεγάλος αριθμός των υπολογιστικά απαιτητικών εφαρμογών δεν εμφανίζει επιτάχυνση ανάλογη με την αύξηση των διαθέσιμων επεξεργαστών. Πιο απλά υπάρχει ένα όριο πέρα από το οποίο για κάθε πρόβλημα, η αύξηση του αριθμού των επεξεργαστικών μονάδων, όχι μόνο δεν επιταχύνει την επίλυση του, αλλά αντίθετα την καθυστερεί. Το όριο αυτό δεν εξαρτάται μόνο από την δυσκολία της κάθε εφαρμογής, αλλά κυρίως από τον τρόπο που αυτή έχει προγραμματιστεί να εκτελεστεί παράλληλα. Πολλοί παράγοντες συντελούν στη εμφάνιση αυτού του φαινομένου. Κάθε εφαρμογή, αποτελείται από μια σειρά υπολογισμών που πρέπει να γίνουν σε ένα αρκετά μεγάλο όγκο δεδομένων. Οι υπολογισμοί αυτοί, στην πλειοψηφία των περιπτώσεων, δεν είναι ανεξάρτητοι μεταξύ τους. [2] Υπάρχουν ενδιάμεσα αποτέλεσμα που λαμβάνονται υπόψη κατά τη διαδικασία της εκτέλεσης. Επομένως, δεν είναι εφικτή η διάσπαση του προβλήματος σε ανεξάρτητους υπολογισμούς, και μάλιστα τόσους όσους οι διαθέσιμοι επεξεργαστές. Ο προγραμματιστής, διαμερίζει το πρόβλημα και τα δεδομένα στους επεξεργαστές, όμως κατά την διάρκεια της εκτέλεσης οι επεξεργαστές καθυστερούν, γιατί πρέπει να αναμένει ένας ή και περισσότεροι επεξεργαστές, να ολοκληρώσει τους υπολογισμούς του κάποιος άλλος, για να παραλάβουν τα αποτελέσματα Όλα αυτά καθυστερούν σημαντικά την εκτέλεση μιας εφαρμογής. Στην περίπτωση που το πρόβλημα έχει διαμεριστεί με κακό τρόπο ή σε πολύ μεγάλο αριθμό επεξεργαστών, είναι πολύ πιθανό ο χρόνος αναμονής για ανταλλαγή δεδομένων και συγχρονισμό στην λειτουργία τους να είναι πολύ μεγαλύτερος από το όφελος της παράλληλες επεξεργασίας, και τελικά ο χρόνος παράλληλης εκτέλεσης να είναι μεγαλύτερος από ό,τι αν η εφαρμογή εκτελείτο σε έναν απλό υπολογιστή. Βλέπουμε λοιπόν, ότι δεν αρκεί να διαθέτει κανείς συστήματα τεράστιας υπολογιστικής ισχύος, προκειμένου να εκτελέσει ταχύτατα κάποια απαιτητική εφαρμογή. Απαιτείται προσεκτικός προγραμματισμός και σωστή διαμέριση της εφαρμογής, ώστε να γίνεται εκμετάλλευση των πόρων του υπερυπολογιστή και να επιταχύνεται η εκτέλεση. 6

7 Αφού γίνει η προσεκτική διαμέριση ενός προβλήματος, σε όσο το δυνατόν ανεξάρτητες ή χαλαρά συσχετιζόμενες παράλληλες διεργασίες, ακολουθεί η διαδικασία της χρονικής δρομολόγησης και της απεικόνισης των επιμέρους διεργασιών στους επεξεργαστές, έτσι ώστε ο συνολικός χρόνος εκτέλεσης να είναι ο μικρότερος δυνατός. Αυτό σημαίνει ότι η χρησιμοποίηση των επεξεργαστικών στοιχείων είναι όσο το δυνατό μεγαλύτερη, και οι καθυστερήσεις όσο το δυνατό μικρότερες. Για να γίνει κατανοητό αυτό ας υποθέσουμε ότι έχουμε δυο ίδιους επεξεργαστές και τρεις ισοδύναμες διεργασίες Α, Β και Γ με κόστος επεξεργασίας p χρονικές στιγμές η κάθε μια. Οι Β και Γ μπορούν να εκτελεστούν μετά το τέλος της Α, καθώς η Α τους αποστέλλει δεδομένα. Το κόστος επικοινωνίας των δυο διεργασιών (Α,Β) και (Α,Γ), όταν απεικονιστούν σε διαφορετικούς επεξεργαστές (καθυστερήσεις στο κανάλι μετάδοσης) είναι c. Είναι φανερό ότι αν αναθέσουμε τις δυο διεργασίες πχ Α και Β στον ένα επεξεργαστή και την Γ στον άλλο, ο συνολικός χρόνος είναι 2c+c. Τώρα αν ισχύει c > p είναι προτιμότερο να εκτελεστούν και οι τρεις από τον ίδιο επεξεργαστή (χρόνος 3p < 2p+c ) Τέλος αν επιτρέπεται και οι δυο επεξεργαστές να εκτελέσουν το ίδιο αντίγραφο της Α στην αρχή ο συνολικός χρόνος είναι 2p. Από τα παραπάνω είναι φανερό ότι ο τρόπος που θα γίνει η χρονική δρομολόγηση και η απεικόνιση των διεργασιών στους διαθέσιμους επεξεργαστές εξαρτάται κυρίως από την αρχιτεκτονική του παράλληλου υπολογιστή. Στην τεχνολογία των παράλληλων υπολογιστών, υπάρχουν διαφόρων ειδών αρχιτεκτονικές με ποικίλα λειτουργικά χαρακτηριστικά. Δεν αρκεί επομένως να υπολογίσει κανείς τη βέλτιστη χρονική και χωρική δρομολόγηση ενός αλγορίθμου, εξετάζοντας όλο τον εγγενή παραλληλισμό, αγνοώντας όμως το περιβάλλον εκτέλεσης. Πρέπει να εφαρμοστούν μέθοδοι απεικόνισης, οι οποίες λαμβάνουν υπόψη τις ιδιαιτερότητες, τα πλεονεκτήματα και τα μειονεκτήματα της συγκεκριμένης παράλληλης αρχιτεκτονικής, στην οποία αυτός θα εκτελεστεί. Οι κυριότερες παράμετροι που λαμβάνονται υπόψη είναι, ο αριθμός των διαθέσιμών επεξεργαστών, η τοπολογία του δικτύου διασύνδεσης τους, η ταχύτητα επικοινωνίας με τη μνήμη ( για υπολογιστές μοιραζόμενης μνήμης ) ή η ταχύτητα ανταλλαγής μηνυμάτων σε σχέση με την ταχύτητα επεξεργασίας κ.α. Σε κάθε περίπτωση, επιλέγεται η καλύτερη δυνατή μέθοδος δρομολόγησης και απεικόνισης με βάση τα συγκεκριμένα χαρακτηριστικά της εκάστοτε αρχιτεκτονικής. 7

8 Κεφάλαιο Οι Έννοιες της Σωλήνωσης. Του παραλληλισμού Δεδομένων και του παραλληλισμού Ελέγχου Η παράλληλη επεξεργασία αποβλέπει στον ταυτόχρονο χειρισμό δεδομένων, τα οποία ανήκουν σε µία ή περισσότερες διεργασίες οι οποίες λύνουν το ίδιο πρόβλημα, και επομένως στην επίτευξη της συνδρομικότητας (con-currency) σε έναν υπολογισμό, είτε στην αύξηση του αριθμού των λειτουργιών που εκτελούνται σε κάθε χρονική στιγμή. Η σωλήνωση όπως και ο παραλληλισμός δεδομένων επιτυγχάνουν την αύξηση της συνδρομικότητας σε έναν υπολογισμό. Σωληνωμένος υπολογισμός (pipelined computation) ή σωλήνωση. [3] Ένας σωληνωμένος υπολογισμός διαιρείται σε έναν αριθμό βημάτων τα οποία καλούνται στάδια (stages). Κάθε στάδιο αποτελεί ένα συγκεκριμένο τμήμα του υπολογισμού. Η έξοδος ενός σταδίου αποτελεί την είσοδο του επόμενου σταδίου. Αν θεωρήσουμε ότι κάθε στάδιο απαιτεί τον ίδιο χρόνο για να ολοκληρωθεί, τότε είναι εύκολο να παρατηρήσουμε ότι η βελτίωση του συνολικού χρόνου του υπολογισμού είναι ίση µε έναν πολλαπλασιαστικό παράγοντα που ισούται µε τον αριθμό των σταδίων της σωλήνωσης. Προκειμένου να γίνει καλύτερα κατανοητή η έννοια της σωλήνωσης, ας θεωρήσουμε το Σχήμα 2.1, το οποίο απεικονίζει τα συνήθη τέσσερα διαδοχικά στάδια σ1, σ2 σ3 σ4 διέλευσης μιας εντολής ε μέσα από έναν επεξεργαστή: Ε1 Ε2 Στάδια εντολής σ4 : εε ε1 ε2 σ3 : πτ ε1 ε2 σ2 : αε ε1 ε2 σ1 : πε ε1 ε2 ε ωρολογιακοί Παλμοί Σχήμα 2.1 Στο σ1 πραγματοποιείται η προσκόμιση της εντολής ε (πε), στο σ2 η αποκωδικοποίηση της ε (αε), στο σ3 η προσκόμιση του τελεστέου (πτ), και στο σ4 η εκτέλεση της ε (εε). Υποθέτοντας ότι τα χρονικά διαστήματα [I,i+1], i=0,1,2 είναι ίσα, στον παλμό 4 έχουμε την έξοδο Ε1 της πρώτης εντολής ε1 8

9 από τον επεξεργαστή, στον παλμό 8 έχουμε την έξοδο Ε2 της δεύτερης εντολής ε2, κ.ο.κ Αν η διέλευση των εντολών ε i, i=1,2 πραγματοποιείται από τον επεξεργαστή κατά το Σχήμα 2.2 ο επεξεργαστής χαρακτηρίζεται ως σωληνωμένος (pipelined), ενώ όλη η σχετική διεργασία ως σωλήνωση (pipelining). Ο χρόνος ολοκλήρωσης όλων των σταδίων μιας εντολής καλείται κύκλος εντολής (instruction cycle). Παρατηρούμε ότι στον παλμό 4 έχουμε την έξοδο Ε1 της πρώτης εντολής ε1 από τον επεξεργαστή, στον παλμό 5 έχουμε την έξοδο Ε2 της δεύτερης εντολής ε2, στον παλμό 6 έχουμε την έξοδο Ε3 της τρίτης εντολής ε3 κ.ο.κ. Γενικεύοντας, μετά τον παλμό 3 έχουμε σε κάθε παλμό την έξοδο μιας εντολής, είτε μετά τον πρώτο κύκλο μηχανής έχουμε την έξοδο τεσσάρων εντολών σε κάθε κύκλο μηχανής. Ε1 Ε2 Ε3 Ε4 Ε5 Στάδια εντολής σ4 : εε ε1 ε2 ε3 ε4 ε5 σ3 : πτ ε1 ε2 ε3 ε4 ε5 ε6 σ2 : αε ε1 ε2 ε3 ε4 ε5 ε6 ε7 σ1 : πε ε1 ε2 ε3 ε4 ε5 ε6 ε7 ε ωρολογιακοί παλμοί Σχήμα Παραλληλισμός δεδομένων (data parallelism). Είναι η χρήση πολλών λειτουργικών μονάδων προκειμένου να εφαρμοσθεί η ίδια λειτουργία ταυτόχρονα στα στοιχεία ενός συνόλου δεδομένων. Εάν υποθέσουμε ότι δεν υπάρχει επιβάρυνση (overhead) στην εκτέλεση των λειτουργιών που να συσχετίζεται µε την αύξηση των λειτουργικών μονάδων, τότε εάν ο αριθμός των λειτουργικών μονάδων αυξηθεί κατά έναν πολλαπλασιαστικό παράγοντα c, ο χρόνος ολοκλήρωσης των λειτουργιών αυξάνεται επίσης κατά έναν πολλαπλασιαστικό παράγοντα c. Προκειμένου να αντιδιαστείλουµε τις έννοιες της σωλήνωσης και του παραλληλισμού δεδομένων, υποθέτουμε τώρα ότι διαθέτουμε µία μηχανή µε π.χ. πέντε (µη σωληνωμένους) επεξεργαστές, τους ρ1, ρ2, ρ3, ρ4, ρ5, οι οποίοι εργάζονται παράλληλα προς επεξεργασία των ε,ί=1,2,... Επίσης, υποθέτουμε ότι οι εντολές ε, ί= 1,2,...μπορούν να εκτελεστούν παράλληλα (στην πραγματικότητα, αποτελούν την ίδια εντολή, η οποία εργάζεται σε διαφορετικά δεδομένα). Τότε, ανά κύκλο εντολής,ανά τέσσερις ωρολογιακούς παλμούς, θα έχουμε την έξοδο πέντε εντολών, µια από κάθε επεξεργαστή, κατά το Σχήμα

10 επεξεργαστές p5 E5 E10 E15 p4 E4 E9 E14 p3 E3 E8 E13 p2 E2 E7 E12 p1 E1 E6 E Επιτάχυνση (Speedup). Ως επιτάχυνση μιας μηχανής με ενσωματωμένη σωλήνωση ή παραλληλία, ας θεωρηθεί επί του παρόντος το κλάσμα με αριθμητή τον απαιτούμενο χρόνο εκτέλεσης ενός υπολογισμού από τον πλέον αποτελεσματικό ακολουθιακό αλγόριθμο, και παρονομαστή τον απαιτούμενο χρόνο εκτέλεσης του ίδιου υπολογισμού από την μηχανή με ενσωματωμένη σωλήνωση ή παραλληλία. Παρατηρούμε ότι, όσο μεγαλύτερη είναι η επιτάχυνση ενός παράλληλου ή σωληνωμένου υπολογισμού, τόσο μικρότερος είναι ο χρόνος εκτέλεσής του. Με βάση την προηγούμενη έννοια της επιτάχυνσης, η υπεροχή του παραλληλισμού δεδομένων σε σχέση με τη σωλήνωση είναι προφανής. Ωστόσο αυτός δεν είναι άνευ προβλημάτων, όσον αφορά τα αντίστοιχα υπολογιστικά συστήματα. Τα κυριότερα των προβλημάτων αυτών σχετίζονται με: τον τρόπο επικοινωνίας και συγχρονισμού των μονάδων επεξεργασίας τον έλεγχο ταυτόχρονης πρόσβασης στην κοινή μνήμη ή τις συσκευές εισόδου-εξόδου τον τρόπο ανάθεσης των προγραμμάτων στις μονάδες επεξεργασίας τον τρόπο περιγραφής παράλληλων προγραμμάτων τη διαδικασία ανάπτυξης και συντήρησης παράλληλου λογισμικού Πιθανοί συνδυασμοί σωλήνωσης και παραλληλισμού δεδομένων, προς επίτευξη μεγαλύτερης απόδοσης, παρουσιάζουν εξαιρετική πολυπλοκότητα, ιδιαίτερα καθώς διευρύνεται το πλήθος των επεξεργαστών Παραλληλισμός ελέγχου (control parallelism). Ενώ παραλληλισμός δεδομένων θεωρείται η εφαρμογή της ίδιας λειτουργίας ταυτόχρονα στα στοιχεία ενός συνόλου δεδομένων, ο παραλληλισμός ελέγχου επιτυγχάνεται µε την εφαρμογή διαφορετικών λειτουργιών σε διαφορετικά σύνολα δεδομένων ταυτόχρονα. Η ροή των δεδομένων μεταξύ των διεργασιών ενός αλγορίθμου παραλληλισμού ελέγχου μπορεί να είναι ιδιαιτέρως πολύπλοκη. Εάν ο κατευθυνόμενος γράφος της ροής δεδομένων (data-flow digraph) ενός τέτοιου υπολογισμού, είναι τόσο απλός ώστε να αποτελεί ένα κατευθυνόμενο μονοπάτι, τότε έχουμε ένα σωληνωμένο υπολογισμό. Επομένως, 10

11 η σωλήνωση μπορεί να θεωρηθεί ως ειδική περίπτωση του παραλληλισμού ελέγχου. Αξίζει να σημειωθεί ότι οι περισσότεροι παράλληλοι αλγόριθμοι, οι οποίοι επιλύουν σύνθετα προβλήματα, αξιοποιούν και τα δύο είδη παραλληλισμού, είτε τον παραλληλισμό δεδομένων και τον παραλληλισμό ελέγχου Κλιμάκωση (scalability). Η κλιμάκωση ως έννοια, εκφράζει τη σταδιακή επέκταση. Ένας αλγόριθμος είναι κλιμακώσιμος (scalable), αν το επίπεδο παραλληλισμού του αυξάνεται τουλάχιστον γραμμικά µε το μέγεθος του προβλήματος, το οποίο σχετίζεται µ' αυτόν. Μια αρχιτεκτονική είναι κλιμακώσιμη αν εξακολουθεί να συνεπάγεται την ίδια απόδοση ανά επεξεργαστή, καθώς αυξάνεται ο αριθμός των επεξεργαστών, μολονότι χρησιμοποιήθηκε σε μεγαλύτερου μεγέθους πρόβλημα. Η αλγοριθμική και η αρχιτεκτονική κλιμάκωση είναι σημαντικές, διότι επιτρέπουν στο χρήστη την επίλυση μεγαλύτερου μεγέθους προβλημάτων στον ίδιο χρόνο, δια της χρήσης ενός παράλληλου υπολογιστή µε περισσότερους επεξεργαστές. Οι αλγόριθμοι παραλληλισμού δεδομένων είναι πιο κλιμακώσιμοι από τους αλγορίθμους παραλληλισμού ελέγχου, διότι το επίπεδο του παραλληλισμού ελέγχου είναι συνήθως μια σταθερά, ανεξάρτητη του μεγέθους του προβλήματος, ενώ το επίπεδο παραλληλισμού δεδομένων είναι μια αύξουσα συνάρτηση του μεγέθους του προβλήματος. Ως θετική ή αρνητική κλιμάκωση χαρακτηρίζεται και η δυνατότητα αύξησης ή μείωσης αντίστοιχα των συστατικών ενός υπολογιστικού συστήματος, ανάλογα µε τις ανάγκες. Τέτοια κλιμακωτά συστήματα λειτουργούν ως σύνολα υπηρετών (servers), οι οποίοι εξυπηρετούν ειδικούς σκοπούς εντός της συνάθροισης "υλικό - λογισμικό - ανθρώπινο δυναμικό", ενώ ένας οποιοσδήποτε υπηρέτης μπορεί να είναι ο ίδιος ένας παράλληλος υπολογιστής. Στα συστήματα αυτά διακρίνονται: ο υπηρέτης υπολογισμών (compute server) ο υπηρέτης δεδομένων/αποθήκευσης (data/storage server) ο υπηρέτης πρόσβασης/επικοινωνίας (access/communication server) ο υπηρέτης ορατικοτήτας (visualization server: εξυπηρετεί οπτικές απεικονίσεις) Κλιμάκωση μπορεί να υφίσταται και στις παράλληλες ιδεατές μηχανές (parallel virtual machines), οι οποίες είναι σύνολα ετεροκλήτων υπολογιστικών συστημάτων, στα οποία επιτυγχάνεται παράλληλη λειτουργία µέσω ειδικού λογισμικού. 11

12 2.2 Ο Νόμος του Amdhal Πρόκειται περί ενός τρόπου έκφρασης της μέγιστης επιτάχυνσης, ως συνάρτησης του ποσού της παραλληλίας και του κλάσματος του υπολογισμού, ο οποίος είναι κληρονομικά ακολουθιακός. [4] 'Έστω f το κλάσμα των πράξεων ενός υπολογισμού, οι οποίες πρέπει να εκτελεστούν ακολουθιακά, όπου 0 f 1. Η μέγιστη επιτάχυνση S, η οποία επιτυγχάνεται από έναν παράλληλο υπολογιστή με p επεξεργαστές, ο οποίος εκτελεί τον υπολογισμό, είναι: 1 S f+(1-f)/p Στον προγραμματισμό, ο νόμος του Amdahl καθορίζει την ποσότητα της επιτάχυνσης, η οποία οφείλεται στον παραλληλισμό ακολουθιακών τμημάτων κώδικα. Δηλαδή, αν για ένα πρόγραμμα: Τ s, είναι ο χρόνος, ο οποίος απαιτείται, ώστε αυτό να τρέξει ακολουθιακά T p, είναι ο χρόνος, ο οποίος απαιτείται, ώστε αυτό να τρέξει παράλληλα t 5, είναι το ποσοστό του χρόνου, ο οποίος δαπανάται για το τρέξιμο εκείνων των τμημάτων του προγράμματος, τα οποία εκτελούνται ακολουθιακά t p, είναι το ποσοστό του χρόνου, ο οποίος δαπανάται για το τρέξιμο εκείνων των τμημάτων του προγράμματος, τα οποία εκτελούνται παράλληλα p, είναι ο αριθμός των επεξεργαστών ο νόμος του Amdahl παίρνει τη μορφή: S T 1 T t + t / p s = p s p Υπάρχουν διάφορες εκδοχές του νόμου του Amdahl στη βιβλιογραφία. Για παράδειγμα, είναι δυνατή η εξαγωγή ενός τύπου επιτάχυνσης, ο οποίος θα περιλαμβάνει την πιθανότητα να μην είναι εφικτή η χρήση p επεξεργαστών από ένα σύνολο προγραμμάτων. Πάντως, σ' όλες τις εκδοχές του, ο νόμος του Amdahl παρέχει τη δυνατότητα εκτίμησης ενός άνω φράγματος της επιτάχυνσης. Η ακόλουθη εφαρμογή είναι ενδεικτική της χρησιμότητάς του. 12

13 Υποθέτουμε ότι, χωρίς να επηρεάσουμε την απόδοση εισόδου - εξόδου, θα μπορούσαμε να βελτιώσουμε την ταχύτητα της κεντρικής μονάδας επεξεργασίας (cpu) της μηχανής μας κατά συντελεστή 5, με πενταπλάσιο κόστος. Υποθέτουμε επίσης, ότι η cpu χρησιμοποιείται κατά 50% του χρόνου, ενώ τον υπόλοιπο χρόνο αναμένει για είσοδο - έξοδο. Αν η cpu κοστίζει το 1/3 του ολικού κόστους του υπολογιστή, μας ενδιαφέρει να εξετάσουμε, από πλευράς κόστους/απόδοσης, αν η επένδυσή μας θα ήταν συμφέρουσα. Θα έχουμε ότι: 1 S = Η νέα μηχανή μας θα κόστιζε (2/3)1 +(1/3)5=2.33 φορές τη μηχανή που έχουμε. Εφόσον η αύξηση του κόστους είναι μεγαλύτερη της βελτίωσης απόδοσης, η επένδυσή μας δεν θα ήταν συμφέρουσα από πλευράς κόστους/απόδοσης. Στη βιβλιογραφία, υπάρχουν και επιχειρήματα κατά της αξίας του υψηλού επιπέδου παραλληλισμού. Για παράδειγμα, ο νόμος του Grosch ορίζει ότι η ταχύτητα των υπολογιστών είναι ανάλογη του τετραγώνου της τιμής τους. 'Όμως, η σύγχρονη έρευνα κόστους/απόδοσης υπολογιστικών συστημάτων φαίνεται να κατατείνει στο ότι, ο νόμος του Grosch, δεν ισχύει πλέον. 'Ενα άλλο επιχείρημα κατά του μαζικού παραλληλισμού είναι η εικασία του Minsky (Minsky's conjecture). Κατ' αυτήν, η επιτυγχανομένη επιτάχυνση από έναν παράλληλο υπολογιστή αυξάνεται σύμφωνα με το λογάριθμο του αριθμού των επεξεργαστικών στοιχείων, καθιστώντας έτσι τον ευρείας κλίμακας παραλληλισμό μη παραγωγικό. Αλλά και η εικασία του Minsky έχει διαψευσθεί μέσω πολλών παραδειγμάτων. 2.3 Kατηγοριοποίηση Ψηφιακών Υπολογιστικών. Συστηµάτων Πρότυπο SISD SISD (Single Instruction stream, Single Data stream): μοναδική ροή εντολών, μοναδική ροή δεδομένων)[5]. Στην κατηγορία αυτή ανήκουν οι μηχανές, καθεμιά των οποίων διαθέτει μια CpU (central processing unit: κεντρική μονάδα επεξεργασίας), η οποία λειτουργεί κατά το πρότυπο von Neumann. 13

14 Η οργάνωση ενός υπολογιστή SISD είναι η απεικονιζοµένη στο Σχήµα 2.3 is cu is pu ds mm Σχήμα 2.3 is: instruction stream - ροή εντολών ds: data stream - ροή δεδοµένων CU : control unit - μονάδα ελέγχου ρυ : processing unit - µονάδα επεξεpγασίας mm : memory module στοιχεία μνήμης Η οργάνωση αυτή παριστάνει τους πλείστους ακολουθιακούς (ή serial: σειριακούς) υπολογιστές, οι οποίοι είναι διαθέσιμοι σήμερα. Για τις μηχανές αυτές έχει αναπτυχθεί ένας αριθμός μηχανισμών παράλληλης επεξεργασίας, οι οποίοι εμπίπτουν στις ακόλουθες κατηγορίες: 1) Πολλαπλότητα λειτουργικών μονάδων. Για παράδειγμα, μια cpu μπορεί να έχει ενσωματωμένους περισσότερους από έναν περιφερειακούς επεξεργαστές μέσα σ' αυτήν, οι οποίοι αφ' εαυτών αποτελούν λειτουργικές μονάδες (functional units). Οι επεξεργαστές αυτοί είναι ανεξάρτητοι ο ένας από τον άλλο και μπορούν να λειτουργούν ταυτόχρονα. 2) Σωλήνωση. Αναφέρεται στις διάφορες φάσεις εκτέλεσης εντολών. Για παράδειγμα, ας θεωρήσουμε τη φάση προσκόμισης μιας εντολής και την αμέσως επόμενη φάση της αποκωδικοποίησης της. Τη χρονική στιγμή, κατά την οποία αποκωδικοποιείται έστω η εντολή µε αριθμό 2, προσκομίζεται η εντολή µε αριθμό 3. 3) Επικάλυψη λειτουργιών cpu και Ι/Ο (lnput / Output: Είσοδος / Έξοδος).Είναι δυνατόν δηλαδή κατά το χρόνο λειτουργίας της cpu να υφίσταται και Ι/Ο δεδομένων. 4) Χρήση ενός ιεραρχικού συστήματος μνήμης µε ενσωματωμένες περισσότερες της μιας λειτουργικές μονάδες μέσα σ' αυτό, όπως μονάδα πρόσθεσης, μονάδα διακλάδωσης, κ.λπ. Οι μονάδες αυτές είναι ανεξάρτητες η μια από την άλλη και μπορούν να λειτουργούν ταυτόχρονα. 14

15 5) Εξισορρόπηση (balancing) των ευρών ζώνης (bandwidths) των υποσυστημάτων. Ως εύρος ζώνης υποσυστήματος ορίζεται ο αριθμός των διενεργουμένων από αυτό διακεκριμένων λειτουργιών ανά μονάδα χρόνου. Στην περίπτωση µας, κατάλληλες ηλεκτρονικές διατάξεις, όπως πχ οι ελεγκτές (controllers), εξισορροπούν τις παράλληλες λειτουργίες των υποσυστημάτων, όπως π.χ. των ενταμιευτών (buffers) και των πολυπλεκτών (multiplexers). Η πλήρης εξισορρόπηση των ευρών ζώνης των υποσυστημάτων απαιτεί τρομακτική υποστήριξη από πλευράς και υλικού και λογισμικού και δεν υφίσταται σε κανέναν από τους υπάρχοντες υπολογιστές. 6) Πολυπρογραµµατισµός (multiprogramming) και διαµοιρασµός χρόνου (time sharing). Πρόκειται για μεθόδους επίτευξης παράλληλης επεξεργασίας σε ένα σύστημα SISD, µέσω λογισμικού. Η διαφύλλωση (interleaving: υπό την έννοια της διαπλοκής) των λειτουργιών της cpu µε τις λειτουργίες Ι/Ο μεταξύ περισσοτέρων του ενός προγραµµάτων καλείται πολυπρογραµµατισµός. Ο διαµοιρασµός χρόνου αναφέρεται στην κατανομή του χρόνου λειτουργίας της CpU μεταξύ περισσοτέρων του ενός προγραµµάτων. Με τον πολυπρογραµµατισµό και τον διαµοιρασµό χρόνου επιχειρείται ουσιαστικά η αριστοποίηση της εκμετάλλευσης των πόρων του υπολογιστικού συστήματος σε σχέση µε τις υπολογιστικές εργασίες οι οποίες του ανατίθενται Πρότυπο SIΜD SIMD (Single Instruction stream, Multiple Data stream: μοναδική ροή εντολών, πολλαπλή ροή δεδομένων). Σ' αυτήν την κατηγορία μηχανών, οι pu κάθε μηχανής εκτελούν συγχρονισμένα µία κοινή ακολουθία εντολών επί διαφορετικών δεδομένων. Οι μηχανές της κατηγορίας αυτής αποτελούν τους επεξεργαστές πίνακα (array processors). Ας σχεδιάσουμε ένα πρόγραμμα SIMD, ώστε να αντιληφθούμε το ύφος της αντίστοιχης αρχιτεκτονικής. 'Έστω ότι θέλουμε να αθροίσουμε αριθμούς σε έναν υπολογιστή SIMD με 100 μονάδες εκτέλεσης. Κατά πρώτον χωρίζουμε τους αριθμούς σε 100 χιλιάδες, μία χιλιάδα αριθμών για κάθε μονάδα εκτέλεσης. Στην cu υπάρχει η μνήμη ελέγχου (control memory) και ο επεξεργαστής ελέγχου (control processor), ο οποίος λέγεται και μετωπικός (front end processor). 'Ένας μονοδιάστατος πίνακας, έστω ο Α, περιέχει τους εντός της cu αριθμούς, τους οποίους ο μετωπικός επεξεργαστής κατανέμει, ανά 1000, στις 100 μονάδες εκτέλεσης. Τότε, κάθε μια από τις 100 μονάδες εκτέλεσης θα περιέχει 1000 αριθμούς, οι οποίοι έστω ότι εμπεριέχονται εντός 100 αντιστοίχων μονοδιάστατων πινάκων με κοινό όνομα Α1. 15

16 pu1 ds1 sm mm1 pu2 ds2 mm2 cu is : : : : dsn pun mmk is σχήμα 2.4 sm: shared memory διαμοιραζομένη μνήμη Στο Σχήµα 2.4 απεικονίζει την οργάνωση ενός υπολογιστή SIMD. Μια cu στέλνει µια is στις Ν το πλήθος pu, οι οποίες, µέσω των Ν το πλήθος ds, αλληλεπιδρούν µε τα Κ το πλήθος mm εντός της διαµοιραζόµενης µνήµης sm. Το πρώτο μέρος του κώδικα SIMD, το οποίο εκτελείται παράλληλα από όλες τις μονάδες εκτέλεσης, αποβλέπει στην εύρεση του μερικού αθροίσματος των αριθμών κάθε μονάδας εκτέλεσης, ως εξής: /* βρόχος, εκτελούμενος παράλληλα και από τις 100 μονάδες εκτέλεσης */ sum = Ο; for (i=0; ί<1000;++ί) sum=sum+a1[i}; /* από κάθε τοπικό Α1 θα παράγεται ένα μερικό άθροισμα, θα έχουμε δηλαδή συνολικώς 100 "πρώτα" μερικά αθροίσματα */ Απομένει η άθροιση των 100 μερικών αθροισμάτων, καθένα από τα οποία έχει προκόψει από την αντίστοιχη μονάδα εκτέλεσης. Η δυσκολία έγκειται στο γεγονός ότι, κάθε μερικό άθροισμα ευρίσκεται σε µία διαφορετική μονάδα εκτέλεσης. Ως εκ τούτου, πρέπει να χρησιµοποιήσουµε το δίκτυο διασύνδεσης των μονάδων εκτέλεσης, προς αποστολή και λήψη μερικών αθροισμάτων, ώστε να μπορέσουμε να σχηματίσουμε το τελικό άθροισμα. Αντί να στείλουμε όλα τα μερικά αθροίσματα σε ένα μοναδικό επεξεργαστή, οπότε θα καταλήγαμε σε ακολουθιακή άθροισή τους, χρησιµοποιούµε τη στρατηγική "διαίρει και βασίλευε" (divide to conquer: διαίρει για να κατακτήσεις). Κατά πρώτον, οι μισές από τις μονάδες εκτέλεσης στέλνουν τα μερικά τους αθροίσματα (τα "πρώτα") στις άλλες 16

17 μισές, και έτσι σχηματίζονται τα "δεύτερα" μερικά αθροίσµατα. Ύστερα, οι μισές των μισών από τις μονάδες εκτέλεσης στέλνουν τα "δεύτερα" μερικά τους αθροίσµατα στις άλλες μισές των μισών και έτσι σχη- µατίζονται τα "τρίτα" μερικά αθροίσµατα. Η διαδικασία αυτή συνεχίζεται, μέχρι να σχηματισθεί το τελικό άθροισµα. Έστω ότι: Pn αναπαριστά τον αριθμό της μονάδας εκτέλεσης send(x,y) είναι µία συνάρτηση, η οποία στέλνει δια του δικτύου διασύνδεσης στη μονάδα εκτέλεσης µε αριθμό χ, την τιμή Υ receive() είναι µια συνάρτηση, η οποία λαμβάνει µία τιμή από το δίκτυο διασύνδεσης γι' αυτή τη μονάδα εκτέλεσης Τότε, ο κώδικας SIMD για την άθροιση των κατανεµηµένων στις 100 μονάδες εκτέλεσης μερικών αθροισμάτων, θα είναι ο εξής: /* Κώδικας εκτελούμενος κατ' αρχήν παράλληλα και από τις 100 μονάδες εκτέλεσης. Ακολούθως, σε κάθε επανάληψη, ο αριθμός των μονάδων εκτέλεσης υποδιπλασιάζεται */ Jimit= 100; haif=100; /* 100 μονάδες εκτέλεσης στη μηχανή µας SIMD */ repeat haif=haif/2; /* διαχωριστική γραµµή αποστολής έναντι λήψης */ if ( Pn > = haif && Pn <Iimit) send(pn/2, sum); /* οι μισές μονάδες εκτέλεσης στέλνουν τιμές στις άλλες μισές *j if (Pn<ha/f) sum=sum+receive(); /* και οι άλλες μισές τις λαμβάνουν */ Iimit=haIf; /* άνω όριο αποστολέων */ untii (haif= = 1); /" πέρας διαδικασίας */ Το πλήρες πρόγραµµα SIMD αποτελείται από τα δύο προηγούµενα τµή- µατα κώδικα SIMD. Ο παράλληλος προγραµµατιστικός επαναληπτικός µηχανισµός repeat until έχει ενσωματωθεί ως επέκταση στη δημοφιλή γλώσσα προγραµµατισµού C, η οποία, εµπλουτισµένη και µε άλλους µηχανισµούς παράλληλης επεξεργασίας δεδομένων, καλείται τότε "παράλληλη C" (parallel C). Όμως, θα πρέπει να σημειωθεί ότι, η παράλληλη C διαφοροποιείται ανάλογα µε τα ειδικά χαρακτηριστικά κάθε παράλληλης μηχανής Πρότυπο ΜIΜD Η απεικόνιση βρόχων σε αρχιτεκτονικές MIMD κατανεµηµένης µνήµης παρουσιάζει διαφοροποιήσεις εξαιτίας του χαλαρότερου τρόπου διασύνδεσης και λειτουργίας των επεξεργαστών. Εδώ οι διαθέσιμοι επεξεργαστές είναι λιγότεροι από ότι στην αντίστοιχη κατηγορία των SIMD αλλά πιο σύνθετοι, 17

18 διαθέτουν πολύ περισσότερη µνήµη και υπολογιστική ισχύ, λειτουργούν ασύγχρονα και η συνδεσμολογία τους ποικίλει αρκετά. Ο παραλληλισμός εδώ είναι "χοντροκοµµένοι;" (coαrse grαined) σε αντίθεση µε τον παραλληλισμό των συστολικών διατάξεων και των μηχανών SIMD όπου ο παραλληλισμός είναι "ψιλοκοµµένο;" (jίne grαined). Εξ' αιτίας όμως της ασύγχρονη ς λειτουργίας τους και του χαλαρού δικτύου διασύνδεσή ς τους, το κόστος επικοινωνίας (συγχρονισμού, ανταλλαγής δεδομένων κ.λ.π.) μεταξύ διαφορετικών επεξεργαστών είναι υπολογίσιμο και δημιουργεί επιπλέον καθυστερήσεις στο συνολικό χρόνο εκτέλεσης. Οποιαδήποτε προσπάθεια απεικόνισης πρέπει να συνυπολογίζει το κόστος επικοινωνίας μαζί µε το κόστος επεξεργασίας σε κάθε επεξεργαστή, για τη συγκεκριμένη τοπολογία διασύνδεσης. Τα χαρακτηριστικά των πολυυπολογιστών είναι τα ακόλουθα: διαφορετικές μνήμες διαφορετικά λειτουργικά συστήματα εύκολος ο σχεδιασμός τους δύσκολος ο προγραμματισμός τους όχι συμβατικό λογισμικό η πολυπλοκότητα αφήνεται στο λογισμικό Μια μηχανή ΜΙΜD, όπως η απεικονιζόμενη στο Σχήμα 1.20, λέγεται σφιχτά συνδεδεμένο σύστημα πολλών επεξεργαστών (tightly coupied multiprocessor system) ή σφιχτά συνδεδεμένος πολυεπεξεργαστής (tightly coupled muitiprocesso r ) ή απλά πολυεπεξεργαστής (multiprocesso r ). Τα χαρακτηριστικά των πολυεπεξεργαστών είναι τα ακόλουθα: ενιαίος χώρος διευθύνσεων μνήμης ένα λειτουργικό σύστημα δύσκολος ο σχεδιασμός τους εύκολος ο προγραμματισμός τους συμβατικό λογισμικό η πολυπλοκότητα αφήνεται στο υλικό 18

19 Κεφάλαιο Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών Η χρήση πολλών επεξεργαστών, οι οποίοι συνυπάρχουν στο ίδιο υπολογιστικό σύστημα, εισάγει σ' αυτό επιπλέον χαρακτηριστικά και πολυπλοκότητα συγκριτικά προς ένα σύστημα με έναν επεξεργαστή (ακολουθιακός υπολογιστής). Αυτό είναι αναμενόμενο εφόσον, προκειμένου οι επεξεργαστές να είναι σε θέση να συνεργασθούν για την επίλυση του ίδιου υπολογιστικού προβλήματος, θα πρέπει να μπορούν να επικοινωνούν μεταξύ τους και να έχουν πρόσβαση ή, με άλλα λόγια, να μοιράζονται τα ίδια δεδομένα [6]. Από πλευράς αρχιτεκτονικής του παράλληλου υπολογιστικού συστήματος, υπάρχουν δύο προσεγγίσεις ικανοποίησης της προηγούμενης απαίτησης: (1) Η χρήση κοινής ή διαµοιραζόµενης µνήµης (shared memory). (2) Η επικοινωνία των επεξεργαστών μέσω περάσματος µηνύµατος (message passing). Οι παράλληλοι υπολογιστές, των οποίων οι αρχιτεκτονικές χαρακτηρίζονται από τη χρήση κοινής μνήμης, καλούνται συνήθως πολυεπεξεργαστές (mυltiprocessors). Οι πολυεπεξεργαστές αποτελούνται από έναν αριθμό πλήρως προγραμματιζόμενων (fully programmable) επεξεργαστών, κάθε ένας από τους οποίους μπορεί να εκτελεί το δικό του πρόγραμμα. 'Όλοι οι επεξεργαστές έχουν πρόσβαση στην ίδια κοινή μνήμη, που επιτρέπει την κοινή χρήση διαφόρων τιμών. Η κοινή μνήμη μπορεί να είναι ενιαία και η πρόσβαση σ' αυτήν να γίνεται μέσω ενός κοινού διαδρόμου (common bυs) ή να είναι χωρισμένη σε πολλές διαφορετικές ενότητες ή μονάδες µνήµης (memory modυles). Στη δεύτερη περίπτωση, οι επεξεργαστές έχουν πρόσβαση στις μονάδες κοινής μνήμης μέσω ενός δικτύου διασύνδεσης επεξεργαστή-μνήμης (processor-memory interconnection network). Οι παράλληλοι υπολογιστές, των οποίων οι αρχιτεκτονικές χαρακτηρίζονται από την επικοινωνία των επεξεργαστών µέσω περάσµατος µηνυµάτων, συνήθως καλούνται πολυυπολογιστές (mυlticompυters). Οι πολυυπολογιστές αποτελούνται από έναν αριθµό πλήρως προγραµµατιζόµενων επεξεργαστών, κάθε ένας από τους οποίους µπορεί να εκτελεί το δικό του πρόγραµµα και έχει τη δική του τοπική μνήμη (local 19

20 memory). Οι επεξεργαστές µοιράζονται δεδοµένα ανταλλάσσοντας µηνύµατα µέσω ενός δικτύου επικοινωνίας επεξεργαστή (processor commυnication network), το οποίο συνήθως καλείται δίκτυο διασύνδεσης (interconnection network). 3.2 Πολυεπεξεργαστές (Multiprοcessοrs) Οι πολυεπεξεργαστές [7] αποτελούνται από έναν αριθμό πλήρως προγραμματιζόμενων επεξεργαστών, οι οποίοι έχουν πρόσβαση στην ίδια κοινή μνήμη, και κάθε ένας από τους οποίους μπορεί να εκτελεί το δικό του πρόγραμμα. Οι πολυεπεξεργαστές χωρίζονται σε δύο κατηγορίες: στους πολυεπεξεργαστές Οµοιόµορφης Προσπέλασης Μνήμης (Uniform Memory Access - UMA), στους οποίους η κοινή μνήμη είναι επικεντρωμένη (centralized), με την έwοια ότι δεν είναι κατανεμημένη στους επεξεργαστές, και στους πολυεπεξεργαστές Μη Οµοιόµορφης Προσπέλασης Μνήμης (NonUniform Memory Access - NUMA), στους οποίους η κοινή μνήμη είναι κατανεμημένη στους επεξεργαστές Πoλυεπεξεργαστές Οµοιόµορφης προσπέλασης Μνήµης (UMA) 'Όλοι οι επεξεργαστές ενός πολυεπεξεργαστή ομοιόμορφης προσπέλασης μνήμης, έχουν πρόσβαση σε μία κεντρική κοινή μνήμη μέσω ενός κεντρικού μηχανισμού προσπέλασης μνήμης. Ανάλογα με τον τρόπο υλοποίησης αυτού. του κεντρικού μηχανισμού, οι πολυεπεξεργαστές UΜΑ μπορούν να χωρισθούν σε κατηγορίες. Μία τέτοια κατηγορία πολυεπεξεργαστών είναι εκείνοι, των οποίων όλοι οι επεξεργαστές έχουν πρόσβαση στην κεντρική μνήμη μέσω ενός και μοναδικού κοινού διαδρόμου (common bus) (Σχήμα 3.1) 20

21 Σχήμα 3.1 Οργάνωση Πολυεπεξεργαστή UMA με κοινό διάδρομο Ο κοινός διάδρομος αναλαμβάνει την εξυπηρέτηση ταυτόχρονων αιτήσεων διαφόρων επεξεργαστών για πρόσβαση στη μοναδική μονάδα κοινής μνήμης, ελαχιστοποιώντας το χρόνο αναμονής των επεξεργαστών. Όπως είναι φυσικό, το εύρος ζώνης του διαδρόμου (bus bandwidth) προσδιορίζει και το μέγιστο αριθμό των επεξεργαστών, που μπορούν να αποτελούν μέρος ενός πολυεπεξεργαστή και να χρησιμοποιούν την κοινή μνήμη του. 'Όπως στους ακολουθιακούς υπολογιστές, έτσι και στους παράλληλους, είναι πολύ σημαντικό η ταχύτητα της μνήμης να μην διαφέρει πολύ από την ταχύτητα των επεξεργαστών, προκειμένου να αποφεύγονται ανεπιθύμητες καθυστερήσεις, όταν οι επεξεργαστές προσπελάζουν τη μνήμη. Το ζήτημα αυτό αποκτά ιδιαίτερο ενδιαφέρον στην περίπτωση των πολυεπεξεργαστών, αφού όλοι οι επεξεργαστές ενός πολυεπεξεργαστή χρησιμοποιούν την ίδια μονάδα κοινής μνήμης. 'Όταν όλοι οι επεξεργαστές αιτούνται πρόσβαση στην κοινή μνήμη μέσα σε ένα μικρό χρονικό διάστημα, η μνήμη δεν μπορεί να ανταποκριθεί ταυτόχρονα σε όλες τις αιτήσεις, µε αποτέλεσμα, κάποιοι από τους επεξεργαστές να χρειασθεί να περιμένουν για να εξυπηρετηθούν. Το φαινόμενο αυτό καλείται ανταγωνισμός μνήμης (memory contention) και για την αντιμετώπιση του έχουν αναπτυχθεί διάφορες τεχνικές. Μία τέτοια τεχνική είναι η χρήση κρυφής μνήμης (cache memory) από κάθε επεξεργαστή (Σχήμα 3.2) 21

22 Σχήμα 3.2 Κρυφή μνήμη σε έναν πολυεπεξεργαστή UMA Στην περίπτωση χρήσης κοινής μνήμης, όταν κάποιος επεξεργαστής ρ αναφέρεται σε μια διεύθυνση μνήμης, η διεύθυνση αυτή αναζητείται πρώτα στην κρυφή μνήμη του επεξεργαστή ρ και, μόνον αν δεν βρεθεί εκεί, αναζητείται µέσω του κοινού διαδρόμου, στην κεντρική κοινή μνήμη. Όταν η συγκεκριμένη διεύθυνση δεν βρίσκεται στην κρυφή μνήμη του επεξεργαστή ρ, τότε το περιεχόμενο της αντίστοιχης θέσης της κοινής μνήμης αντιγράφεται στη κρυφή μνήμη του επεξεργαστή ρ, έτσι ώστε να είναι διαθέσιμη εκεί, για επόμενες αναφορές του ίδιου επεξεργαστή στην ίδια διεύθυνση. 'Ένα σημαντικό πρόβλημα, κατά τη χρήση κρυφής μνήμης σε έναν πολυεπεξεργαστή, παρουσιάζεται, όταν πολλαπλά αντίγραφα του περιεχομένου της ίδιας θέσης μνήμης εμφανίζονται στις κρυφές μνήμες διαφόρων επεξεργαστών. Για παράδειγμα, έστω ότι οι επεξεργαστές ρ1, ρ2 και ρ3 έχουν αντίγραφο της θέσης μνήμης Χ στην κρυφή μνήμη τους. Έστω επίσης ότι, κάποιος επεξεργαστής εκτελεί µία πράξη εγγραφής στη θέση Χ της κοινής μνήμης. Τότε, θα πρέπει να ενημερωθούν για την εγγραφή και οι θέσεις της κρυφής μνήμης των επεξεργαστών ρ1, ρ2 και ρ3 οι οποίες κρατούν αντίγραφα του περιεχομένου της θέσης μνήμης Χ. Το γενικότερο πρόβλημα της διαχείρισης πολλαπλών αντιγράφων του περιεχομένου της ίδιας θέσης μνήμης καλείται πρόβλημα συνέπειας κρυφής μνήμης (cache memory coherence problem). Μία ποικιλία τεχνικών έχουν αναπτυχθεί και υλοποιηθεί σε διάφορα συστήματα για την αντιμετώπιση αυτού Tου προβλήματος. Μία από τις τεχνικές, που έχουν αναπτυχθεί στους πολυεπεξεργαστές, είναι η τεχνική write-- through, η οποία είναι η εξής: Κάθε φορά που κάποιος επεξεργαστής εκτελεί µία πράξη εγγραφής (write operation), γίνεται μετάδοση (broadcast) της πράξης αυτής στον κοινό διάδροµο. Κάθε επεξεργαστής ελέγχει συνεχώς τον κοινό διάδρομο, προκειμένου να διαπιστώσει, αν κάποια θέση της δικιάς του κρυφής μνήμης κρατάει αντίγραφο θέσης της κοινής μνήμης, η οποία έχει ενημερωθεί. Στην περίπτωση που διαπιστωθεί κάτι τέτοιο, ο αντίστοιχος επεξεργαστής 22

23 ενημερώνει ανάλογα την αντίστοιχη θέση της κρυφής μνήμης του. Επομένως, όταν εκτελείται µία πράξη εγγραφής σε µία θέση Χ της κοινής μνήμης από οποιονδήποτε επεξεργαστή, ενημερώνονται άμεσα όλες οι κρυφές μνήμες, οι οποίες κρατούν αντίγραφα του περιεχομένου της θέσης Χ. Μία άλλη κατηγορία πολυεπεξεργαστών UΜΑ είναι οι πολυεπεξεργαστές, των οποίων η κοινή μνήμη είναι χωρισμένη σε πολλά τμήματα ή μονάδες μνήμης (memory modules), στις οποίες μπορούν να έχουν, παράλληλα, πρόσβαση διαφορετικοί επεξεργαστές. Σε εκείνα τα συστήματα, τα δεδομένα της κοινής μνήμης μοιράζονται σε διαφορετικές μονάδες μνήμης. Έτσι, μειώνεται η πιθανότητα ταυτόχρονης αίτησης πρόσβασης στην ίδια μονάδα μνήμης από διαφορετικούς επεξεργαστές και επομένως, μειώνεται η πιθανότητα να εμφανισθεί το φαινόμενο του ανταγωνισμού μνήμης. Στο Σχήμα 3.3 φαίνεται η βασική οργάνωση ενός πολυεπεξεργαστή UΜΑ µε διαφορετικές μονάδες κοινής μνήμης. Αν η κοινή μνήμη είναι χωρισμένη σε Μ μονάδες, κάθε ένας από τους Ν επεξεργαστές μπορεί να έχει πρόσβαση σε οποιαδήποτε από τις Μ μονάδες κοινής μνήμης, µέσω ενός δικτύου διασύνδεσης επεξεργαστών-μνήµης (processor-memory interconnection network). Το δίκτυο διασύνδεσης επιτρέπει την ταυτόχρονη πρόσβαση σε διαφορετικές μονάδες μνήμης, από διαφορετικούς επεξεργαστές. Το κόστος και η απόδοση ενός τέτοιου πολυεπεξεργαστή εξαρτάται άμεσα και από την τοπολογία και τις ιδιότητες του δικτύου διασύνδεσης. Συνήθεις τοπολογίες δικτύων διασύνδεσης που χρησιμοποιούνται, αποτελούν τοπολογίες γενικευμένου κύβου (π.χ., δίκτυο πεταλούδας, δίκτυο ανάμιξης-ανταλλαγής, δίκτυο omega). Θα πρέπει να τονιστεί ότι, οι πολλαπλές μονάδες κοινής μνήμης σχηματίζουν μαζί µία και μοναδική κοινή μνήμη, στην οποία έχουν πρόσβαση όλοι οι επεξεργαστές. Έτσι, υπάρχει ένας και μοναδικός χώρος διεύθυνσης μνήμης (memory address space), τον οποίο «βλέπουν» όλοι οι επεξεργαστές. Αυτές οι διευθύνσεις μνήμης είναι στην πραγματικότητα διασπαρμένες σε όλες τις μονάδες κοινής μνήμης, αλλά αυτό δεν είναι «ορατό» από τους επεξεργαστές. Κάθε αναφορά στη μνήμη, από κάποιον επεξεργαστή, διαβιβάζεται στο δίκτυο διασύνδεση; και δρομολογείται στη σωστή μονάδα κοινής μνήμης. 23

24 Σχήμα 3.3 Οργάνωση πολυεπεξεργαστή UMA με πολλές μονάδες κοινής μνήμης Χρησιμοποιώντας τις πολλαπλές μονάδες μνήμης, είναι δυνατή η ταυτόχρονη εξυπηρέτηση πολλών αιτήσεων πρόσβασης στην κοινή μνήμη, και µε αυτόν τον τρόπο μειώνεται η πιθανότητα του φαινόμενου του ανταγωνισμού μνήμης. Ωστόσο, το φαινόμενο του ανταγωνισμού μνήμης μπορεί να εμφανισθεί, στην περίπτωση που έχουμε συνωστισμό (congestion) στο δίκτυο διασύνδεσης, καθώς επίσης, και όταν πολλοί επεξεργαστές προσπαθούν να έχουν πρόσβαση στην ίδια μονάδα κοινής μνήμης την ίδια χρονική στιγμή. Για να αντιμετωπισθεί αυτή η τελευταία περίπτωση ανταγωνισμού μνήμης, οι διευθύνσεις μνήμης μοιράζονται στις μονάδες κοινής μνήμης κατά τρόπο τέτοιο, ώστε τουλάχιστον σε κάποιες εφαρμογές, να μειώνεται ο αριθμός των επεξεργαστών, που προσπαθούν ταυτόχρονα να έχουν πρόσβαση στην ίδια μονάδα μνήμης Πoλυεπεξεργαστές μη Οµοιόµορφης προσπέλασης Μνήµης (ΝUMA) 'Όπως οι πολυεπεξεργαστές UΜΑ έτσι και οι πολυεπεξεργαστές μη ομοιόμορφης προσπέλασης μνήμης (NUMA) χαρακτηρίζονται από κοινό χώρο διεύθυνσης (shared address space). Ωστόσο, στους πολυεπεξεργαστές NUMA κάθε επεξεργαστής έχει τη δική του τοπική μνήμη, στην οποία όμως μπορούν να έχουν «άμεσα» (μέσω ενός δικτύου διασύνδεσης) πρόσβαση όλοι οι άλλοι επεξεργαστές της μηχανής. Ο κοινός χώρος διεύθυνσης σχηματίζεται, συνδυάζοντας όλες τις τοπικές μνήμες των επεξεργαστών. Ο χρόνος πρόσβασης ενός επεξεργαστή σε μία θέση μνήμης εξαρτάται άμεσα, από το εάν η συγκεκριμένη θέση βρίσκεται στην τοπική μνήμη του επεξεργαστή. Δηλαδή, η πρόσβαση σε μία θέση της τοπικής μνήμης ενός επεξεργαστή είναι πολύ γρήγορη, διότι δεν απαιτείται διαμεσολάβηση του δικτύου διασύνδεσης, ενώ ο χρόνος πρόσβασης σε μία θέση μνήμης άλλου επεξεργαστή εξαρτάται από την 24

25 απόδοση του δικτύου, το οποίο διασυνδέει τους επεξεργαστές και τις μνήμες τους. Επομένως, η απόδοση ενός πολυεπεξεργαστή NUMA εξαρτάται από την τοπικότητα των δεδομένων (data locality). Με άλλα λόγια, μία εφαρμογή «τρέχει αργά» όταν πολλές αιτήσεις επεξεργαστών για προσβάσεις θέσεων μνήμης αφορούν μη τοπικές θέσεις μνήμης. 3.3 Πολυυπολογιστές (Multicomputers) Oι πολυυπολογιστές [8] είναι παράλληλες μηχανές, στις οποίες κάθε επεξεργαστής έχει τη δική του τοπική μνήμη, και δεν υπάρχει κοινή μνήμη, στην οποία έχουν πρόσβαση όλοι οι επεξεργαστές. Η επικοινωνία των επεξεργαστών γίνεται µε πέρασμα μηνύματος (message-passing) μεταξύ τους, µέσω ενός δικτύου διασύνδεσης. Οι πολυυπολογιστές χαρακτηρίζονται ως παράλληλοι υπολογιστές κατανεμημένης μνήμης (distributed memory paralle/ computers). Η γενική οργάνωση ενός πολυυπολογιστή φαίνεται στο Σχήµα 3.4 Ενώ, στους πολυεπεξεργαστές, τα δεδομένα, τα οποία χρησιµοποιούνται από µία εφαρμογή, είναι αποθηκευμένα στην κοινή μνήμη, και όλοι οι επεξεργαστές έχουν πρόσβαση σε αυτή, στους πολυυπολογιστές, τα δεδομένα είναι κατανεμημένα στις τοπικές μνήμες των επεξεργαστών. Κάθε επεξεργαστής δεν μπορεί να έχει πρόσβαση στην τοπική μνήμη άλλου επεξεργαστή, αλλά μπορεί να στέλνει ή και να παραλαμβάνει δεδομένα από άλλους επεξεργαστές, µέσω του δικτύου διασύνδεσης. Επειδή ο χρόνος πρόσβασης στην τοπική μνήμη κάποιου επεξεργαστή μπορεί να είναι τάξεις μεγέθους μικρότερος από το χρόνο καθυστέρησης του δικτύου (network deiay time), ο χρόνος εκτέλεσης ενός παράλληλου προγράμματος εξαρτάται άμεσα και σε μεγάλο βαθμό, από το πώς έχουν κατανεμηθεί τα δεδομένα του προγράμματος στις τοπικές μνήμες των διαφόρων επεξεργαστών. 25

26 Ε : Επεξεργαστής Μ : Μνήμη Σχήμα 3.4 Οργάνωση πολυυπολογιστή Ο προγραμματισμός των πολυεπεξεργαστών διαφέρει κατά πολύ από τον προγραμματισμό των πολυυπολογιστών, αφού τα πρότυπα παράλληλου υπολογιστή, τα οποία αντιστοιχούν στις δύο κατηγορίες μηχανών, είναι διαφορετικά. Στην περίπτωση των πολυεπεξεργαστών, το πρότυπο στηρίζεται κυρίως στο γεγονός ότι, πολλοί ανεξάρτητοι και όμοιοι επεξεργαστές έχουν πρόσβαση σε µία και μοναδική κοινή μνήμη, ενώ στην περίπτωση των πολυυπολογιστών, το αντίστοιχο πρότυπο στηρίζεται στο γεγονός ότι, κάθε ένας από τους επεξεργαστές της μηχανής έχει τη δική του τοπική μνήμη και η επικοινωνία μεταξύ των επεξεργαστών γίνεται µε πέρασμα μηνύματος. Μπορούμε να πούμε ότι, ο προγραμματισμός των πολυεπεξεργαστών είναι πιο εύκολος από τον προγραμματισμό των πολυυπολογιστών, διότι έχει περισσότερα κοινά στοιχεία µε τον προγραμματισμό των ακολουθιακών υπολογιστών, από όσα έχει ο προγραμματισμός των πολυυπολογιστών. Ο προγραμματισμός των πολυυπολογιστών είναι περισσότερο σύνθετος, διότι το παράλληλο πρόγραμμα πρέπει να προσδιορίζει το πότε και μεταξύ ποιών επεξεργαστών γίνεται το πέρασμα μηνύματος. Επιπλέον, στο σχεδιασμό ενός προγράμματος πολυυπολογιστή πρέπει να λαμβάνεται υπόψη η τοπολογία του δικτύου διασύνδεσης των επεξεργαστών 26

27 3.3.1 Επικοινωνία Επεξεργαστών Όπως αναφέρθηκε προηγουμένως, κάθε επεξεργαστής ενός πολυυπολογιστή έχει τη δική του μονάδα τοπικής μνήμης για την αποθήκευση του κώδικα του προγράμματος και των δεδομένων. Το ζεύγος επεξεργαστής μνήμη σχηματίζει ένα μικρό αυτοδύναμο υπολογιστή, του οποίου η δραστηριότητα μοιάζει µε αυτήν ενός ακολουθιακού υπολογιστή. Ο επεξεργαστής εκτελεί µία σειρά από εντολές, όπως αυτές προσδιορίζονται στον κώδικα του προγράμματος, το οποίο είναι αποθηκευμένο στην τοπική μνήμη του επεξεργαστή. Κάποιες από τις εντολές αυτές, μπορεί να είναι εντολές ανάγνωσης ή εγγραφής τιμών στις θέσεις μνήμης. Κανένας επεξεργαστής δεν μπορεί να έχει άμεση πρόσβαση στην τοπική μνήμη άλλου επεξεργαστή. Εάν κάποιος επεξεργαστής ρ επιθυμεί να χρησιμοποιήσει δεδομένα, τα οποία είναι αποθηκευμένα στην τοπική μνήμη ενός άλλου επεξεργαστή ρ', τότε ο ρ' θα πρέπει να διαβάσει τα δεδομένα από την τοπική του μνήμη και να τα στείλει, ως μήνυμα, στον επεξεργαστή ρ. 'Έτσι, προκειμένου όλα τα ζεύγη επεξεργαστή - μνήμης ενός πολυυπολογιστή να είναι σε θέση να συνεργάζονται για την επίλυση του ίδιου υπολογιστικού προβλήματος, θα πρέπει να μπορούν να επικοινωνούν και να ανταλλάσσουν δεδομένα κατά τη διάρκεια του υπολογισμού. Αυτό επιτυγχάνεται µε τη βοήθεια του δικτύου διασύνδεσης, το οποίο επιτρέπει στα δεδομένα να μεταφέρονται από κάποιον επεξεργαστή σε οποιονδήποτε άλλον επεξεργαστή. Το βασικό δομικό στοιχείο ενός πολυυπολογιστή είναι ένας άμεσος σύνδεσμος επικοινωνίας (direct communication link) μεταξύ δύο επεξεργαστών, όπως φαίνεται στο Σχήµα 3.5. Κάθε ζεύγος επεξεργαστή - μνήμης έχει τη δική του διαπροσωπεία επικοινωνίας (communication interface), η οποία είναι υλικό (hardware), που αναλαμβάνει το έργο της παραλαβής και αποστολής μηνυμάτων µέσω του συνδέσμου επικοινωνίας. Η λειτουργικότητα της διαπροσωπείας επικοινωνίας είναι παρόμοια µε αυτήν της διαπροσωπείας εισόδου/εξόδου (Ι/ο interface) ενός ακολουθιακού υπολογιστή. Η διαπροσωπεία εισόδου/εξόδου παραλαμβάνει εντολές εισόδου ή εξόδου από τον επεξεργαστή, τις προωθεί στην κατάλληλη συσκευή (π.χ., στον εκτυπωτή) και η συσκευή αυτή αναλαμβάνει την διεκπεραίωση των εντολών. Με αυτόν τον τρόπο, ο επεξεργαστής δεν ασχολείται µε τον έλεγχο της συσκευής εισόδου ή εξόδου και μπορεί να συνεχίσει τον υπολογισμό, ενώ διενεργείται είσοδος ή έξοδος στο σύστημα µέσω της διαπροσωπείας εισόδου/εξόδου. Συχνά, η διαπροσωπεία εισόδου/εξόδου έχει τη δυνατότητα Άμεσης Προσπέλασης Μνήµης (Direct Memory Access - DΜΑ), είτε μπορεί να γράφει και να διαβάζει δεδομένα, κατευθείαν από τη μνήμη, χωρίς τη διαμεσολάβηση του επεξεργαστή. Η μόνη διαφορά της διαπροσωπείας επικοινωνίας από τη διαπροσωπεία εισόδου/εξόδου είναι ότι, τα δεδομένα προωθούνται, µέσω του συνδέσμου επικοινωνίας, στη διαπροσωπεία επικοινωνίας του κατάλληλου επεξεργαστή, αντί να προωθούνται σε µία συσκευή εισόδου ή εξόδου. 27

28 Σχήμα 3.5 Επικοινωνία μεταξύ επεξεργαστών Η βασική μονάδα επικοινωνίας είναι το πακέτο μηνύματος. Τα δεδομένα ενός μηνύματος ομαδοποιούνται σε ένα πακέτο, στην αρχή του οποίου υπάρχει μια επικεφαλίδα και στη συνέχεια έπονται τα δεδομένα του μηνύματος ( Σχήμα 3.6 ). Η επικεφαλίδα (header) συνήθως περιλαμβάνει τα εξής πεδία : τον αριθμό του επεξεργαστή προορισμού, το μήκος του μηνύματος, τον αριθμό αναγνώρισης μηνύματος και τέλος, ένα πεδίο συνολικού ελέγχου. Εάν συμβεί κάποιο λάθος κατά τη μεταφορά ενός μηνύματος το οποίο μπορεί να οφείλεται, για παράδειγμα στο θόρυβο των ηλεκτρονικών μέσων των συνδέσμων επικοινωνίας, τότε ο παραλήπτης ζητά και πάλι την αποστολή του μηνύματος. Σχήμα 3.6 Η γενική μορφή ενός πακέτου Όταν κάποια διαπροσωπεία επικοινωνίας παραλαμβάνει κάποιο πακέτο, εξετάζει τον αριθμό του επεξεργαστή, για τον οποίο προορίζεται το μήνυμα. Κάθε διαπροσωπεία επικοινωνίας γνωρίζει τον αριθμό του δικού της επεξεργαστή, καθώς επίσης και τη θέση του στο δίκτυο σε σχέση με τους 28

29 αριθμούς των άλλων επεξεργαστών. Αν κάποιο μήνυμα προορίζεται για τον επεξεργαστή της διαπροσωπείας επικοινωνίας που το παρέλαβε, τότε η διαπροσωπεία αποθηκεύει το μήνυμα αυτό και στέλνει ένα ειδικό μήνυμα στον επεξεργαστή, για να τον ενημερώσει ότι, το μήνυμα παρελήφθη. Αν το μήνυμα κατευ-θύνεται σε κάποιον άλλον επεξεργαστή, τότε η διαπροσωπεία επικοινωνίας επιλέγει έναν από τους συνδέσμους επικοινωνίας που πρόσκεινται σε αυτήν, προκειμένου να προωθήσει το μήνυμα σε μια γειτονική της διαπροσωπεία. Γνωρίζοντας τη θέση της στο δίκτυο και τον αριθμό του επεξεργαστή προορισμού η διαπροσωπεία επικοινωνίας θα επιλέξει την κατάλληλη γειτονική διαπροσωπεία επικοινωνίας, έτσι ώστε το μήνυμα να προωθηθεί στη σωστή κατεύθυνση προορισμού του. Η επιλογή της κατάλληλης γειτονικής διαπροσωπείας επικοινωνίας και γενικεύοντας, των κατάλληλων μονοπατιών για την προώθηση των μηνυμάτων μεταξύ απομακρυσμένων επεξεργαστών, γίνεται με τη βοήθεια ειδικών αλγορίθμων δρομολόγησης. Ο αλγόριθμος δρομολόγησης και η μέθοδος προώθησης μηνυμάτων διαφέρει από σύστημα σε σύστημα. Μια σημαντική διαφορά μεταξύ των παλαιοτέρων και των σύγχρονων πολυυπολογιστών έγκειται στον τρόπο επικοινωνίας των επεξεργαστών τους. Σύμφωνα λοιπόν με αυτήν την μέθοδο, προκειμένου να σταλεί ένα μήνυμα από έναν επεξεργαστή ρ σε έναν άλλο μη γειτονικό του επεξεργαστή ρ, κάθε ενδιάμεσος επεξεργαστής στο μονοπάτι, από το ρ στον ρ, θα πρέπει να αποθηκεύσει ολόκληρο το μήνυμα και κατόπιν να το προωθήσει στον επόμενο του επεξεργαστή 29

30 Κεφάλαιο 4 MPC: Μια κρίσιμη σύνθεση της θεωρίας και βιομηχανικών αναγκών 4.1) Εισαγωγή Τις τελευταίες δεκαετίες έχει παρατηρηθεί μια σταθερή αύξηση στη χρήση Η/Υ για τον εξελιγμένο έλεγχο εργοστασίων. Αιτία για αυτή την εξέλιξη είναι η συνεχείς βελτιώσεις στον τομέα hardware των Η/Υ συνδυασμένη με το σκληρό διακρατικό και εγχώριο ανταγωνισμό και τις ρυθμίσεις των κυβερνήσεων. Με παραπάνω από 2000 βιομηχανικές εγκαταστάσεις το MPC αυτή τη στιγμή είναι ο έλεγχος εξελιγμένης εκτέλεσης, τεχνολογίας που χρησιμοποιείται ευρύτατα για τα εργοστάσια παραγωγής. Αντίθετα με πολλές άλλες τεχνολογικές ανακαλύψεις, το MPC πρωτοχρησιμοποιήθηκε στη βιομηχανία με τη χρήση διαφόρων ειδών προσχημάτων και ονομάτων πολύ πριν βγουν οι θεωρητικές ιδιότητες στην επιφάνεια. Η κατανόηση των ιδιοτήτων του MPC που ξεκίνησε από ακαδημαϊκές έρευνες έθεσε τα θεμέλια για τη δημιουργία ενός ισχυρού θεωρητικού και πρακτικού «σκελετού» τόσο για τους θεωρητικούς όσο και για τους πρακτικούς. Ενώ υπάρχουν πολλά θέματα σε αυτό το «σκελετό» που ακόμα παραμένουν «ανοιχτά», υπάρχει ένα ισχυρό θεμέλιο. Πιο συγκεκριμένα, σημαντικά πρακτικά θέματα, όπως είναι η αποτελεσματικότητα και η ικανότητα διαφόρων αριθμητικών αλγορίθμων που χρησιμοποιούνται για τη λύση των online optimization problem,ανθρώπινων λαθών, για την ανίχνευση και διάγνωση και για τον προγραμματισμό του περιβάλλοντος για την εκτέλεση του MPC αναφέρονται ελάχιστα και μόνο σε μερικές περιπτώσεις αναλύονται τα αρνητικά για τις θεωρητικά προσδοκώμενες ιδιότητες του MPC [9]. 30

31 4.2) Τι είναι το MPC Ενώ το παράδειγμα του MPC περικλείει αρκετές διαφορετικές παραλλαγές, καθεμία με τα δικά της ξεχωριστά χαρακτηριστικά, όλα τα συστήματα MPC βασίζονται στην ιδέα της «γέννησης» αξιών που αφορούν τις μεθόδους εισόδων (process inputs) που θα χρησιμοποιηθούν ως λύσεις για το πρόβλημα βελτιστοποίησης. Αυτό το πρόβλημα στηρίζεται στη βάση ενός μοντέλου(process model) και στη βάση μεθόδων καταμέτρησης(process measurement).οι μέθοδοι καταμέτρησης παρέχουν το στοιχείο τροφοδοσίας (και προαιρετικά ανατροφοδοσίας) στη δομή του MPC. Η εικόνα 1 δείχνει τη δομή ενός τυπικού συστήματος MPC. Η εικόνα 1 αποδεικνύει ότι υπάρχουν πολλές πιθανότητες για τα παρακάτω: * Ιnput-output μοντέλο * Πρόληψη διαταραχών * Καταμέτρηση * περιορισμoi,και * περίοδος ερευνών/δειγματοληψίας(πόσο συχνά λύνεται το online πρόβλημα βελτιστοποίησης (online optimization problem). Ανεξάρτητα από την ιδιαίτερη επιλογή που γίνεται για τα παρακάτω στοιχεία, η βελτιστοποίηση είναι ο πιο κοινός κρίκος που τα συνδέει μεταξύ τους. Πράγματι, οι πιθανότητες για την είναι πολυπληθείς. H εικόνα 1 αποδεικνύει επίσης ότι η συμπεριφορά ενός συστήματος MPC μπορεί να είναι αρκετά πολύπλοκη, επειδή η ενέργεια ελέγχου (control action) είναι καθορισμένη ως αποτέλεσμα του προβλήματος της βελτιστοποίησης. Ενώ το προαίσθημα των μηχανικών μπορεί να χρησιμοποιείται συχνά στην ανάλυση της συμπεριφοράς ή του σχεδιασμού των συστημάτων MPC, η θεωρία μπορεί να παρέχει πολύτιμη βοήθεια. Η θεωρία μπορεί να βελτιώσει την ανθρώπινη κρίση και το ανθρώπινο προαίσθημα ώστε να βοηθήσουν στην εξέλιξη και στην εκτέλεση καλύτερων MPC, τα οποία συστήματα θα αποκτήσουν προοπτική ως «εξελιγμένα» συστήματα ελέγχου. Κάποια από τα θετικά που αποκομίζουμε από τα εξελιγμένα συστήματα MPC είναι τα εξής: ο καλύτερος έλεγχος της εκτέλεσης, μείωση συντήρησης που απαιτείται, πιο ευέλικτο και εύστροφο σύστημα. 31

32 Σχήμα 1 του μοντέλου πρόβλεψης Στις αρχές της δεκαετίας του 70 οι πρακτικοί στον έλεγχο διαδικασιών της χημικής βιομηχανίας επικεντρώθηκαν στην αυξανόμενη ταχύτητα και δυνατότητα αποθήκευσης Η/Υ ως εξής: επεκτείνοντας την online βελτιστοποίηση(της ρύθμισης των διαδικασιών μέσω συχνότερης βελτιστοποίησης).αυτό είχε ως αναγκαία τη χρήση «δυναμικών μοντέλων» στη διατύπωση προβλημάτων online βελτιστοποίησης που θα μπορούσαν να επιλύονται περιοδικά. Αυτό που σήμερα αποκαλούμε MPC θεωρούνταν σαν αλγόριθμος ελέγχου που πληρούσε μια προυπόθεση-κλειδί, ο οποίος δεν ήταν εύκολα επιλύσιμος από άλλους αλγορίθμους ελέγχου. Αυτό ήταν η λεγόμενη διαχείριση των περιορισμών των ανισοτήτων. Η αποτελεσματική χρήση ενέργειας που ήταν εξαιρετικά σπουδαία μετά την πετρελαϊκή κρίση του 1973,ήταν μάλλον ένας σπουδαίος παράγοντας που οδήγησε τα διυλιστήρια και τις εγκαταστάσεις 32

33 πετροχημικων να λειτουργούν με βάση περιορισμούς και άρα να κάνουν τον έλεγχο υπό περιορισμό μη αναγκαιότητα. Την εποχή εκείνη η συσχέτιση του MPC με την κλασσική θεωρία ελέγχου ήταν συγκεχυμένη, όπως έχει καταγραφεί και από τον τίτλο της πρώτης επιστημονικής έκδοσης, στην οποία καταγράφηκε πετυχημένη εφαρμογή του αλγόριθμου MPC στη βιομηχανία χημικών διαδικασιών Model Predictive Heuristic Control: Applications to Industrial Processes. Όπως συνηθίζεται καινοτομία και η θεώρηση από πλευράς μηχανικής έφτασαν στο ίδιο αποτέλεσμα στο οποίο είχαν φτάσει ακολουθώντας διαφορετική μεθοδολογία είτε θεωρητική είτε υπολογιστική. Στις περιπτώσεις που η ιδέα του MPC εμφανίστηκε σαν κεντρική σκέψη είναι δύσκολη η ανακάλυψή της. Prett και García (1988) cite Propoi (1963) Είναι οι πρώτοι που δημοσίευσαν αλγορίθμους MPC. Rafal and Stevens (1968) παρουσίασαν αλγόριθμο με τετραγωνικό κόστος, γραμμικούς περιορισμούς και το Moving horizon of length one. Έλεγξαν μία στήλη απόσταξης για την οποία χρησιμοποίησαν ένα πρωταρχικό μη γραμμικό μοντέλο το οποίο όμως γραμμικοποίησαν σε κάθε χρονική στιγμή. Είναι προφανές οτι οι επιστήμονες ήταν πλήρως ενήμεροι για τους περιορισμούς του length one horizon αλλά ήταν περιορισμένοι λόγω της υπολογιστικής έλλειψης της εποχής τους. Στις δεκαετίες του 60 και του 70 σε αντίθεση με τις βιβλιογραφίες σχετικά με την περιορισμένη online βελτιστοποίηση που ασκείται με το MPC η οποία ήταν συνήθως σποραδικής φύσεως,υπήρχε πάντα μια μεγάλης κλίμακας και αυξανόμενη βιβλιογραφική αναφορά σ ενα συναφές πρόβλημα: το γραμμικό τετραγωνικο κανονιστικο LQR είτε σε απόλυτη είτε σε στοχαστική ερμηνεία Με απλά λόγια το LQR είναι γνωστός ως ο τυπος «τροφοδοσίας» για τη βέλτιστη λύση του προβλήματος που παρουσιάζεται στις 2 παρακάτω εξισώσεις (1) και (2) Το p μπορεί να είναι πεπερασμένο ή μη πεπερασμένο. Το φημισμένο αποτέλεσμα της LQR θεωρίας ήταν η εξίσωση (3) η οποία βγαίνει από τις (1) και (2). 33

34 4.2.1) Μια παραδοσιακή MPC διατύπωση Θεωρούμε μια σταθερή διαδικασία single-input-single-output (SISO) με input το u και output το y. Mια διατύπωση του MPC online βελτιστοποίησης του προβλήματος φαίνεται στη συνέχεια: στο χρόνο t βρίσκουμε [10] Όπου το p και m < p είναι τα μήκη της διαδικασίας πρόβλεψης output και input. u[k + i 1k], i = 1,.., p, είναι οι αξίες για τις μελλοντικές διαδικασίες input με σεβασμό στο πως η βελτιστοποίηση θα εκτελεστεί, όπου Για να ξεκινήσουμε να συζητάμε την εξέλιξη των μοντέλων, υποθέτουμε ότι το επόμενο πεπερασμένο μοντέλο finite-impulse-response (FIR) περιγράφει τη δυναμική της ελεγχόμενης διαδικασίας όπου hi ο συντελεστής kernel και d ο θόρυβος (disturbance).από την (11) παίρνουμε τη (12) όπου Η πρόβλεψη του μελλοντικού θορύβου d[k + i k] μπορεί να μην είναι ολοφάνερα βέβαιη ή ακριβής. Μια προσέγγιση ή απλούστευση είναι η εξής: 34

35 Με αντικατάσταση των εξισώσεων από (11) εως (13) στις εξισώσεις (4) εως (7) έχουμε: Το παραπάνω πρόβλημα βελτιστοποίησης μπορεί εύκολα να λυθεί για κάθε χρόνο κ ) Επεκτείνοντας τη παραδοσιακή διατύπωση του MPC Ενώ μια μεγάλη κατηγορία εξισώσεων μπορεί να επιλυθεί από το συγκεκριμένο αλγόριθμο πολλές γενικές κατηγορίες μπορούν να γίνουν διαχειρήσιμες απο MPC διατυπώσεις, οι οποίες επικεντρώνονται σε συγκεκριμένα χαρακτηριστικά: *μη σταθερό μοντέλο επεξεργασίας *μη γραμμικο *στοχαστικό περιοριστικό μοντέλο *στοχαστική πιθανολογική εξίσωση Unstable process model. Σε αυτή τη περίπτωση το μοντέλο FIR δε μπορεί να χρησιμοποιηθεί. Ένα άλλο μοντέλο χρησιμοποιείται, ή το μοντέλο DARMAX 35

36 Καθώς το MPC μοντέλο μεγαλώνει σε μέγεθος, η πιθανότητα να συμπεριλαμβάνει μια ασταθή μονάδα εξίσου μεγαλώνει. Για τέτοιες μονάδες, μοντέλα όπως είναι στις εξισώσεις (18) και (19) είναι αναγκαία. Stochastic disturbance model. Υπάρχουν ποικίλες πιθανότητες χρησιμοποιώντας στοχαστικά μοντέλα θορύβου Stochastic objective function.για περισσότερο ρεαλιστική παρουσίαση της μελλοντικής εξέλιξης-διαδικασίας output,θεωρούμε μια στοχαστική πρόβλεψη για y[k + i k] και διατυπώνουμε μια συνάρτηση που είναι κατάλληλη λειτουργικά Διαθέσιμες μετρήσεις Για ελεγχόμενες μεταβλητές που δεν είναι δυνατό να μετρηθούν απευθείας,οι μετρήσεις μπορούν να διεξαχθουν διακεκομμένα αφενός στις δευτερεύουσες μεταβλητές και αφετέρου στην εργαστηριακή ανάλυση δειγμάτων. Ο σωστός διαχωρισμός εξαρτάται από την αξιοπιστία των μοντέλων. Περιορισμοί (constraints) Συνήθως οι περιορισμοί στη διαδικασία είναι δύσκολο να υπολογιστούν. Ωστόσο οι επιμέρους περιορισμοί ως προς τα αποτελέσματα είναι περισσότερο ενδιαφέρον (ανα μοντελο) Η περίοδος έρευνας Σημαντικο ρόλο παιζει η επιλογή των χρονικών σημείων βελτιστοποήση online εφαρμόζεται στα οποία η 36

37 4.2.3) MPC χωρίς περιορισμούς ανισοτήτων Οι εξισώσεις (11) και (13) αποδίδουν ως εξής: υποθέτοντας οτι p > n για τις προηγούμενες. Συνεχίζουμε, 37

38 38

39 και όπου e[k] =ˆ ysp [k] y[k],και το input u[k] τελικά θα εφαρμοστεί Η κατάσταση είναι αρκετά διαφορετική όταν οι περιορισμοί που περιλαμβάνονται στο πρόβλημα της online βελτιστοποίησης του MPC. 4.3) Σταθερότητα 4.3.1) Τι είναι σταθερότητα Η ιδέα της σταθερότητας είναι η κεντρική έννοια στην έρευνα των δυναμικών συστημάτων. Αν εξεταστεί με χαλαρή έννοια, η σταθερότητα είναι η ιδιότητα ενός δυναμικού συστήματος η οποία σχετίζεται με την «καλή» μακροπρόθεσμη συμπεριφορά του συστήματος αυτού. Ωστόσο, αν και η σταθερότητα δεν διασφαλίζει απαραίτητα ικανοποιητική απόδοση ενός δυναμικού συστήματος, είναι αδιανόητο ότι ένα δυναμικό σύστημα μπορεί να αποδώσει σωστά χωρίς να είναι σταθερό. Η σταθερότητα μπορεί να οριστεί 39

40 ποσοτικά με πολλούς τρόπους, ο καθένας βέβαια προσφέροντας προοπτική για συγκεκριμένα ζητήματα συμπεριφοράς ενός δυναμικού συστήματος. Οι μαθηματικές περιγραφές ενός δυναμικού συστήματος του περιβάλλοντος του είναι απαραίτητες για τα ποσοτικά αποτελέσματα. Δύο μεγάλες κατηγορίες ορισμών σταθερότητας συνδέονται με: Α)σταθερότητα σε σχέση με τις αρχικές συνθήκες Β)σταθερότητα inpout-output Οι 2 κατηγορίες αλληλοσυμπληρώνονται και συνδυάζονται. Για γραμμικά συστήματα οι κατηγορίες είναι σχεδόν ταυτόσημες. Ωστόσο, είναι διαφορετικές για μη γραμμικά συστήματα )Είναι σημαντική η σταθερότητα; Όπως τονίστηκε στο παραπάνω η σταθερότητα είναι μια ιδιότητα ενός δυναμικού συστήματος η οποία χαρακτηρίζει τη μακροπρόθεσμη συμπεριφορά του συστήματος. Υπάρχουν 2 σημαντικές λεπτομέρειες ως προς αυτό Α)Οι MPC μηχανισμοί πρέπει να καταλήγουν σε κλειστά κυκλώματα που να είναι σταθερά. Κατά συνέπεια εφόσον επιθυμούμε να σχεδιάσουμε ένα βέλτιστο MPC σύστημα, μόνο σταθερής λειτουργίας, MPC μηχανισμοί πρέπει να εισέρχονται στο σχεδιασμό. Κανονικά όλοι οι σταθεροί μηχανισμοί οφείλουν να είναι γνωστοί. Κάθε ομάδα τέτοιων μηχανισμών είναι δύσκολο να καθοριστεί για κάθε δεδομένο MPC, έχοντας υπόψη τη μεγάλη διασπορά στη δομή των δεδομένων μηχανισμών MPC. Παρ ολα αυτά μπορούμε να ανακαλύψουμε υποσύνολα του συνόλου των σταθερών MPC μηχανισμών. Η διαδικασία της επιλογής των MPC μηχανισμών ανάμεσα στα υποσυστήματα μπορεί να έχει σημαντικές δυσκολίες σε σχέση με την απόδοση σταθερού κυκλώματος. Β)Η παραπάνω συζήτηση στην παράγραφο αναφέρεται κυρίως στους σταθερούς μηχανισμούς για τους οποίους ο χρόνος λειτουργίας θεωρητικά είναι άπειρος. Για στιγμιαίες επεξεργασίες ο χρόνος λειτουργίας είναι πεπερασμένος. Κατά συνέπεια, η σταθερότητα εξετάζεται μέσα σε διαφορετικό πλαίσιο. Για παράδειγμα, αστάθειες που προκαλούν αυξανόμενα σήματα χωρίς περιορισμό μπορεί να είναι καταστροφικές, έχοντας μάλιστα υπόψη ότι ο ρυθμός ανάπτυξης τους είναι πολύ μικρός σχετικά με το χρόνο της δραστηριότητας. 4.4) Συμπεριφορά MPC συστημάτων 4.4.1) Εφικτότητα της βελτιστοποίησης Επειδή το MPC απαιτεί την επίλυση ενός προβλήματος βελτιστοποίησης σε κάθε βήμα, η εφικτότητα του προβλήματος αυτού πρέπει να διασφαλίζεται. Για παράδειγμα το πρόβλημα βελτιστοποίησης στις εξισώσεις (14) εώς (17) 40

41 μπορεί να μην είναι εφικτή. Αν το πρόβλημα βελτιστοποίησης δεν είναι εφικτό τότε κάποιοι περιορισμοί πρέπει να «χαλαρώνουν».μια πιθανή λύση στο πρόβλημα είναι με αυτή την εξίσωση με e constraint στη διαδικασία output 4.4.2) Μη γραμμικότητα Συστήματα MPC που εμπλέκουν μη γραμμικά μοντέλα μπορούν να επιδείξουν αυξημένη συνθετότητα κυρίως εξαιτίας δυο παραγόντων: Α)Ο μη γραμμικός προγραμματισμός, ο οποίος είναι απαραίτητος για την επίλυση του προβλήματος βελτιστοποίησης του MPC,δεν παράγει ακριβείς λύσεις. Αντίθετα, παράγει εξισώσεις οι οποίες είναι βελτιστοποιημένες μέσω προκαθορισμένου διαστήματος εμπιστοσυνης. Μπορούν επίσης να καταλήξουν σε τοπικής βελτιστοποίησης αποτέλεσμα εάν το πρόβλημα βελτιστοποίησης δεν είναι κυρτό(nonconvex). Β)Ακόμη και όταν η συνολική βελτιστοποίηση του online προβλήματος θεωρείται ότι προσεγγίζεται απόλυτα, η συμπεριφορά του MPC μπορεί να έχει ενδείξεις μη αναμενόμενες ) Περιορισμοί (constraints) Oι επιστήμονες έχουν χρησιμοποίησει αριθμό παραδειγμάτων για να καταλήξουν ότι η παρουσία περιορισμών μπορεί να έχει δραματικό και συχνά μη διαισθητικό αποτέλεσμα στις ιδιότητες σταθερού MPC και μπορούν να καταλήξουν σε λανθασμένους κανόνες που αναπτύσσονται σχετικά με τη σταθερότητα ενός μη περιορισμένου MPC [11]. Το επόμενο παράδειγμα μπορεί να μας δείξει πως τα constraints ενός μη περιορισμένου MPC μπορούν να οδηγήσουν το σύστημα σε ασταθής καταστάσεις. Π.χ. θεωρούμε την εξίσωση: με περίοδο του 0.3 και χρησιμοποιείται ένα FIR μοντέλο με n=50 συντελεστή. Το επόμενο MPC σύστημα χρησιμοποιείται να ελέγξει τη διαδικασία 41

42 Εάν το constraint της εξόδου δε υπήρχε τοτε η επιλογή m = 1 και p n + m θα σταθεροποιούσαν το κλειστό loop. Παρ ολα αυτά η παρουσία του constraint output αποσταθεροποιεί το κλειστό loop. 4.5) Θεωρία του MPC με προβλέψιμες ιδιότητες 4.5.1) Σταθερότητα Επειδή δεν υπάρχει ισοδύναμος γραμμικός μηχανισμός ανεξάρτητος από το χρόνο για ένα πεπερασμένο MPC,ο καθορισμός της σταθερότητας ενός περιορισμένου συστήματος κλειστού κυκλώματος MPC δε μπορεί να εξαρτάται σε μεθόδους εφαρμόσιμες μόνο στα γραμμικά συστήματα, όπως καθορισμός των άκρων ενός μητρώου μετάβασης κλειστού κυκλώματος. Πρόσφατες έρευνες έριξαν φως στη σταθερότητα των υπό περιορισμό MPC.Οι σπόροι της απόδειξης σταθερότητας υπο περιορισμό MPC μπήκαν από τον Οικονόμου(1985),ο οποίος υπολόγισε ότι η σταθερότητα κλειστού κυκλωματος θα μπορούσε να εγκατασταθεί χρησιμοποιώντας το θεώρημα της χαρτογραφημενης σύσπασης(contraction mapping) MPC με γραμμικό μοντέλο-μια πρωτότυπη απόδειξη σταθερότητας Θεωρώντας την επόμενη σχέση όπου x Rnx, u Rnu. Υποθέτουμε οτι έχουμε τέλεια γνώση των μητρώων Α και Β, όλες τις πληροφορίες για το x[k] και απώλεια θορύβων. Το MPC στο χρόνο k είναι 42

43 όπου W είναι θετικά καθορισμένη μήτρα και R θετικά ημι-καθορισμένη μήτρα. Τα state constraints και τα input constraints είναι Υποθέτουμε ότι G[k + i 1], g[k + i 1], H[k + i], και h[k + i] είναι ανεξάρτητες από το k και i.θεωρώντας τη λυση στην στο χρόνο k,και υποθέτουμε ότι το p είναι αρκετά μεγάλο ώστε έτσι x[ p] = 0.Θεωρούμε την είσοδο για χρόνο k+1: είναι εφικτό στο χρόνο k+1.εχουμε στη συνέχεια Η ακολουθία δεν αυξάνει. Επομένως η ακολουθία συγκλίνει. Για να δείξουμε ότι a = 0 χρησιμοποιούμε τη προηγούμενη εξίσωση για να πάρουμε 43

44 Και η σταθερότητα του closed-loop αποδεικνύεται MPC με μη γραμμικό μοντέλο θεωρούμε δυναμικά συστήματα με τη μορφή όπου f :Rn Rm Rn και f (0,0) = 0.Το x θεωρείται ότι είναι μετρήσιμο. Το MPC online πρόβλημα βελτιστοποίησης γίνεται όπου και Η συνάρτηση L :Rn Rm R υποτίθεται ότι ικανοποιεί τις ακόλουθες ιδιότητες: L(0,0) = 0 Υπαρχει γ : [0, ) [0, ),γ(0) = 0 και 0 < γ( x,u ) L(x,u) για όλα (x,u) (0,0) 44

45 Αυτα οδηγούν στις επόμενες ιδιότητες του L Όπως στη γραμμική περίπτωση η απόδειξη της σταθερότητας του closed-loop μπορεί να κατασκευαστεί,αν ισχύει Μια πρωτότυπη απόδειξη σταθερότητας για το MPC με μη γραμμικό μοντέλο Υποθέτουμε ότι υπάρχει μια λυση: Για τον ελεγχο χρόνου εισόδου έχουμε είναι εφικτό στο χρόνο κ+1.το I[k+1] πρέπει να ικανοποιεί Η ακολουθία δεν αυξάνει. Επομένως η ακολουθία συγκλίνει στο b..για να δείξουμε ότι b = 0 χρησιμοποιούμε τη προηγ ούμενη εξίσωση για να πάρουμε 45

46 Και η σταθερότητα του closed-loop αποδεικνύεται. 46

47 Κεφάλαιο 5 Συστοιχία υπολογιστών 5.1 Εισαγωγή Στο κεφάλαιο αυτό θα προσπαθήσουμε να αναλύσουμε πως δημιουργήσαμε τη συστοιχία υπολογιστών που πραγματοποιήθηκε στο εργαστήριο αρχιτεκτονικής υπολογιστών. Οι πέντε υπολογιστές που αποτελούν την συστοιχία έχουν τα παρακάτω χαρακτηριστικά Intel Core 2 duo E6400, μνήμη 1GB, σκληρό δίσκο χωρητικότητας 250GB και δυο κάρτες δικτύου 1Gbps και 100 Mbps. Όταν έχουμε δίκτυο χαμηλής ταχύτητας τότε έχουμε σημαντική καθυστέρηση στην ανταλλαγή μηνυμάτων από έναν κόμβο του δικτύου σε έναν άλλο με αποτέλεσμα να έχουμε συνολική καθυστέρηση. Έτσι επιλέξαμε να χρησιμοποιήσουμε την υψηλότερη δυνατή ταχύτητα που υπάρχει σήμερα σε ένα τοπικό δίκτυο δηλαδή ένα τοπικό δίκτυο με ταχύτητα 1Gbps με την βοήθεια ενός switch. Η συνδεσμολογία του τοπικού δικτύου φαίνεται στο παρακάτω σχήμα. Ο πρώτος υπολογιστής ο οποίος έχει όνομα lab1 συνδέθηκε στο internet μέσω της δεύτερης κάρτας δικτύου και ο οποίος θα λειτουργήσει και σαν router ώστε να παρέχει πρόσβαση διαδικτύου στους υπολογιστές υπολογιστές της συστοιχίας. Ακόμη ρυθμίσαμε έτσι την συστοιχία μας ώστε να είναι δυνατή η πρόσβαση από 47

48 απομακρυσμένο υπολογιστή μέσω διαδικτύου και να έχουμε τον πλήρη έλεγχο της συστοιχίας. Για να μπορέσει να τρέξει το πρόγραμμα και ο αλγόριθμος που αναπτύξαμε παράλληλα στη συστοιχία θα εγκαταστήσουμε ένα λογισμικό το οποίο είναι συμβατό με το πρότυπο MPI. Το λογισμικό αυτό είναι το MPICH2, είναι ανοιχτού κώδικα υλοποίηση του MPI και υποστηρίζει πολλές πλατφόρμες και λειτουργικά συστήματα όπως τα Microsoft Windows, Unix, Linux και MAC. Στη συνέχεια θα περιγράψουμε την εγκατάσταση του λογισμικού MPICH2 στη συστοιχία μας τόσο σε περιβάλλων Windows όσο και σε Linux καθώς επίσης και της κατάλληλες ρυθμίσεις που χρειάζονται ώστε να πραγματοποιηθεί η εκτέλεση των παράλληλων υπολογισμών. 5.2 MPICH2 στα Windows XP Για να ξεκινήσουμε την εγκατάσταση του MPICH2 [12] για windows πρέπει να έχουμε εγκαταστήσει πρώτα το Microsoft Framework 1.1 (να επισημάνουμε οτί αν κάποιος βάλει την έκδοση Framework 2.0 δεν συμπεριλαμβάνονται τα αρχεία που περιέχονται στην έκδοση 1.1 ) Αφού λοιπόν κάνουμε την εγκατάσταση του λογισμικού θα πρέπει να εισάγουμε έναν κωδικό ο οποίος θα πρέπει να είναι ίδιος σε όλους του υπολογιστές του δικτύου. Για να εκτελεστούν παράλληλα τα προγράμματα και για να γίνουν οι απαραίτητες ρυθμίσεις το MPICH2 παρέχει ένα γραφικό περιβάλλον. Για να εκτελεστεί το πρόγραμμα ανοίγουμε το αρχείο mpiexec.exe που βρίσκεται μέσα στο φάκελο του MPICH2. Παρακάτω βλέπουμε στην εικόνα το γραφικό περιβάλλον 48

49 Εικόνα 5.1 Το γραφικό περιβάλλον του mpiexec Στην πρώτη επιλογή του προγράμματος δηλαδή στο πεδίο Application εισάγουμε το εκτελέσιμο αρχείο και στο πεδίο Number of processes διαλέγουμε τον αριθμό διεργασιών στις οποίες θα τρέξει το παράλληλο πρόγραμμα. Το πεδίο αυτό είναι άμεσα συνδεδεμένο με το πεδίο hosts. Στο Hosts επιλέγουμε σε πόσους υπολογιστές θα τρέξει το εκτελέσιμο μας αρχείο. Στην συστοιχία που φτιάξαμε εμείς που αποτελείται από 5 υπολογιστές θα βάλουμε τα ονόματα του κάθε υπολογιστή ξεχωριστά δηλαδή lab1 lab2 lab3 lab lab5 όσοι δηλαδή είναι και οι υπολογιστές της συστοιχία μας.. Εάν λοιπόν θέλουμε να τρέξουμε σε όλους τους υπολογιστές και σε όλους τους επεξεργαστές στο hosts θα δώσουμε τα ονόματα όπως παραπάνω και στο πεδίο Number of processes θα δώσουμε την τιμή 10. Κάθε υπολογιστής έχει 2 επεξεργαστές άρα 5 x 2 = 10. Πατώντας το κουμπί Show Command μπορούμε να δούμε την εντολή που θα εκτελεστεί ανάλογα τις επιλογές που έχουμε κάνει. Για να εκτελεστεί το πρόγραμμα πατάμε το κουμπί Execute. Όταν εκτελέσουμε το mpiexec για πρώτη φορά πρέπει να εισάγουμε έναν κωδικό ο οποίος θα αντιστοιχεί σε έναν λογαριασμό των Windows για να μπορέσει το mpiexec να εκτελεί τα προγράμματα μας (προσοχή γιατί χωρίς λογαριασμό στα windows το mpiexec δεν λειτουργεί καθόλου ). Μπορούμε να πατήσουμε Register για να αποθηκευτούν το όνομα και το password στο μητρώο των windows χωρίς να χρειάζεται να εισάγουμε ξανά τα παραπάνω δεδομένα. Για να μπορέσει να εκτελεστεί το MPICH2 θα πρέπει να ρυθμίσουμε το Firewall. Ακόμη πρέπει σε όλους τους υπολογιστές του δικτύου το αρχείο του προγράμματος να βρίσκεται στην ίδια διαδρομή φακέλου και ο φάκελος αυτός να είναι κοινόχρηστος για όλους τους υπολογιστές. Στο παρακάτω σχήμα βλέπουμε τις ρυθμίσεις που χρειάζεται το Firewall των windows για να τρέξει σωστά το πρόγραμμα. 49

50 Εικόνα 5.2 Ρυθμίσεις Firewall Πρέπει να προσθέσουμε στη λίστα της εικόνας 5.2 τα αρχεία smpd.exe, mpiexec.exe αλλα και τα προγράμματα που θα εκτελεστούν. Στην παρακάτω εικόνα επιλέγουμε το Domain και πατούμε το Get Hosts για να δουμε τους υπολογιστές τους δικτύου στους οποίους εκτελείται ο διαχειριστής εργασιών smpd. Με την εντολή Get Setting βλέπουμε τις ρυθμίσεις του smpd 50

51 Εικόνα 5.3 Εφαρμογή του mpiconfig Στο project μας με βάση το Visual Studio.NET έχουμε τις εξής ιδιότητες : Στην επιλογή Configuration Properties::Linker::Input πρέπει να εισαχθούν τα αρχεία mpi.h και cxx.lib στο πεδίο Additional Dependencies (εικόνα 5.4). Αν το πρόγραμμα είναι γραμμένο σε C τότε χρειάζεται μόνο το αρχείο mpi.lib ενώ αν το πρόγραμμα είναι γραμμένο σε C++ τότε απαιτούνται τα αρχεία mpi.h και cxx.lib Στην επιλογή Configuration Properties::C/C++::General πρέπει να εισαχθεί ο φάκελος C:\Program Files\MPICH2\include στο πεδίο Additional Include Directories Στην επιλογή Configuration Properties::Linker::General πρέπει να εισαχθεί ο φάκελος C:\Program Files\MPICH2\lib στο πεδίο Additional Library Directories 51

52 Εικόνα 5.4 Ιδιότητες του project 5.3 MPICH2 στo Linux Σε κάθε υπολογιστή του δικτύου μας εγταταστήθηκε το λειτουργικό Linux διανομής ubuntu Χρησιμοποιήσαμε και άλλες διανομές Linus όπως redhat, Scientific Linux και Kubuntu και ο τρόπος εγκατάστασης του MPICH2 ήταν ίδιος [13]. Πρέπει εδώ να αναφέρουμε ότι για να λειτουργήσει σωστά το MPICH2 χρειάζετε να εγκαταστήσουμε έναν Compiler είτε της C είτε της C++. Στις περισσότερες διανομές υπάρχει η δυνατότητα επιλογής αυτών των Compiler κατά την εγκατάσταση του Linux. Το αρχείο mpich p1 πρέπει να το αντιγράψουμε στον κεντρικό κατάλογο διαχειριστή του συστήματος ο οποίος είναι /root. Με την εντολή tar xfz mpich p1.tar.gz αποσυμπιέζουμε το αρχείο που κατεβάσαμε από την επίσημη σελίδα του MPICH2. Κατά την διάρκεια της εγκατάστασης θα δημιουργηθούν κάποια αρχεία. Αυτά τα αρχεία θα αποθηκευτούν σε έναν φάκελο ο οποίος επιλέγεται να είναι διαφορετικός από τον φάκελο από τον φάκελο στον οποίο έχουμε αποσυμπιέσει το αρχείο. 52

53 mkdir /tmp/mpich2-install cd /tmp/mpich2-install Για την εγκατάσταση του MPICH2 είναι χρήσιμη η διαδικασία της διαμόρφωσης (configure). Εδώ επιλέγουμε και το φάκελο του MPICH2 /usr/local. Η διαμόρφωση επιτυγχάνεται με τη χρήση ενός configure script το οποίο εκτελούμε με την παρακάτω εντολή /root/mpich p1/configure prefix=/usr/local & tee configure.log Το βήμα που ακολουθεί είναι να δημιουργήσουμε το MPICH2 με άλλα λόγια να δημιουργήσουμε τις βιβλιοθήκες και τα εκτελέσιμα αρχεία από του πηγαίους κώδικες που βρίσκονται στο πρόγραμμα που κατεβάσαμε. Αυτό γίνεται με την εντολή make & tee make.log Η εγκατάσταση των αρχείων που δημιουργήθηκαν γίνεται με την εντολή make install & tee install.log Στην συνέχεια πρέπει να εισάγουμε μια ρύθμιση στο διαχειριστή εργασιών mpd πριν εκτελέσουμε τα MPI προγράμματα, δηλαδή πρέπει να δημιουργηθεί ένα αρχείο με το όνομα mpd.conf στο φάκελο /etc. Αυτός ο φάκελος πρέπει να περιέχει την εξής εντολή MPD_SECRETWORD=secretword Με τον όρο secretword ορίζουμε ελεύθερα μια ακολουθία χαρακτήρων. Εφόσον βρισκόμαστε σε Linux πρέπει να δώσουμε δικαιώματα προσπέλασης και εγράφης στον root στο αρχείο mpd.conf. cd /etc touch mpd.conf chmod 600 mpd.conf Με την βοήθεια ενός επεξεργαστή κειμένου όπως το gedit εισάγουμε την παραπάνω γραμμή στο mpd.conf αρχείο. Τώρα είμαστε σε θέση να τρέξουμε τα MPI προγράμματα. Για να μεταγλωττίσουμε τον πηγαίο κώδικα μας, δηλαδή το project.c εκτελούμε την παρακάτω εντολή mpicc project.c o project 53

54 Να αναφέρουμε ακόμα ότι με την εντολή mpicc ή mpicxx μεταγλωττίζουμε τα προγράμματα MPI ανάλογα με τον αν έχουμε εγκαταστήσει C ή C++ compiler. Το εκτελέσιμο αρχείο που θα πάρουμε θα πρέπει να το τοποθετήσουμε στον φάκελο /root. Με τις εντολές που ακολουθούν mpd & mpiexec n 2 /root/project πραγματοποιείται η εκτέλεση του προγράμματος. Για να είναι δυνατή η εκτέλεση των προγραμμάτων MPI θα πρέπει να ξεκινήσουμε πρώτα τον διαχειριστή εργασιών mpd, αυτό γίνεται με την παραπάνω εντολή. Όταν δώσουμε την τιμή n 2 εκτελείτε το πρόγραμμα σε δυο διεργασίες. Στην παρακάτω εικόνα βλέπουμε πως εκτελείται το πρόγραμμα project στις δυο διεργασίες και ότι περίπου χωρίζεται σε 50% της συνολικής ισχύς Εικόνα 5.5 Λίστα διεργασιών στο Linux του συστήματος. Δηλαδή κάθε διεργασία παίρνει από έναν επεξεργαστή του διπύρηνου υπολογιστή. Μπορούμε να ορίσουμε το πρόγραμμα να εκτελείται σε περισσότερες διεργασίες αλλά δεν έχουμε κάποια βελτίωση στην ταχύτητα εκτέλεσης. Βέβαια εάν είχαμε τετραπύρηνους υπολογιστές και ορίζαμε 4 διεργασίες θα είχαμε αρκετή βελτίωση στην ταχύτητα. 54

55 Εικόνα 5.5 System Monitor Κάθε πυρήνας ενός επεξεργαστή στην περίπτωση μας CPU1, CPU2 απασχολείται πλήρως (για αυτό καλό είναι να μην εκτελούμε αλλά προγράμματα εκείνη την στιγμή για να μην αλλοιώσει τα αποτελέσματα στον τελικό χρόνο). Το βασικό όμως είναι οι διεργασίες να εκτελούνται παράλληλα και ταυτόχρονα σε όλη την συστοιχία, για να το πετύχουμε αυτό πρέπει να γίνουν οι παρακάτω ρυθμίσεις. Από τον πρώτο μας υπολογιστή δηλαδή από στον lab1 δημιουργούμε ένα ssh ( ζεύγος δημόσιου ιδιωτικού κλειδιού ) ssh-keygen t dsa Με την παράμετρο t dsa δηλώνουμε πως θα δημιουργηθούν κλειδιά με κρυπτογράφηση DSA. Δημιουργούνται λοιπόν τα αρχεία id_dsa και id_dsa.pub στον φάκελο /root/.ssh Θα πρέπει ακόμη να δώσουμε τις κατάλληλες ip σε κάθε υπολογιστή της συστοιχίας μας. Πχ για τον lab2 δίνουμε τις εντολές : 55

56 scp.ssh/id_dsa.pub ssh mkdir p.ssh chmod 700.ssh cat id_dsa.pub >>.ssh/authorized_keys chmod 600.ssh/authorized_keys rm id_dsa.pub exit στην συνέχεια αντιγράφουμε το αρχείο id_psa.pub στο φάκελο /root/.shh έτσι λοιπόν έχουμε συνδέσει τον lab2. Ο ίδιος ακριβώς τρόπος ακολουθείται για τους υπόλοιπους υπολογιστές της συστοιχίας μας. Στον lab3 δίνουμε ip στον lab4 ip και στον lab5 ip

57 Εικόνα 5.5 Εκτέλεση εντολών και ρυθμίσεις ssh Όπως έχουμε αναφέρει για να μπορέσουν τα προγράμματα μας να εκτελεστούν παράλληλα πρέπει να ανοίξουμε σε όλους τους υπολογιστές τον διαχειριστή εργασιών mpd. Έτσι στον lab1 δίνουμε τις εντολές : mpd & mpdtrace l Πρέπει να ορίσουμε στους διαχειριστές εργασιών την θύρα επικοινωνίας καθώς επίσης και την διεύθυνση του lab1. Στους υπόλοιπους υπολογιστές ανοίγουμε τον mpd είτε χειροκίνητα είτε από τον lab1 να συνδεθούμε με ssh στους υπόλοιπους και να το ανοίξουμε από εκεί. Εικόνα 5.6 Διαχειριστής εργασιών mpd Δημιουργούμε ένα αρχείο mpd.hosts στον φάκελο /root για να μπορούμε να καθορίσουμε σε ποιους κόμβους του δικτύου θα τρέξουν οι διεργασίες. Μέσα στο αρχείο αυτό γράφουμε τις διευθύνσεις του δικτύου σε κάθε γραμμή. 57

58 Εκτελούμε το την παρακάτω εντολή για να τρέξει το πρόγραμμα μας σε πέντε διεργασίες mpiexec machinefile /root/mpd.hosts n 5 /root/project Αν για παράδειγμα λοιπόν θέλουμε να εκτελεστούν δυο διεργασίες σε κάθε κόμβο της συστοιχίας μας το mpd.hosts θα έχει την μορφή Εικόνα 5.7 Παράθυρο mpd.hosts Όπως έχουμε προαναφέρει το αρχείο του προγράμματος πρέπει να βρίσκεται στην ίδια διαδρομή στον σκληρό δίσκο. Στην συνέχεια δίνουμε δικαιώματα πρόσβασης στο αρχείο όπως φαίνεται στην εικόνα 5.8 Εικόνα 5.8 Αλλαγή δικαιωμάτων 58

59 5.4 Εισαγωγή στο MPI Ένα πρόγραμμα ΜΡΙ [14] αποτελείται από έναν αριθμό διεργασιών, οι οποίες εκτελούνται παράλληλα. Κάθε διεργασία χρησιμοποιεί το δικό της χώρο διευθύνσεων, χωρίς αυτό να σημαίνει ότι δεν υπάρχουν υλοποιήσεις του ΜΡΙ για συστήματα µε διαμοιραζόμενη μνήμη. Ο αριθμός των διεργασιών, οι οποίες δημιουργούνται σε ένα πρόγραμμα ΜΡΙ, είναι σταθερό) και καθορίζεται από τον προγραμματιστή, όταν εκτελεί την εφαρμογή. Κατά τη διάρκεια της εκτέλεσης δεν μπορεί να δημιουργήσει καινούργιες διεργασίες ή να καταστρέψει κάποια από τις υπάρχουσες. Δηλαδή, το πρόγραμμα πρέπει να εκτελεστεί από την αρχή, για να οριστεί ξανά ο καινούργιος αριθμός διεργασιών. Ωστόσο, νεώτερες υλοποιήσεις του ΜΡΙ υποστηρίζουν τη δημιουργία και καταστροφή διεργασιών κατά το χρόνο εκτέλεσης (run-time process management). Η μεταφορά δεδομένων από τις μεταβλητές μιας διεργασίας στις μεταβλητές μιας άλλης διεργασίας γίνεται µε πέρασμα μηνυμάτων από τη µία διεργασία στην άλλη. Την αποστολή των μηνυμάτων την αναλαμβάνει το ΜΡΙ. Ο προγραμματιστής καλεί τις συναρτήσεις αποστολής και παραλαβής μηνυμάτων μέσα από το πρόγραμμά του, αλλά δεν ασχολείται µε τις λεπτομέρειες της επικοινωνίας μεταξύ των διεργασιών. Το ΜΡΙ αποτελεί µια βιβλιοθήκη. Μια διεργασία ΜΡΙ αποτελείται από ένα πρόγραµµα σε FORTRAN ή C, το οποίο επικοινωνεί µε άλλες διεργασίες MPI, χρησιµοποιώντας ΜΡΙ συναρτήσεις. Οι ρουτίνες του ΜΡΙ παρέχουν στον προγραµµατιστή µια συνεπή προγραµµατιστική διασύνδεση σε µια µεγάλη ποικιλία συστηµάτων. Ο τρόπος που θα γίνει η ανάθεση των διεργασιών στους επεξεργαστές, δεν ορίζεται από το πρότυπο του ΜΡΙ, διότι εξαρτάται από το συγκεκριµένο σύστηµα, που χρησιµοποιείται. Κάθε υλοποίηση παρέχει τη δική της µέθοδο για την κατανοµή των διεργασιών. Ωστόσο, σε όλες τις υλοποιήσεις παρέχεται η συνάρτηση MPUnit, η οποία ενεργοποιεί το ΜΡΙ. Μέσω αυτής της συνάρτησης, η αρχικοποίηση του ΜΡΙ καθώς και η αρχική κατανοµή των διεργασιών στους επεξεργαστές, γίνονται από τη µεριά του προγραµµατιστή, µε τον ίδιο τρόπο. 59

60 5.5 MPI Χειριστές Το ΜΡΙ διατηρεί εσωτερικές δοµές δεδοµένων, οι οποίες σχετίζονται µε την επικοινωνία. Η πρόσβαση του χρήστη σε αυτές τις δοµές γίνεται µε την βοήθεια των χειριστών. Οι χειριστές επιστρέφονται στον προγραµµατιστή από κάποιες ΜΡΙ συναρτήσεις και µπορούν να χρησιµοποιηθούν σε κλήσεις κάποιων άλλων συναρτήσεων. Στη C, Οι χειριστές είναι ακέραιοι αριθµοί ή δείκτες σε ειδικά ορισµένους τύπους δεδοµένων, που έχουν ορισθεί µέ το typedef. Δύο παραδείγµατα χειριστών είναι τα εξής: ΜΡΙSUCCΕSS - Ακέραιος, ο οποίος χρησιµοποιείται για τον ελέγχο των κωδικών λάθους. ΜΡΙ COMM_ WORLD - Ένα αντικείµενο τύπου ΜΡΙ COMM, δηλαδή ένας communicator (η έννοια του communicator θα συζητηθεί στη συνέχεια). Πρόκειται για έναν προκαθορισµένο communicator, ο οποίος αποτελείται από όλες τις διεργασίες. Στους χειριστές µπορούµε να αναθέσουµε τιµή, χρησιµοποιώντας το συνηθισµένο τελεστή ανάθεσης τιµής της C. 5.6 Επιστροφή λαθών Σε γενικές γραµµές, κάθε συνάρτηση ΜΡΙ, που καλείται σε ένα πρόγραµµα C, επιστρέφει έναν ακέραιο (int), ο οποίος δείχνει την κατάσταση εξόδου της κλήσης της συνάρτησης. int err; err = MPUnit(&argc, &argv); Στην περίπτωση που η κλήση της συνάρτησης ολοκληρώθηκε επιτυχώς, ο κωδικός λάθους που επιστρέφεται, είναι ένας ακέραιος ίσος µε την προκαθορισµένη σταθερά MPI_SUCCESS. Έτσι, µπορούµε να ελέγξουµε για επιτυχή ολοκλήρωση, ως εξής: if ( err = = ΜΡΙSUCCESS) {... routine ran correctly... } 60

61 Η εξ' ορισµού ενέργεια του ΜΡΙ, όταν προκύψει ένα λάθος, είναι να στα- µατήσει την εκτέλεση του παράλληλου προγράµµατος, παρά να επιστρέψει απλώς τον κωδικό του λάθους. Όµως, αυτή η εξ ορισµού ενέργεια, µπορεί να αλλάξει. Η τιµή του κωδικού λάθους εξαρτάται από τη συγκεκριµένη αρχιτεκτονική του συστήµατος, στο οποίο εκτελείται το πρόγραµµα ΜΡΙ, και προσδιορίζει το είδος του λάθους, που συνέβη. Επειδή τα λάθη, που µπορεί να προκύψουν σε ένα πρόγραµµα ΜΡΙ, εξαρτώνται από τη συγκεκριμένη αρχιτεκτονική του συστήματος, δεν έχει καθοριστεί ένα πλήρες σύνολο λαθών και αντίστοιχων κωδικών λάθους. 5.7 Συμβάσεις ονοματολογίας και Τύποι Δεδομένων του ΜΡΙ Όλα τα ονόματα των συναρτήσεων και σταθερών του ΜΡΙ αρχίζουν με το πρόθεμα ΜΡΙ. Ο πρώτος χαρακτήρας των ονομάτων των ρουτινών στη C γράφεται με κεφαλαίο γράμμα ενώ οι υπόλοιποι με μικρά. Τα ονόματα των σταθερών γράφονται με κεφαλαία γράμματα. Στη C, για κάθε τύπο χειριστή έχει γίνει μια δήλωση typedef. Έτσι, υπάρχουν ξεχωριστοί τύποι χειριστή για κάθε είδος αντικειμένου. πχ ΜΡΙ_Datatyρe, ΜΡΙCοmm, κ.λπ. Οι πίνακες έχουν ως πρώτο στοιχείο τους το 0 Οι βασικοί τύποι δεδομένων του ΜΡΙ είναι οι ίδιοι με τους βασικούς τύπους δεδομένων της κάθε γλώσσας, που υποστηρίζει, απλώς, έχουν διαφορετικά ονόματα, όπως φαίνεται από τον πίνακα [15], ο οποίος ακολουθεί και δίνει τους βασικούς τύπους δεδομένων του ΜΡΙ και τους αντίστοιχους τύπους της C. 61

62 Οι τύποι δεδομένων ΜΡΙ_ΒΥΤΕ και MPI_PACKED δεν αντιστοιχούν σε κάποιο τύπο της C. Το ΜΡΙ_ΒΥΤΕ παριστάνει 8 δυαδικά ψηφία. χρησιμοποιείται, όταν θέλουμε να αποστείλουμε μηνύματα με bίt-πεδία, όπου η τιμή κάθε bit παριστάνει την τιμή μιας-σημαίας (flag). Αυτός ο τύπος μπορεί να χρησιμοποιηθεί για την αποστολή πληροφοριών ελέγχου στον παραλήπτη. Αν και η αποστολή πληροφοριών ελέγχου μπορεί να γίνει και με τη χρήση άλλων τύπων δεδομένων (π.χ., int), το ΜΡΙΒΥΤΕ είναι μικρότερο σε μέγεθος από το int και άρα, η μετάδοση γίνεται γρηγορότερα. Ο τύπος ΜΡΙΡΑCΚΕD χρησιμοποιείται για την αποστολή και τη λήψη συνεπτυγμένων μηνυμάτων Στη C, το ΜΡΙ παρέχει αρκετούς ειδικούς τύπους δεδομένων (δομές). Ως παράδειγμα, αναφέρουμε τους εξής: ΜΡΙ Comm - communicator ΜΡΙ Status - δομή, η οποία περιέχει πληροφορία για την. κατάσταση (status) των ΜΡΙ κλήσεων ΜΡΙ Datatype Οι παραπάνω τύποι χρησιμοποιούνται στις δηλώσεις μεταβλητών. Για παράδειγμα, η μεταβλητή new _ comm μπορεί να δηλωθεί τύπου MPI_ Comm ως εξής MPI_Comm new_cornm; 62

63 'Οταν γίνεται αποστολή ενός μηνύματος ενός συγκεκριμένου τύπου δεδομένων, η διεργασία-παραλήπτης αναμένει να λάβει τον ιδιο τύπο. Για παράδειγμα, αν μια διεργασία στέλνει ένα μήνυμα τύπου MPUNTEGER, ο παραλήπτης πρέπει να καθορίσει ότι θα λάβει τύπο MPI_INTEGER. Διαφορετικά, η επικοινωνία είναι λανθασμένη και η συμπεριφορά του προγράμματος ακαθόριστη. Ακόμα, η μεταβλητή που περιέχει το προς μετάδοση μήνυμα, πρέπει να είναι του (διου τύπου με τον τύπο του μηνύματος που καθορίστηκε. Δηλαδή, δεν μπορούμε να καθορίσουμε τύπο MPI_INTEGER και να στείλουμε μήνυμα τύπου float ή char. Η εξαίρεση του κανόνα είναι οι τύποι δεδομένων ΜΡΙΡΑCΚΕD και ΜΡΙ_ ΒΥΤΕ, οι οποίοι μπορούν να χρησιμοποιηθούν στη θέση οποιουδήποτε τύπου, αρκεί βέβαια, να ταιριάζει το μέγεθος. Για παράδειγμα, δεν μπορούμε να εκχωρήσουμε τιμή τύπου float σε μεταβλητή τύπου ΜΡΙΒΥΤΕ, διότι ο τύπος float καταλαμβάνει περισσότερα από ένα byte στη μνήμη. 5.8 Αρχικοποίηση του MPI Για να χρησιμοποιηθεί το ΜΡΙ σε ένα πρόγραμμα C, πρέπει στην αρχή του να υπάρχει η παρακάτω δήλωση προεπεξεργαστή: #include "mpi.h" ή #include <mpi.h> ανάλογα με το αν το αρχείο mpi.h βρίσκεται στον τρέχοντα κατάλογο ή στον κατάλογο που περιέχει τα header αρχεία του μεταγλωττιστή. Αυτός ο header περιέχει τα πρωτότυπα (prototypes) των συναρτήσεων, καθώς και τον ορισμό των σταθερών και των δομών δεδομένων που χρειάζονται σε ένα πρόγραμμα ΜΡΙ. Για να ξεκινήσει μια εφαρμογή MPI, το πρόγραμμα πρέπει να καλέσει τη συνάρτηση MPUnit. Η συνάρτηση αυτή ενεργοποιεί το ΜΡΙ και δημιουργεί τις δομές δεδομένων, οι οποίες είναι απαραίτητες για την επικοινωνία των διεργασιών (για παράδειγμα, τον εξ ορισμού Communicator ΜΡΙCΟΜΜ_ WORLD). Η MPUnit πρέπει να κληθεί μόνο μια φορά και πριν από κάθε άλλη κλήση συνάρτησης ΜΡΙ. Δεύτερη κλήση της αποτελεί λάθος. Η δήλωση της είναι : int MPUnit(int *argc, char **argv); Η κλήση της γίνεται με τις παραμέτρους, που περνιούνται αυτόματα από τον μεταγλωττιστή της C στη main, δηλαδή 63

64 MPUnit(&argc, &argv); Το argc είναι ο αριθμός των παραμέτρων που δίνονται στη γραμμή εντολών, όταν εκτελείται το πρόγραμμα. Το argv είναι ένας πίνακας χαρακτήρων, ο οποίος περιέχει αυτές τις παραμέτρους. Όταν εκτελείται το πρόγραμμα, το λειτουργικό σύστημα περνάει αυτόματα αυτές τις παραμέτρους στη main. Έτσι, μπορούμε από τον κώδικα του προγράμματος να χρησιμοποιήσουμε αυτές τις παραμέτρους. Μετά την κλήση της MPUnit, όλες οι διεργασίες που δημιουργήθηκαν, θα έχουν ένα αντίγραφο των ορισμάτων της main. Ο αριθμό των διεργασιών δίνεται ως παράμετρος στη γραμμή εντολών, ενώ ο τρόπος της ανάθεσης των διεργασιών στους επεξεργαστές εξαρτάται από τη συγκεκριμένη υλοποίηση του ΜΡΙ. Η συνάρτηση ΜΡΙ_ lnitialized Η συνάρτηση MPI_lnitialized επιστρέφει true, αν έχει κληθεί η ΜPI_Init. Είναι χρήσιµη σε προγράµµατα, όπου ένα µέρος τους εκτελείται τοπικά σε έναν επεξεργαστή, ενώ το υπόλοιπο εκτελείται παράλληλα µε τη βοήθεια του ΜΡΙ. Η δήλωση είναι: int MPUnitialized(int *flag); Το αποτέλεσµα επιστρέφεται στην παράµετρο flag. 5.9 Τερματισμός του MPI Πριν τερµατιστεί ένα πρόγραµµα, πρέπει να καλέσει τη συνάρτηση MPI_Finalize(), η οποία καταστρέφει τις δοµές, που είχαν δεσµευθεί από την MPUnit. Μετά την κλήση της, καµµία άλλη ΜΡΙ συνάρτηση δεν µπορεί να κληθεί, ούτε η MPUnit. Η MPI_Finalize πρέπει να καλείται από όλες τις διεργασίες. Αν κάποια διεργασία δεν φθάσει σε αυτή την εντολή, το πρόγραµµα θα αποτύχει. Η συνάρτηση δεν δέχεται παραµέτρους και η κλήση της είναι: ΜΡΙ_Finalize(); 64

65 Η συνάρτηση ΜΡΙ_Αbοrt Η συνάρτηση MPI_Abort τερµατίζει όλες τις διεργασίες, οι οποίες περιέχονται σε ένα συγκεκριµένο communicator. Η σύνταξή της είναι η παρακάτω: int ΜΡΙΑbοrt(ΜΡΙ Comm comm, int err); όπου: comm Ο communicator, ο οποίος περιέχει την οµάδα. των διεργασιών, που θέλουµε να τερµατίσουµε. err Στην επιστροφή περιέχει έναν κωδικό λάθους. Ο κωδικός λάθους, συνήθως, δεν χρησιµοποιείται, στις περισσότερες υλοποιήσεις του ΜΡΙ. Αν δοθεί comm = ΜΡΙCΟΜΜ_WΟRLD, τότε προκαλείται τερµατισµός ολόκληρου του παράλληλου προγράµµατος H έννοια του communicator Ο communicator είναι ένας χειριστής (handler), ο οποίος αντιπροσωπεύει μία ομάδα (group) διεργασιών, που μπορούν να επικοινωνούν μεταξύ τους. Οι διεργασίες αυτές δεν είναι απαραίτητο να έχουν δημιουργηθεί από την εκτέλεση ενός μόνο προγράμματος ΜΡΙ. Δηλαδή, είναι δυνατή η επικοινωνία διεργασιών οι οποίες ανήκουν σε διαφορετικά παράλληλα προγράμματα. Αρκεί να ανήκουν όλες στον ίδιο communicator. Όλες οι κλήσεις, οι οποίες αφορούν επικοινωνία διεργασιών, έχουν ως μία από τις παραμέτρους τους το όνομα ενός communicator. Για να επικοινωνήσουν δύο ή περισσότερες διεργασίες, πρέπει απαραίτητα να ανήκουν στον ίδιο communicator. Για τα περισσότερα προγράμματα ΜΡΙ, αρκεί ένας βασικός communicator, ο οποίος ονομάζεται ΜΡΙCΟΜΜ _WΟRLD. Αυτός ο communicator δημιουργείται αυτόματα από το ΜΡΙ και περιέχει όλες τις διεργασίες, οι οποίες δημιουργούνται, όταν αρχίζει η εκτέλεση του προγράμματος. Με αυτό τον τρόπο εξασφαλίζουμε ότι, οποιαδήποτε διεργασία μπορεί να επικοινωνήσει με οποιαδήποτε άλλη. Ωστόσο, μπορούμε να ορίσουμε επιπλέον communicators, οι οποίοι θα αποτελούνται από υποσύνολα των 65

66 διαθέσιμων διεργασιών. Η χρησιμότητα των πολλών communicators έγκειται στο ότι, μπορούμε να οργανώσουμε τις διεργασίες σε διαφορετικές τοπολογίες. Για παράδειγμα, εκτός από τον MPI_ COMM_WORLD communicator, μπορούμε να δημιουργήσουμε και έναν δεύτερο, ο οποίος θα περιέχει τις διεργασίες οργανωμένες σύμφωνα με τη δομή ενός πίνακα δύο διαστάσεων. Με αυτή την τοπολογία, κάθε διεργασία χαρακτηρίζεται από ένα ζεύγος συντεταγμένων (i,j), το οποίο δείχνει τη θέση της στον πίνακα. Έτσι, κάθε διεργασία μπορεί, εάν αυτό είναι επιθυμητό, να επικοινωνήσει μόνο με τις 4 γειτονικές της διεργασίες. Η παραπάνω τοπολογία καλείται καρτεσιανή και μπορεί να απλοποιήσει τον αλγόριθμο πολλών προγραμμάτων, όπως σε περιπτώσεις στις οποίες χρειάζεται να διανεμηθούν δεδομένα στις διεργασίες και στη συνέχεια να γίνει συλλογή επιμέρους αποτελεσμάτων από αυτές Η συνάρτηση MPI_Comm_size Το μέγεθος ενός communicator, είναι ο αριθμός των διεργασιών που υπάρχουν σ' αυτόν, δίνεται από τη συνάρτηση ΜΡΙCοmm_sίze. int ΜΡI_Cοmm_size(ΜΡΙCοmm Comm, int *size); όπου Comm είναι ο communicator, το μέγεθος του οποίου επιστρέφεται στο size. Ένα τυπικό παράδειγμα κλήσης είναι: MPI_ Comm _size(μρι COMM _ WORLD, &size); Μετά την κλήση, η µεταβλητή size περιέχει τον αριθµό των διεργασιών που περιέχονται στον communicator ΜΡΙCΟΜΜ_WΟRLD, δηλαδή, τον αριθµό όλων των διεργασιών του ΜΡΙ προγράµµατος Τάξη διεργασίας και η συνάρτηση MPI Comm rank Όπως αναφέρθηκε προηγουμένως, κάθε διεργασία µπορεί να ανήκει σε περισσότερους από έναν communicator. Αν ένας communicator έχει n διεργασίες, τότε οι διεργασίες αυτές είναι αριθµηµένες διαδοχικά από το Ο έως το n-1. Ο αριθµός, ο οποίος αντιστοιχεί σε κάθε διεργασία, καλείται τάξη (rank) της διεργασίας στον συγκεκριµένο communicator. Η τάξη της διεργασίας-παραλήπτη ή και της διεργασίας-αποστολέα 66

67 περνιέται ως παράµετρος στις συναρτήσεις αποστολής και παραλαβής (π.χ., στις συναρτήσεις MPI_Send και MPI_Recv) κατά τη µετάδοση των µηνυµάτων. Η τάξη µιας διεργασίας εξαρτάται από τον communicator, στον οποίο ανήκει. Δηλαδή, η (δια διεργασία µπορεί να έχει διαφορετική τάξη σε έναν communicator και διαφορετική σε κάποιον άλλο. Το αν θα διατηρηθεί ή όχι η τάξη µιας διεργασίας σε διαφορετικούς communicators, εξαρτάται από το πρόγραµµα που εκτελείται, καθώς το ΜΡΙ µπορεί να αλλάξει την τάξη, προκειµένου να βελτιστοποιήσει τις επιδόσεις του προγράµµατος. Μπορούµε να βρούµε την τάξη µιας διεργασίας σε έναν communicator, καλώντας τη συνάρτηση MPI_Comm_rank, η οποία έχει δηλωθεί ως εξής: int ΜΡΙCοmm_rank(ΜΡΙCοmm Comm, int rank}; Το Comm είναι ο communicator, στον οποίο ανήκει η διεργασία. Στην παράµετρο rank επιστρέφεται η τάξη της διεργασίας, η οποία κάνει την κλήση. Επειδή η τάξη επιστρέφεται µέσω παραµέτρου, πρέπει στη συνάρτηση να περάσουµε τη διεύθυνση της παραµέτρου. Άρα η κλήση είναι: ΜΡΙ Comm _rank(mpi_ COMM _ WORLD, &rank}; 5.11 H δομή του ΜPI στη C Η δομή ενός προγράμματος ΜΡΙ, σε C, είναι η εξής: #include "mpi.h" /* Άλλες δηλώσεις #include */ M /* Ορισμός καθολικών μεταβλητών, δομών δεδομένων συναρτήσεων κ.λ.π */ M main(int argc, char **argv) { M 67

68 /* Ορισμός μεταβλητών, δομών δεδομένων κ.λ.π. */ M /* Αρχικοποίηση του ΜΡΙ */ /* Δεν πρέπει να καλέσουμε άλλες συναρτήσεις του ΜΡΙ πιο πριν * / MPUnit(&argc, &argv); /* Υλοποίηση του αλγορίθμου της εφαρμογής, με κλήση συναρτήσεων C και ΜΡΙ */ M /* τερματισμός του ΜΡΙ */ /* Δεν πρέπει να καλέσουμε άλλες συναρτήσεις του ΜΡΙ μετά από αυτή */ MPI_Finalize(); /* Επιστροφή στο λειτουργικό σύστημα */ 68

69 Κεφάλαιο Μοντέλο Προβλεπτικού Έλεγχου (ΜPC) Ένας από τους σημαντικότερους αλγορίθμους προβλεπτικού ελέγχου, είναι το μοντέλο προβλεπτικού έλεγχου. Θα χρησιμοποιηθεί η μέθοδος ΜPC που υλοποιείται σε πάρα πολλές βιομηχανικές εφαρμογές και η οποία υπολογίζει μια ακολουθία από μελλοντικά σήματα ελέγχου, ώστε να ελαχιστοποιεί μια αντικειμενική συνάρτηση ορισμένη σε έναν ορίζοντα πρόβλεψης. Θα χρησιμοποιήσουμε παρακάτω ένα σύστημα πολλαπλών εισόδων και πολλαπλών εξόδων και θα δούμε πως λειτουργεί το μοντέλο Carima Μοντέλο CARIMA m εισόδων n εξόδων εκφράζεται σαν ( ) ( ) ( ) ( ) 1 Δ A z y( t) B(z )u(t-1) + C( z ) e( t) na nxn 1 2 na nb = nb nb = nxn nc = A z = I + A z + A z A z πολυωνυμικός πίνακας nxn B z B B z B z... B z πολυωνυμικός πίνακας nxn C z I C z C z... C z πολυωνυμικός πίνακας nxn 1 Ο τελεστής Δ= 1 z πίνακες y(t) διάνυσμα εξόδου n x 1 (n γραμμών, 1 στήλης) u(t) διάνυσμα εξόδου m x 1 (m γραμμών, 1 στήλης) την χρονική στιγμή (t) e(t) διάνυσμα θορύβου n x 1 (n γραμμών, 1 στήλης) Θεωρούμε την Διοφαντική εξίσωση I = E ( z )A(z ) + z F( z ) 1-1 -j 1 nxn j j 69

70 1 Πολλαπλασιάζουμε την εξίσωση του μοντέλου CARIMA με ΔΕ ( ) j j z z και -1 1 j -1 1 j j παίρνουμε A(z )y(t) ΔΕ j( z ) z = B(z )u(t-1) ΔΕ j( z ) z + C(z ) e(t) ΔΕ j( z ) z Δ Ε ( z )A( z ) y( t) =Ε ( z )B(z )ΔU(t+j-1)+ Ε( z ) e( t+ j) (1) j j Χρησιμοποιώντας την Διοφαντική εξίσωση παίρνουμε yt ( + j) = F( z ) yt ( ) + E ( z )B(z )ΔU(t+j-1)+E (z )e( t+ j) (2) j j j Θεωρώντας ότι [ ] j t [ Ee(t) = 0, η αναμενόμενη τιμή για το y(t+j) θα δίνεται από την έκφραση yt ( ] F ( z + ) = E y(t+j) = ) yt ( ) + E ( z )B(z )ΔU(t+j-1) (3) j Επανάληψη της Διοφαντικής εξίσωσης 1 Έστω E( z 1 ), F( z ) ζεύγος λύσεων της Διοφαντικής εξίσωσης. I j j 1 nxn j j j = E (z )A(z )z F(z ) (4) όπου na na A(z )=A(z )Δ=Inxn +Α % 1z +Α % 2z Α % n z +Α% a na+ 1z 1 2 a a I (A I ) (A A )... (A A ) n n + z + z + + z A z j ( + 1) = nxn 1 nxn 2 1 na na 1 na 1 E( j z ) = E + E z + E z E 1 2 j 1 j,0 j,1 j,2 j,j-1 1 na j( z ) = F + z + z + + z F F F... F 1 2 j,0 j,1 j,2 j,na z ( + 1) Αν τώρα πάρουμε την Διοφαντική εξίσωση με την αντίστοιχη προβλεπόμενη τιμή του διανύσματος εξόδου yˆ( t+ j+ 1 t) θα έχουμε (j+1) ( z 1 I = E (z )A(z ) + z F ) j+1 (5) nxn j+1 Αφαιρούμε την (4) εξίσωση από την (5) και παίρνουμε j Onxn = E j+1(z ) E j(z ) A(z ) + z z F j+1( z ) F( j z ) (6) Ο πίνακας E (z ) E (z ) -1-1 j+1 j είναι j βαθμού Ας αντικαταστήσουμε E j+1(z ) E j(z ) = R(z % )+R jz -1 όπου R(z ) πολυωνυμικός πίνακας nxn βαθμού j-1 και R j πραγματικός πίνακας nxn (πίνακας πραγματικών αριθμών) Η εξίσωση (6) παίρνει την μορφή j Onxn = R(z % )A(z ) + z RA(z % j )+z F j+1( z ) F( j z ) (7) 70

71 % -1-1 Όταν ο μεγιστοβάθμιος όρος του A(z ) είναι 1 γίνεται αντιληπτό ότι R(z % ) = j και ο πίνακας μπορεί να προσδιοριστεί E (z ) = E (z ) + R z E j+1(z ) j+1 j j Από την εξίσωση (7) είναι εύκολο να πάρουμε Rj = F j,0 F = F R A % για i=0,1,... δ(f ) j+1,j j,i+1 j i+1 j+1 Επίσης είναι κατανοητό ότι οι αρχικές συνθήκες για την επανάληψη της εξίσωσης δίνονται από τις σχέσεις E1 = I F 1 = z(i-a) Κάνοντας τους πολυωνυμικούς πίνακες της εξίσωσης j -1 1 E j( z )B(z ) = G j(z )+z G jp(z ) με δ G( j z ) < j Η εξίσωση της πρόβλεψης μπορεί να γραφεί yˆ( t+ j t) = G(z j )Δu(t+j-1)+ G jp(z )Δu(t-1)+F j( z ) y( t) (8) -1 yt ˆ( + j t) = G(z j )Δu(t+j-1)+f i Ας υπολογίσουμε μια σειρά από Ν, j-αρχικές προβλέψεις -1 yt ˆ( + 1 t) = G(z 1 )Δu(t)+f1-1 yt ˆ( + 2 t) = G(z 2 )Δu(t+1)+f2 (9) M -1 yt ˆ( + N t) = G N(z )Δu(t+N-1)+f N Οι εξισώσεις αυτές μπορούν να γραφούν και να αποδοθούν με μια εξίσωση πινάκων της μορφής yˆ( t+ 1 t) y ˆ( t+ 2 t) M yˆ( t+ j t) M yˆ( t+ N t) Όπου j = j-1-1 G(z )= G z i=0 f j G0 0 K 0 K 0 Δu(t) f 1 G1 G0 K 0 K 0 Δu(t+1) f2 M M O M M M M + Gj 1 Gj 2 L G0 K Δu(t+j-1) f j M M M M L M M Δu(t+N-1) f N Gj 1 Gj 2 L L G 0 i -j Οι προβλέψεις μπορούν να αποδοθούν με την έκφραση y=gu+f Η ελεύθερη τελική απάντηση μπορεί να υπολογισθεί από την επανάληψη των -1-1 εξισώσεων f j+1 = z(i-a(z % ))f j + B(z )Δu(t+j) όπου f 0 = y() t και Δu(t+j)=0 για j 0 O nxn 71

72 -1 1 Οι πίνακες A(z ), E( j z ) και F( 1 j z ) που προαναφέραμε είναι διαγώνιοι και το πρόβλημα ανάγεται στην επανάληψη n διαδοχικών τιμών της Διοφαντικής εξίσωσης. Αν το σήμα ελέγχου διατηρείται σταθερό μετά από των προβλέψεων που επηρεάζουν την συνάρτηση N 3 τιμές ελέγχου, το σύνολο yn (, N, N) = yt ˆ( + jt ) Wt ( + j + Δ ut ( + j 1) N2 N3 2 2 R (10) Q j= N1 j= 1 θα εκφραστούν με την μορφή y G U N = 12 N f 123 N + 3 N 12 T όπου U N u t K u t N 3 3 ο G G N123 N123 = Δ () Δ ( + 1) T T T f N = f 12 N K f 1 N2 είναι υποπίνακας του πίνακα G GN 1 1 GN L G 1 2 N 1 N3 GN G 1 N1 1L G N1+ 1 N 3 = M M M GN2 1 GN2 1 L G N2 N3 Οπότε η εξίσωση (10) θα γραφεί με μορφή R 0 L 0 0 R 0 Όπου R= diag(r R) L K = Q= diag(rkr) = 0 0 L M M M R T T Δ ut = Kw Ο κανόνας ελέγχου δίνεται με την έκφραση () ( f) T -1 K=(G RG +Q) G R όπου N123 N123 N123 Q 0 L 0 0 Q L L M M M Q Η εξίσωση έχει αξία γιατί μ αυτόν τον τρόπο παίρνουμε το γραμμικό κέρδος, που πολλαπλασιάζει τα σφάλματα μεταξύ της αναφοράς και των ελεύθερων αποκρίσεων του συστήματος Η ελαχιστοποίηση της (10) καταλήγει σε ένα γραμμικό ελεγκτή με απουσία των περιορισμών (constraints). Eάν οι περιορισμοί παρουσιάσουν μια δευτεροβάθμια ένδειξη τότε πρέπει να επιλυθούν για να έχουν τον έλεγχο. Η χρήση του δευτεροβάθμιου προβλήματος μπορεί να μην είναι κατάλληλη για γρήγορες δυναμικές εφαρμογές, από τοτε που το δευτεροβάθμιο προβλήματα κόστους δε μπορουσε να αγνοηθεί, ώστε το πρόβλημα βελτιστοποίησης περιορισμών να λύνεται με αναλυτικές μεθόδους βασισμένες στους πολλαπλασιαστές lagrange. 72

73 Η χρήση αυτής της τεχνικής είναι δικαιολογημένη, από τοτε που το δευτεροβάθμιο προβλήματα είχε λιγότερο κόστος υπολογισμού, ειδικότερα αν ο ορίζοντας ελέγχου είναι Nu = 2. Αν η εφικτή γεωμετρική περιοχή είναι γνωστή, όπου είναι εύκολη στη περίπτωση Nu = 2,το ελάχιστο μπορεί να αποκτηθεί από έννοιες των πολλαπλασιαστών lagrange, αλλά αν χρησιμοποιείται η τεχνική του δευτεροβάθμιου προβλήματος είναι αδύνατον να εγγυηθούμε αν το ελάχιστο απέκτησε το ολικό ελάχιστο ή όχι. Τέτοιες διαδικασίες μπορούν να παρουσιάσουν πολλών ειδών περιορισμών παρόλο που οι πιο τυπικές είναι ενέργειες ελέγχου που βαίνουν στο κορεσμό (11),(12) και κορεσμένες ενέργειες ελέγχου (13),(14). (11) (12) (13) (14) Άλλη μία τυπική μη γραμμικότητα είναι το deadzone, για παράδειγμα ότι οφείλεται από την ακρίβεια του converter. Aυτοι οι περιορισμοί παρουσιάζονται στις ενέργειες ελέγχου κίνησης (15),(16) καθώς επίσης και οι ενέργειες ελέγχου αξίας (17),(18) (15) (16) (17) (18) Έτσι για τη περίπτωση Nu = 2 και με τη παρουσία ενέργειας ελέγχου (u) ή ενέργειας ελέγχου κίνησης (Δu) περιορισμών, είναι πιθανόν οι εξισώσεις (11) εώς (18) να εκπροσωπούνται από την ακόλουθη εξίσωση περιορισμού (19) Οταν η λύση είναι στο περιορισμό (constraint) τότε με τους πολλαπλασιαστές Lagrange παίρνουμε σε μορφή μήτρας την ισότητα 73

74 Η μέθοδος Lagrange χρειάζεται την λαγκρασιανή συνάρτηση (L).Αυτή η συνάρτηση απαρτίζεται από την ένδειξη κόστους (J) και το γραμμικό συνδιασμό περιορισμών και φαίνεται από κατω: Η παραπάνω λαγκρασιανή συνάρτηση βασίζεται στο και στο μ. 6.2 Βήματα εκτέλεσης του αλγορίθμου Εδώ θα περιγράψουμε το πρόγραμμα το όποιο συντάξαμε σε γλώσσα C με την βοήθεια της βιβλιοθήκης ΜΡΙ ώστε να μπορέσουμε να το παραλληλίσουμε. Στην έναρξη εκτέλεσης του προγράμματος μπορούμε να ορίσουμε, ώστε να τρέχει ταυτόχρονα σε έναν αριθμό διεργασιών οι οποίες μπορούν να τρέχουν σε πολλούς υπολογιστές είτε αυτοί είναι συνδεδεμένοι μεταξύ τους μέσω τοπικού δικτύου, είτε στον ίδιο υπολογιστή εάν είναι σύστημα πολλών επεξεργαστών. Στην αρχή του προγράμματος διαβάζονται κάποια δεδομένα τα οποία είναι ο αριθμός των εισόδων m και εξόδων n του συστήματος, ο ελάχιστος και μέγιστος ορίζοντας πρόβλεψης N 1 καιn 2 ο ορίζοντας ελέγχου Ν 3 καθώς επίσης και οι πίνακες G που περιέχουν τις βηματικές αποκρίσεις του συστήματος για τις Ν 2 χρονικές στιγμές. Ακόμα διαβάζονται οι πίνακες στάθμης R και Q, η τροχιά w και ο αριθμός βημάτων για τα οποία θα εκτελεστεί η προσομοίωση. Στη συνέχεια το πρόγραμμα υπολογίζει την τιμή του πίνακα Κ που παριστάνει το γραμμικό κέρδος του ελεγκτή και έπειτα ξεκινάει η προσομοίωση. Σε κάθε βήμα υπολογίζονται οι τιμές των ελευθέρων αποκρίσεων του συστήματος με βάση περασμένες τιμές των εισόδων και εξόδων του συστήματος. Έπειτα πολλαπλασιάζονται τα προβλεπόμενα σφάλματα μεταξύ των τιμών αναφοράς και των ελεύθερων αποκρίσεων του συστήματος για να προκύψουν τα επόμενα βήματα ελέγχου από τον ύπο Δ ut () = Kw ( f). Τα βήματα αυτά ελέγχου εφαρμόζονται στις εισόδους του συστήματος και προβλέπονται οι έξοδοι. Το πρόγραμμα συνεχίζει μέχρι να κάνει ένα συγκεκριμένο αριθμό βημάτων τα οποία δίνονται στα δεδομένα εισόδου. Στο τέλος της προσομοίωσης η κύρια διεργασία έχει στη μνήμη της, τις προβλεπόμενες τιμές των εισόδων και εξόδων του συστήματος. Η κύρια διεργασία είναι αυτή που διαβάζει τα δεδομένα εισόδου και εξόδου, στέλνει στις υπόλοιπες διεργασίες τα δεδομένα που πρέπει να επεξεργαστούν και συγκεντρώνει τα αποτελέσματα. 74

75 Ας δούμε λίγο πιο αναλυτικά ότι ο κάθε πίνακας G k για k [0,... N2 1] περιέχει τις τιμές των εξόδων του συστήματος τη στιγμή t+k+1 σε κάθε βηματική αλλαγή της μορφής Δ ut () = 1και Δ ut ( + j) = 0 για j = 0,1,2... τη στιγμή t. Δηλαδή για i [1,.., n] και j [1,.., m] έχουμε ( Gk) i, j = y i, j ( t+ k+ 1) όπου ( G k) i, jείναι το (i,j) στοιχείο του G k και yi, j( t+ k + 1) είναι τιμή της i-εξόδου του συστήματος όταν έχει εφαρμοστεί ένα βηματικό σήμα στην είσοδο j τη χρονική t. Έπειτα διαβάζονται οι πίνακες R και Q όπου Αφού γίνει η εισαγωγή των παραπάνω στοιχείων σχηματίζονται οι πίνακες Στη συνέχεια υπολογίζεται η τιμή του πίνακα Κ του ελεγκτή που ορίζεται ως 1 ( T T K = GN RG ) 123 N + Q G 123 N R. Η τιμή αυτή παριστάνει το γραμμικό κέρδος του 123 ελεγκτή το οποίο πολλαπλασιάζει τα προβλεπόμενα σφάλματα μεταξύ της τιμής αναφοράς και της προβλεπόμενης ελεύθερης απόκρισης του συστήματος για να προκύψουν τα επόμενα βήματα ελέγχου. Οι πίνακες R και Q είναι τετραγωνικοί πίνακες της τάξεως (Ν 2 -Ν 1 +1)n και Ν 3 m αντίστοιχα, ενώ ο 75

76 G N123 πίνακας έχει διαστάσεις (Ν 2 -Ν 1 +1)n γραμμές και Ν 3 m στήλες. Επομένως αν έχουμε ένα σύστημα πολλών εισόδων και εξόδων και θέσουμε μεγάλους ορίζοντες πρόβλεψης Ν 1 και Ν 2, τότε οι πίνακες R, Q καιg N123 αποκτούν πολύ μεγάλες διαστάσεις και οι υπολογισμοί που πρέπει να γίνουν αποδεικνύονται εξαιρετικά χρονοβόροι ακόμα και σε σύγχρονους επεξεργαστές. Ειδικότερα η T αντιστροφή του πίνακα ( GN RG 123 N + Q) που έχει διαστάσεις ( N m) ( N3 m) απαιτεί ένα σημαντικό αριθμό υπολογισμών. Θεωρώντας ότι τα προβλεπόμενα σήματα ελέγχου παραμένουν σταθερά μετά από Ν 3 < Ν 1 βήματα ελέγχου επιλέγουμε στους υπολογισμούς μας μικρές τιμές για τον ορίζοντα ελέγχου ώστε να ελαττώσουμε αρκετά τον χρόνο υπολογισμών. Αφού υπολογιστεί η τιμή του πίνακα Κ του ελεγκτή ξεκινάει η προσομοίωση υπολογίζοντας κάθε φορά Ν 2 -Ν 1 +1 προβλεπόμενες τιμές των εξόδων του συστήματος. Ας δούμε παρακάτω την ακολουθία βημάτων 1. index = 0, y(0) = y m, Δu(0) = 1 2. t = N 1 + index( N 2 N 1 +1 ), y m = y(t) 3. Για j = 1 εώς N 2 N 1 +1 υπολογίζονται οι τιμές των ελεύθερων αποκρίσεων του συστήματος όπου Πρακτικά η τιμή f j,i αντιστοιχεί στην πρόβλεψη της τιμής της εξόδου i τη χρονική στιγμή t + j όταν είναι γνωστές οι Ν 2 προηγούμενες τιμές των εισόδων. 4. Υπολογίζονται οι τιμές των σημάτων ελέγχου από τον τύπο ut () = Kw ( f N ) 12 = T T T T όπου fn [ f και w είναι η τροχιά αναφοράς που f2... fn2 N1 + 1] δίνεται σαν είσοδος στο πρόγραμμα λαμβάνοντας υπόψη τον περιορισμό u min u(t) u max 76

77 5. Υπολογίζονται οι τιμές των εξόδων του συστήματος από τον τύπο y = G u + f N N N N Όπου T u = [ Δu( t)... Δ u( t+ N 1) T ] T N 3 3 λαμβάνοντας υπόψη τον περιορισμό y min y(t) y max 6. Εισάγονται οι τιμές που υπολογίστηκαν για τις εισόδους u και τις εξόδου y του συστήματος στα βήματα 4 και index = index Αν index = L τότε τελειώνει η προσομοίωση αλλιώς το πρόγραμμα πηγαίνει στο βήμα Πολλαπλασιασμός πινάκων σε παραλληλία υπολογιστών Έστω ότι έχουμε δύο πραγματικούς πίνακες Α και Β και έναν πίνακα C οποίος είναι το γινόμενο τους. Χωρίζουμε τις διεργασίες στις οποίες εκτελείται το πρόγραμμα σε κύρια και δευτερεύουσες. Αν p είναι ο αριθμός των διεργασιών τότε αυτές έχουν τάξεις 0,1.. p - 1 και αντιστοιχίζουμε τη διεργασία με τάξη 0 στην κύρια διεργασία. Η κύρια διεργασία είναι αυτή που έχει στην μνήμη της τους πίνακες Α και Β. Θεωρούμε ότι οι διαστάσεις των πινάκων Α και Β είναι m n και n s αντίστοιχα ενώ ο πίνακας C που είναι το γινόμενο τους θα έχει διαστάσεις m s. Για να γίνει λοιπόν ο παραλληλισμός η κύρια διεργασία χωρίζει τον πίνακα Α σε p υποπίνακες διαιρώντας το αριθμό των γραμμών του πίνακα Α με τον αριθμό των διεργασιών. Αν k είναι το ακέραιο μέρος της διαίρεσης αυτής τότε ο υποπίνακας Α 0 αποτελείται από τις m k*(p- 1) πρώτες γραμμές του πίνακα Α και οι υποπίνακες Α 1 έως Α p-1 από τις k επόμενες γραμμές του πίνακα Α αντίστοιχα. 77

78 Ο πίνακας Α παίρνει τη μορφή Στη συνέχεια η κύρια διεργασία στέλνει σε κάθε μία από τις διεργασίες 1 έως p- 1 ολόκληρο τον πίνακα Β και τον υποπίνακα Α i αντίστοιχα όπου i=1,2 p-1. Έπειτα η κύρια και οι δευτερεύουσες διεργασίες πολλαπλασιάζουν το δικό τους τμήμα του πίνακα Α με τον πίνακα Β υπολογίζοντας με αυτόν τον τρόπο κάθε μία τον πίνακα C i. Ο πίνακας C που αποτελεί το γινόμενο των πινάκων A και Β υπολογίζεται όπως φαίνεται παρακάτω Τέλος η κάθε δευτερεύουσα διεργασία στέλνει τα αποτελέσματά της (τον πίνακα Ci) στην κύρια διεργασία η οποία σχηματίζει τον πίνακα C. Ας το δούμε και σχηματικά H κύρια διεργασία στέλνει τον πίνακα Β σε όλες τις διεργασίες 78

79 H κύρια διεργασία χωρίζει τον πίνακα Α σε υποπίνακες ίσων διαστάσεων τους οποίους στέλνει στις διεργασίες 1 έως p-1 Κάθε διεργασία εκτελεί τοπικά τον πολλαπλασιασμό Α i x B Κάθε δευτερεύουσα διεργασία στέλνει τα αποτελέσματα της στην κύρια διεργασία η οποία δημιουργεί τον πίνακα C 79

80 Κεφάλαιο 7 Αποτελέσματα και συμπεράσματα 7.1 Εισαγωγή Στο κεφάλαιο αυτό θα αναλύσουμε και θα παρουσιαστούν τα αποτελέσματα από την εκτέλεση του προγράμματος που αναπτύχθηκε και μελετήθηκε στα προηγούμενα κεφάλαια. Τα πειράματα εκτελέστηκαν στο εργαστήριο αρχιτεκτονικής και υπολογιστώ ν του τμήματος μας σε υπολογιστές που βρίσκοντα ι σε συστοιχία και αποτελούνται από επεξεργαστές μονού και διπλού πυρήνα. Για τον παραλληλισμό των υπολογισμών τροποποιήθηκε το πρόγραμμα ώστε να δέχεται σαν είσοδο τον αριθμό των εισόδων και εξόδων του συστήματος, το μέγιστο και ελάχιστο ορίζοντα πρόβλεψης Ν 2 και Ν 1 καθώς επίση ς και τον ορίζοντα ελέγχου Ν 3. Για τα πειράματα μας πήραμε μια σειρά από διαφορετικές εισόδους και εξόδους συστήματος όπως επίσης και τους ορίζοντες πρόβλεψης και ελέγχου. Θα δούμε παρακάτω σε διαγράμματα την διαφορά που είχαν οι υπολογιστές μονού και διπλού πυρήνα και πιο συγκεκριμένα θα δούμε τον λόγο επιτάχυνσης, ο οποίος ορίζεται ως το πηλίκο της διαίρεσης του χρόνου εκτέλεσης του προγράμματος σε έναν επεξεργαστή δια του χρόνου εκτέλεση ς του προγράμματος σε πολλούς επεξεργαστές. 80

81 7.2 Εκτέλεση σε συστοιχία υπολογιστών Βλέπουμε στον παρακάτω πίνακα τον αριθμό των διεξαχθέντων πειραμάτων καθώς και οι τιμές που χρησιμοποιήθηκαν ως είσοδοι σε κάθε πείραμα Αριθμός Πειράματος Αριθμός Εισόδων Αριθμός Εξόδων Ελάχιστος Ορίζοντας Πρόβλεψης Μέγιστος Ορίζοντας Πρόβλεψης Ορίζοντας Ελέγχου Σε κάθε πείραμα εξετάστηκαν δύο παράλληλες αρχιτεκτονικές, η αρχιτεκτονική του μονού επεξεργαστή σε κάθε υπολογιστή και η αρχιτεκτονική του διπλού επεξεργαστή σε κάθε κόμβο της συστοιχίας. Οι δύο αυτοί επεξεργαστές υλοποιούνται σε ένα chip με δύο ξεχωριστούς πυρήνες (dual core). Για να εκμεταλλευτούμε και τους δύο επεξεργαστές που υπάρχουν σε έναν υπολογιστή τρέχουμε το πρόγραμμα σε δύο διεργασίες στον υπολογιστή αυτό. Τα πειράματα μας έγιναν με την βοήθεια του MPICH2 που εξετάσαμε στο κεφάλαιο 5 και τον αλγόριθμο που αναπτύξαμε και υλοποιήσαμε σε γλώσσα C. 81

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: Αρχιτεκτονικές Von Neuman, Harvard. Κατηγοριοποίηση κατά Flynn. Υπολογισμός απόδοσης Συστημάτων

Διαβάστε περισσότερα

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

Διαβάστε περισσότερα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

Διαβάστε περισσότερα

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

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 9 1. Εισαγωγή... 13 1.1 Οι Μεγάλες Σύγχρονες Επιστημονικές Προκλήσεις... 13 1.2 Εξέλιξη της Παράλληλης Επεξεργασίας Δεδομένων... 14 1.3 Οι Έννοιες της Σωλήνωσης, του Παραλληλισμού

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων 1.1. Εισαγωγή Γενικότερα δεν υπάρχει κάποια ταξινόμηση των πιθανών δικτύων κάτω από την οποία να ταιριάζουν όλα τα δίκτυα. Παρόλα αυτά η ταξινόμηση τους είθισται να γίνεται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 11 η : Εισαγωγή σε Παράλληλες Αρχιτεκτονικές Παράλληλη Επεξεργασία Επίπεδο Παραλληλισμού Από εντολές έως ανεξάρτητες διεργασίες Οργανώσεις Παράλληλων Αρχιτεκτονικών Συμμετρικοί,

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή Κεφάλαιο 3 Το υλικό του υπολογιστή Εισαγωγή Τµήµατα του Η/Υ καιοργάνωση Μονάδα Κεντρικής Μνήµης Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδα Εισόδου Εξόδου ίαυλοι Επικοινωνίας Εναλλακτικές αρχιτεκτονικές

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06 Τεχνολογικά Επιτεύγµατα Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Ανάπτυξη ισχυρών µικροεπεξεργαστών ηµιουργία τοπικών δικτύων υψηλών ταχυτήτων «Εισαγωγή στα Κατανεµηµένα Λειτουργικά Συστήµατα»

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός: παράλληλες λ υπολογιστικές πλατφόρμες και ανάλυση προγραμμάτων

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

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

Αρχιτεκτονική Μνήμης

Αρχιτεκτονική Μνήμης ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter

Διαβάστε περισσότερα

Κεφάλαιο 3 Πολυπλεξία

Κεφάλαιο 3 Πολυπλεξία Κεφάλαιο 3 Πολυπλεξία Μάθημα 3.1: Μάθημα 3.2: Μάθημα 3.3: Πολυπλεξία επιμερισμού συχνότητας χρόνου Συγκριτική αξιολόγηση τεχνικών πολυπλεξίας Στατιστική πολυπλεξία Μετάδοση Δεδομένων Δίκτυα Υπολογιστών

Διαβάστε περισσότερα

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: Αρχιτεκτονικές Von Neuman, Harvard. Κατηγοριοποίηση κατά Flynn. Υπολογισμός απόδοσης Συστημάτων

Διαβάστε περισσότερα

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

Διαβάστε περισσότερα

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

Διαβάστε περισσότερα

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

Διάρθρωση. Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης. Διάρθρωση. Δίκτυο Υπολογιστών: ένας απλός ορισμός. Ευάγγελος Παπαπέτρου

Διάρθρωση. Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης. Διάρθρωση. Δίκτυο Υπολογιστών: ένας απλός ορισμός. Ευάγγελος Παπαπέτρου Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 22 Ε.Παπαπέτρου

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών I

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 22 Διάρθρωση 1 Βασικές

Διαβάστε περισσότερα

Επαναληπτικές Ασκήσεις Μαθήματος

Επαναληπτικές Ασκήσεις Μαθήματος Επαναληπτικές Ασκήσεις Μαθήματος Ερώτηση: EAM1. Ποιο από τα παρακάτω χαρακτηριστικά δεν αποτελεί κριτήριο κατηγοριοποίησης δικτύων. Κλίμακα Τεχνολογία μετάδοσης Πλήθος τερματικών εντός του δικτύου Ερώτηση:

Διαβάστε περισσότερα

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

Διαβάστε περισσότερα

Αρχιτεκτονική Μνήµης

Αρχιτεκτονική Μνήµης ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Μνήµης Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter

Διαβάστε περισσότερα

3. Προσομοίωση ενός Συστήματος Αναμονής.

3. Προσομοίωση ενός Συστήματος Αναμονής. 3. Προσομοίωση ενός Συστήματος Αναμονής. 3.1. Διατύπωση του Προβλήματος. Τα συστήματα αναμονής (queueing systems), βρίσκονται πίσω από τα περισσότερα μοντέλα μελέτης της απόδοσης υπολογιστικών συστημάτων,

Διαβάστε περισσότερα

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα 1 Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα εύκολη, τη στιγμή που γνωρίζουμε ότι ένα σύνθετο δίκτυο

Διαβάστε περισσότερα

Το υλικό του υπολογιστή

Το υλικό του υπολογιστή Το υλικό του υπολογιστή Ερωτήσεις 1. Τι αντιλαμβάνεστε με τον όρο υλικό; Το υλικό(hardware) αποτελείται από το σύνολο των ηλεκτρονικών τμημάτων που συνθέτουν το υπολογιστικό σύστημα, δηλαδή από τα ηλεκτρονικά

Διαβάστε περισσότερα

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος? Μετάδοση Δεδομένων Δίκτυα Υπολογιστών 68 Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της Απάντηση : Στα δίκτυα μεταγωγής κυκλώματος (circuit switching networks), η μετάδοση των

Διαβάστε περισσότερα

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

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 ΓΛΩΣΣΑΡΙ Αµοιβαίος αποκλεισµός (mutual exclusion) Στο µοντέλο κοινού χώρου διευθύνσεων, ο αµοιβαίος αποκλεισµός είναι ο περιορισµός του αριθµού των διεργασιών

Διαβάστε περισσότερα

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

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

Πολυπύρηνοι επεξεργαστές Multicore processors Πολυπύρηνοι επεξεργαστές Multicore processors 1 Μετάβαση στους πολυπύρηνους(1) Απόδοση των µονοεπεξεργαστών 25% ετήσια βελτίωση της απόδοσης από το 1978 έως το 1986 Κυρίως από την εξέλιξη της τεχνολογίας

Διαβάστε περισσότερα

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

Διαβάστε περισσότερα

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 7 «Διαχείριση Μνήμης» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Κύρια Μνήμη 1. Εισαγωγή 2. Βασική διαχείριση μνήμης 3. Μνήμη και πολυπρογραμματισμός 4. Τμηματοποίηση

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

Διαβάστε περισσότερα

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ << ΜΕΛΕΤΗ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ CUDA ΚΑΙ ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΡΤΩΝ GPU ΤΗΣ NVIDIA >> Αρ. Μητρώου: 04/2519 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ > Της φοιτήτριας ΚΕΛΑΪΔΗ ΑΙΜΙΛΙΑ Επιβλέπων καθηγητής ΔΙΑΜΑΝΤΑΡΑΣ ΚΩΝ/ΝΟΣ Αρ. Μητρώου: 04/2519 Θεσσαλονίκη

Διαβάστε περισσότερα

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing):

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing): Δρομολόγηση Ι Εισαγωγή - ορολογία Προώθηση (forwarding): Οι συσκευές διαδικτύωσης (γέφυρες, δρομολογητές, κ.τ.λ.) προωθούν πακέτα δεδομένων στα κατάλληλα μονοπάτια βάσει των πινάκων δρομολόγησης (routing

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 1. Έστω ότι θέλετε να συνδέσετε 20 υπολογιστές με συνδέσεις από σημείο σε σημείο (point-to-point), ώστε να είναι δυνατή η επικοινωνία όλων

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών I

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 20 Διάρθρωση 1 Βασικές

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

Διαβάστε περισσότερα

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα Ανδρέας Βέγλης, Αναπληρωτής Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. 5.1 Γενικά Τα πρώτα δίκτυα χαρακτηρίζονταν από την «κλειστή» αρχιτεκτονική τους με την έννοια ότι αυτή ήταν γνωστή μόνο στην εταιρία που την είχε σχεδιάσει. Με τον

Διαβάστε περισσότερα

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Αρχές Δικτύων Επικοινωνιών Σελ. 9-50 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-b.ggia.info/ Creative Commons License 3.0 Share-Alike Σύνδεση από σημείο

Διαβάστε περισσότερα

Διασύνδεση τοπικών δικτύων

Διασύνδεση τοπικών δικτύων Κεφάλαιο 10 Διασύνδεση τοπικών δικτύων ------------------------- Μάθημα 10.1 : Αρχές διασύνδεσης τοπικών δικτύων Μάθημα 10.2 : Επιλογή τοπικού δικτύου και μέσου μετάδοσης Μάθημα 10.3 : Επιλογή τοπικού

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

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

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών & Data Path Allocation Σύνθεση Data Path Το DataPath είναι ένα netlist που αποτελείται από τρεις τύπους µονάδων: (α) Λειτουργικές Μονάδες, (β) Μονάδες Αποθήκευσης και (γ) Μονάδες ιασύνδεσης Αριθµό Μονάδων

Διαβάστε περισσότερα

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Εισαγωγή H κεντρική μονάδα επεξεργασίας (ΚΜΕ) και η κύρια μνήμη αποτελούν τα βασικά δομικά στοιχεία ενός υπολογιστικού συστήματος. Η πρώτη εκτελεί εντολές χειρισμού δεδομένων

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Η χρήση του χρόνου Μ.Στεφανιδάκης Συστήματα πραγματικού χρόνου: ελεγκτής και ελεγχόμενο σύστημα real-time system

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων

Διαβάστε περισσότερα

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο) I χειμερινό εξάμηνο & ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II εαρινό εξάμηνο (σε κίτρινο υπόβαθρο). Νικολός Καθηγητής ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην ομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών Ενότητα 1.1 Υλικό

Διαβάστε περισσότερα

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχιτεκτονική Eckert-von Neumann εισόδου μεταφορά δεδομένων από έξω προς τον Η/Υ εξόδου μεταφορά δεδομένων από τον Η/Υ προς τα έξω ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Κύκλος Μηχανής κεντρικός έλεγχος/πράξεις

Διαβάστε περισσότερα

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

Διαβάστε περισσότερα

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

Διαβάστε περισσότερα

Παραλληλισµός Εντολών (Pipelining)

Παραλληλισµός Εντολών (Pipelining) ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,

Διαβάστε περισσότερα

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μαθησιακές δυσκολίες ΙΙ Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μάρτιος 2010 Προηγούμενη διάλεξη Μαθησιακές δυσκολίες Σε όλες

Διαβάστε περισσότερα

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες 4.1 Γενικά Σκοπός ενός δικτύου υπολογιστών είναι οι χρήστες να έχουν τη δυνατότητα να διαμοιράζονται πληροφορίες και συσκευές του δικτύου. Η σχεδίαση και η ανάπτυξη

Διαβάστε περισσότερα

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ 1 o ΔΙΑΓΩΝΙΣΜΑ ΘΕΜΑ 1 ο Α) Ποια είναι τα βασικά στοιχεία, τα οποία χαρακτηρίζουν το ISDN; Η ψηφιακή μετάδοση. Όλα τα σήματα μεταδίδονται σε ψηφιακή μορφή απ' άκρη σ' άκρη του δικτύου,

Διαβάστε περισσότερα

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

Μετρικές & Επιδόσεις. Κεφάλαιο V Μετρικές & Επιδόσεις Κεφάλαιο V Χρόνος εκτέλεσης & επιτάχυνση Σειριακός χρόνος εκτέλεσης: Τ (για τον καλύτερο σειριακό αλγόριθμο) Παράλληλος χρόνος εκτέλεσης: (με επεξεργαστές) Επιτάχυνση (speedup): S

Διαβάστε περισσότερα

Εισαγωγή Θέματα H/W. Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης. Κατανεμημένα Συστήματα (Ε) Εισαγωγή: Θέματα H/W 1

Εισαγωγή Θέματα H/W. Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης. Κατανεμημένα Συστήματα (Ε) Εισαγωγή: Θέματα H/W 1 Εισαγωγή Θέματα H/W Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Εισαγωγή: Θέματα H/W 1 Θέματα Hardware Τα ΚΣ αποτελούνται από πολλαπλά CPUs ιαφορετικοί τρόποι σύνδεσης και επικοινωνίας

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Για βελτίωση της απόδοσης

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

7.9 ροµολόγηση. Ερωτήσεις

7.9 ροµολόγηση. Ερωτήσεις 7.9 ροµολόγηση Ερωτήσεις 1. Να δώσετε τον ορισµό της δροµολόγησης; 2. Από τι εξαρτάται η χρονική στιγµή στην οποία λαµβάνονται οι αποφάσεις δροµολόγησης; Να αναφέρετε ποια είναι αυτή στην περίπτωση των

Διαβάστε περισσότερα

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

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 4: Τεχνικές Μετάδοσης ΜΕΤΑΓΩΓΗ Τεχνική µεταγωγής ονομάζεται ο τρόπος µε τον οποίο αποκαθίσταται η επικοινωνία ανάµεσα σε δύο κόµβους με σκοπό την

Διαβάστε περισσότερα

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

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ημέχρι τώρα περιγραφή των πρωτοκόλλων TCP/IP αποδεικνύει, ότι το πρωτόκολλο IP είναι υπεύθυνο για τη μεταφορά των αυτοδύναμων πακέτων στον προορισμό, που δηλώνεται από τη διεύθυνση προορισμού, αλλά δεν

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,

Διαβάστε περισσότερα

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧ/ΚΩΝ ΚΑΙ ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΕΠΙΚΟΙΝΩΝΙΩΝ, ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα 1. Μήνυμα μήκους

Διαβάστε περισσότερα