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

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

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

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Κωνσταντινίδη Νικόλαου του Γεωργίου Αριθμός Μητρώου: 6295 Θέμα «ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ GRID» Επιβλέπων Καθηγητής Ευθύμιος Χούσος Αριθμός Διπλωματικής Εργασίας: Πάτρα, Οκτώβριος 213

2

3 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ GRID» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Κωνσταντινίδης Νικόλαος του Γεωργίου Αριθμός Μητρώου: 6295 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις.../../ Ο Επιβλέπων Ο Διευθυντής του Τομέα Καθηγητής Ευθύμιος Χούσος Καθηγητής Ευθύμιος Χούσος

4

5 Αριθμός Διπλωματικής Εργασίας: Θέμα: «ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ GRID» Φοιτητής:Κωνσταντινίδης Νικόλαος Επιβλέπων: Καθηγητής Χούσος Ευθύμιος

6

7 Περίληψη Η ανάγκη για την επίλυση μεγάλων προβλημάτων και η εξέλιξη της τεχνολογίας του διαδικτύου, είχε ως αποτέλεσμα την διαρκή ανάγκη για την εύρεση όλο και περισσότερων πόρων. Η ανάγκη αυτή οδήγησε στην δημιουργία δομών συνεργαζόμενων υπολογιστικών συστημάτων, με απώτερο σκοπό την επίλυση προβλημάτων που απαιτούν μεγάλη υπολογιστική ισχύ ή την αποθήκευση μεγάλου όγκου δεδομένων. Η ύπαρξη τέτοιων δομών αλλά και κεντρικών μονάδων επεξεργασίας με περισσότερους από έναν επεξεργαστές, δημιούργησε πρωτόκολλα για την δημιουργία εφαρμογών που θα εκτελούνται και θα επιλύουν ένα πρόβλημα σε περισσότερους από έναν επεξεργαστές, ώστε να επιτευχθεί η μείωση του χρόνου εκτέλεσης. Ένα παράδειγμα τέτοιου πρωτοκόλλου είναι αυτό της ανταλλαγής μηνυμάτων (MPI). Σκοπός της παρούσας διπλωματικής εργασίας είναι η τροποποίηση μιας υπάρχουσας εφαρμογή, που απαιτεί σημαντική υπολογιστική ισχύ, με σκοπό την εκμετάλλευση συστημάτων όπως αυτά που περιγράφηκαν προηγούμενα. Μέσα από αυτή την διαδικασία θα γίνει ανάλυση των πλεονεκτημάτων και των μειονεκτημάτων του παράλληλου προγραμματισμού. Abstract The need to solve large problems and the development of internet technology, has resulted in the need to find more and more resources. This need led to the creation of structures collaborating systems, with a view to solving problems that require large computing power or storage of large amounts of data. The existence of such structures and central processing units with more than one processor, created protocols for the develop applications that will run and will solve a problem in more than one processor in order to achieve the reduction in execution time. An example of such a protocol is that of messaging (MPI). The purpose of this diploma thesis is to modify an existing application that requires significant computing power to exploit systems such as those described above. Through this process will analyze the advantages and disadvantages of parallel programming.

8

9 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1 : ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ...1 ΣΚΟΠΟΣ... 1 ΤΙ ΕΙΝΑΙ Ο ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ...3 ΤΟ ΣΕΙΡΙΑΚΟ ΜΟΝΤΕΛΟ ΜΟΝΤΕΛΟ Von Neumann...4 ΚΑΤΗΓΟΡΙΕΣ ΥΠΟΛΟΓΙΣΤΩΝ ΜΕ ΠΟΛΛΟΥΣ ΕΠΕΞΕΡΓΑΣΤΕΣ...6 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΜΝΗΜΗΣ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ...1 ΠΑΡΑΛΛΗΛΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΜΟΝΤΕΛΑ...12 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΑΡΑΛΛΗΛΩΝ ΕΠΕΞΕΡΓΑΣΤΩΝ...13 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΑΡΑΛΛΗΛΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ...14 ΠΛΕΓΜΑ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2 : ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ...23 ΣΚΟΠΟΣ ΑΝΑΛΥΣΗ ΣΕΙΡΙΑΚΩΝ ΑΛΓΟΡΙΘΜΩΝ...25 ΣΥΓΚΡΙΣΗ ΣΕΙΡΙΑΚΟΥ ΚΑΙ ΠΑΡΑΛΛΗΛΟΥ ΑΛΓΟΡΙΘΜΟΥ...26 ΑΠΟΔΟΤΙΚΟΤΗΤΑ ΚΑΙ ΚΟΣΤΟΣ ΝΟΜΟΣ ΤΟΥ AMDAHL Ο ΝΟΜΟΣ ΤΟΥ GUSTAFSON ΚΕΦΑΛΑΙΟ 3 : ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY...33 ΣΚΟΠΟΣ ΕΦΑΡΜΟΓΗ ΡΕΥΣΤΟΜΗΧΑΝΙΚΗΣ ΘΕΩΡΙΑ ΓΡΑΦΗΜΑΤΩΝ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY (CHOLESKY FACTORIZATION)...38 ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY ΣΕ ΠΟΛΛΟΥΣ ΕΠΕΞΕΡΓΑΣΤΕΣ...49 ΚΕΦΑΛΑΙΟ 4 : ΥΛΟΠΟΙΗΣΗ ΣΚΟΠΟΣ ΕΙΣΑΓΩΓΗ ΠΡΩΤΗ ΥΛΟΠΟΙΗΣΗ ΔΕΥΤΕΡΗ ΥΛΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 5 : ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ...83 ΣΚΟΠΟΣ ΕΙΣΑΓΩΓΗ ΣΕΙΡΙΑΚΗ ΕΦΑΡΜΟΓΗ ΠΑΡΑΛΛΗΛΗ ΕΦΑΡΜΟΓΗ... 87

10 ΣΥΓΚΡΙΣΗ ΕΚΔΟΣΕΩΝ ΣΕΙΡΙΑΚΗΣ ΚΑΙ ΠΑΡΑΛΛΗΛΗΣ ΥΛΟΠΟΙΗΣΗΣ...9 ΣΥΓΚΡΙΣΗ ΕΦΑΡΜΟΓΗΣ ΡΕΥΣΤΟΜΗΧΑΝΙΚΗΣ ΓΙΑ ΠΑΡΑΛΛΗΛΗ ΚΑΙ ΣΕΙΡΙΑΚΗ ΕΚΤΕΛΕΣΗ ΣΥΜΠΕΡΑΣΜΑΤΑ ΠΑΡΑΡΤΗΜΑ Α ΠΑΡΑΡΤΗΜΑ Β ΠΑΡΑΡΤΗΜΑ Γ ΠΑΡΑΡΤΗΜΑ Δ ΒΙΒΛΙΟΓΡΑΦΙΚΕΣ ΑΝΑΦΟΡΕΣ

11 ΕΥΧΑΡΙΣΤΙΕΣ Η παρούσα Διπλωματική Εργασία πραγματοποιήθηκε στο Εργαστήριο Συστημάτων Υπολογιστών του τομέα Ηλεκτρονικής και Υπολογιστών του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πάτρας, υπό την επίβλεψη του καθηγητή Χούσου Ευθύμιου, τον οποίο οφείλω να ευχαριστήσω θερμά, για την ανάθεση του θέματος και την συμβολή του κατά την διάρκεια της πραγματοποίησής της. Επίσης θα ήθελα να ευχαριστήσω τον υποψήφιο Διδάκτορα Κολώνια Βασίλειο, για την βοήθειά του και τις συμβουλές του στην υλοποίηση της εργασίας. Τέλος, ευχαριστώ θερμά την οικογένεια μου και τους φίλους μου, για την ακατάπαυστη συμπαράσταση και ηθική υποστήριξη τους, όλα αυτά τα χρόνια.

12

13 ΚΕΦΑΛΑΙΟ 1 : ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΣΚΟΠΟΣ Σε αυτό το κεφάλαιο θα γίνει μια εισαγωγή στην έννοια του παράλληλου προγραμματισμού, τι είναι και για ποιον λόγο τον χρησιμοποιούμε. Θα παρουσιαστούν οι αρχιτεκτονικές των παράλληλων συστημάτων, τα μοντέλα προγραμματισμού για μηχανήματα με παράλληλη αρχιτεκτονική καθώς επίσης και τον τρόπο με τον οποίο σχεδιάζουμε ένα πρόγραμμα για αυτά τα συστήματα.

14

15 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΙ ΕΙΝΑΙ Ο ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Στον σειριακό προγραμματισμό γράφουμε ένα πρόγραμμα προκειμένου να εκτελεστεί σε σειριακούς υπολογιστές. Με τον όρο αυτό εννοούμε οτι η εκτέλεση θα γίνει σε έναν επεξεργαστή, ο οποίος θα εκτελέσει την μια εντολή μετά την άλλη και θα εκτελείται μόνο μια εντολή την φόρα μέχρι να φτάσουμε στο τέλος του προγράμματος. Αντιθέτως, στον παράλληλο προγραμματισμό δεν συμβαίνει αυτό. Τα συστήματα που χρησιμοποιούμε σε αυτή την περίπτωση διαθέτουν περισσότερους επεξεργαστές, και ορισμένα τμήματα του προγράμματος εκτελούνται ταυτόχρονα, εφόσον βέβαια κάτι τέτοιο είναι εφικτό. Γι αυτό, το πρόγραμμα αρχικά χωρίζεται σε τμήματα τα οποία μπορούν να εκτελεστούν ταυτόχρονα και ο κάθε επεξεργαστής αναλαμβάνει την εκτέλεση ενός τμήματος από αυτά με τον κλασσικό σειριακό τρόπο. Είναι λοιπόν φανερό οτι κάτι τέτοιο δίνει την δυνατότητα να εκτελεστεί ένα πρόγραμμα σε λιγότερο χρόνο αφού κάποια κομμάτια του μπορούν να εκτελεστούν ταυτόχρονα. Στην εικόνα 1.1 φαίνεται ο τρόπο εκτέλεσης ενός προγράμματος σε σειριακές και παράλληλες αρχιτεκτονικές. Εικόνα 1.1 Σειριακή και παράλληλη εκτέλεση προγραμμάτων [1] Επομένως, ως ορισμό, θα μπορούσαμε να πούμε οτι ο παράλληλος προγραμματισμός είναι ο προγραμματισμός σε μία γλώσσα που επιτρέπει διαφορετικά τμήματα της υπολογιστικής διαδικασίας να εκτελούνται ταυτόχρονα σε διαφορετικούς υπολογιστές. Γιατί όμως παράλληλος προγραμματισμός; Μια απάντηση στο ερώτημα αυτό δίνεται στο [7]. Ένας λόγος λοιπόν, για τον οποίο ο παράλληλος προγραμματισμός είναι [1] to Parallel Computing.htm 3

16 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ σημαντικός, αναφέρθηκε ήδη και αφορά την ταχύτητα εκτέλεσης ενός προγράμματος. Επίσης θα πρέπει να σημειωθεί οτι οι ταχύτητες των επεξεργαστών δεν αυξάνονται με τον ίδιο ρυθμό που αυξάνονταν τα προηγούμενα χρόνια και γι αυτό, προκειμένου να πετύχουμε γρηγορότερες ταχύτητες, δεν στοχεύουμε στην αύξηση της ταχύτητας του επεξεργαστή αλλά στην δημιουργία αρχιτεκτονικών με περισσότερους επεξεργαστές, Τελικώς, με τον τρόπο αυτό, πετυχαίνουμε γρηγορότερες ταχύτητες αν χρησιμοποιούμε τους επεξεργαστές αυτούς ταυτόχρονα. Με τον τρόπο αυτό λοιπόν μπορούμε να κάνουμε χρήση επεξεργαστών ή μηχανημάτων που έχουμε ήδη και να δημιουργήσουμε παράλληλα συστήματα τα οποία να είναι αρκετά γρήγορα κερδίζοντας σε κόστος αφού δεν θα είναι αναγκαία η αγορά νέου, γρηγορότερου, επεξεργαστή. Αυτό είναι και το πλέγμα υπολογιστών (grid computing)[1], ένας σύνδεσμος υπολογιστικών πόρων από διάφορες τοποθεσίες στην γη, με σκοπό την επίτευξη ενός κοινού στόχου και μπορεί να θεωρηθεί ως κατανεμημένο σύστημα. Επίσης υπάρχουν αρκετά μεγάλα προβλήματα, τα οποία χρειάζονται πολλούς πόρους, ειδικά σε μνήμη και είναι αδύνατον να λυθούν σε έναν υπολογιστή και γι αυτό γίνεται αναγκαία η χρήση περισσοτέρων. Οι υπολογιστές που θα χρησιμοποιηθούν δεν είναι απαραίτητο να βρίσκονται στον ίδιο χώρο αλλά οπουδήποτε αλλού. Επομένως αν τοπικά διαθέτουμε ένα υπολογιστικό σύστημα με περιορισμένες δυνατότητες, μπορούμε να χρησιμοποιήσουμε άλλους που βρίσκονται κάπου αλλού και μας παρέχουν περισσότερους υπολογιστικούς πόρους. ΤΟ ΣΕΙΡΙΑΚΟ ΜΟΝΤΕΛΟ ΜΟΝΤΕΛΟ Von Neumann Τα παράλληλα συστήματα και προγράμματα έχουν στηριχθεί και αναπτυχθεί πάνω σε σειριακά μοντέλα. Γι αυτό πριν κάνουμε αναφορά σε αυτά τα συστήματα θα δούμε πως δομείται ένα σειριακό σύστημα. Οι υπολογιστές βασίζονται παραδοσιακά σε ένα μοντέλο προγραμματισμού αρχιτεκτονικής το οποίο είναι γνωστό ως μοντέλο von Neumann ή απλώς ως σειριακό μοντέλο. Το μοντέλο αυτό[1] εμφανίστηκε το 1945 και περιγράφει έναν ψηφιακό υπολογιστή ο οποίος αποτελείται χονδρικά από τρία βασικά μέρη, την κύρια μνήμη, την κεντρική μονάδα επεξεργασίας και μια διασύνδεση μεταξύ τους. [1] 4

17 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Εικόνα Το μοντέλο von Neumann ή σειριακό μοντέλο [1] Η κύρια μνήμη χρησιμοποιείται για την αποθήκευση δεδομένων και εντολών. Αποτελείται από θέσεις οι οποίες είναι κατάλληλες τόσο για την αποθήκευση δεδομένων όσο και για την αποθήκευση εντολών. Κάθε θέση έχει μια διεύθυνση, με βάση την οποία μπορούμε να προσπελάσουμε το περιεχόμενό της. Το δεύτερο βασικό στοιχείο της αρχιτεκτονικής, η κεντρική μονάδα επεξεργασίας (CPU), αποτελείται από δυο βασικά κομμάτια, την μονάδα ελέγχου (Control Unit), και την αριθμητική και λογική μονάδα (Arithmetic and Logic Unit). Η πρώτη είναι υπεύθυνη για να αποφασίσει ποια θα είναι η επόμενη εντολή που θα εκτελεστεί ενώ η εκτέλεση της γίνεται στην αριθμητική και λογική μονάδα. Τα δεδομένα εντός της κεντρικής μονάδας και οι πληροφορίες σχετικά με την κατάσταση του προγράμματος αποθηκεύονται σε ειδικά και γρήγορα αποθηκευτικά μέσα που καλούνται registers, ενώ υπάρχει και ένας ειδικός register που καλείται program counter και αποθηκεύει την θέση της επόμενης εντολής που θα εκτελεστεί. Η μεταφορά δεδομένων και εντολών μεταξύ της κεντρικής μονάδας επεξεργασίας και της κύριας μνήμης γίνεται με τους διαύλους επικοινωνίας (bus), που είναι ένα σύνολο από παράλληλα καλώδια και κάποιο κύκλωμα που ελέγχει την πρόσβαση σε αυτά. Όταν τα δεδομένα μετακινούνται από την μνήμη στην κεντρική μονάδα επεξεργασίας έχουμε ανάγνωση δεδομένων ενώ στην αντίθετη περίπτωση, όταν δηλαδή μετακινούνται δεδομένα από την κεντρική μονάδα επεξεργασίας προς την κύρια μνήμη έχουμε αποθήκευση δεδομένων. Μια μηχανή von Neumann εκτελεί μια μεμονωμένη εντολή την φορά, όπως έχει καθοριστεί από το πρόγραμμα, και αυτή επιδρά μόνο σε ορισμένα από τα δεδομένα. Η διαδικασία που γίνεται προκειμένου να εκτελεστεί η εντολή σε αυτή την μηχανή είναι [1] 5

18 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ αρχικά η λήψη της επόμενης εντολής από την κύρια μνήμη, η θέση της οποίας είναι αποθηκευμένη στον program counter, η εκτέλεσή της ανάλογα με τις ενέργειες που καθορίζει προκαλώντας πιθανόν κάποια τροποποίηση δεδομένων στην μνήμη. Ο κύκλος αυτός επαναλαμβάνεται συνεχώς. Ένα από τα βασικά προβλήματα αυτού του μοντέλου είναι το λεγόμενο von Neumann bottleneck, λόγω του διαχωρισμού της κεντρικής μονάδας επεξεργασίας και της μνήμης. Ουσιαστικά αυτό το οποίο καθορίζει το μέγεθος των δεδομένων που μπορούν να προσπελαστούν είναι ο δίαυλος επικοινωνίας, με αποτέλεσμα την αύξηση του χρόνου εκτέλεση. ΚΑΤΗΓΟΡΙΕΣ ΥΠΟΛΟΓΙΣΤΩΝ ΜΕ ΠΟΛΛΟΥΣ ΕΠΕΞΕΡΓΑΣΤΕΣ Ο Michael J. Flynn το 1966 ταξινόμησε τις αρχιτεκτονικές των υπολογιστών με βάση τον αριθμό των εντολών που μπορεί να εκτελέσει ταυτόχρονα και των δεδομένων που είναι διαθέσιμα στην αρχιτεκτονική. Με βάση τα προηγούμενα κριτήρια έχουμε τέσσερις κατηγορίες αρχιτεκτονικών [1][2] [1] to Parallel Computing.htm [2] 6

19 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ 1. SISD Single Instruction, Single Data stream 7

20 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Σε αυτή την αρχιτεκτονική έχουμε έναν επεξεργαστή, οποίος εκτελεί μία εντολή πάνω στα δεδομένα που είναι αποθηκευμένα σε μια μνήμη. Αυτή η αρχιτεκτονική αντιστοιχίζεται στην αρχιτεκτονική von Neumann. Εικόνα 1.3 Εκτέλεση αρχιτεκτονική SISD εντολών με την 2. SIMD - Single Instruction, Multiple Data streams Σε αυτή την αρχιτεκτονική έχουμε την εκτέλεση μιας εντολής σε διαφορετικά δεδομένα ταυτόχρονα. αρχιτεκτονική παράλληλου Αυτή η είναι ένας τύπος υπολογιστή και παρέχει παραλληλισμό σε επίπεδο δεδομένων (data level parallelism). Αυτού του είδους ο παραλληλισμός Εικόνα 1.4 Εκτέλεση αρχιτεκτονική SIMD εντολών με την χρησιμοποιείται στα πολυμέσα. 3. MISD - Multiple Instruction, Single Data stream Αυτός είναι ένας τύπος παράλληλης αρχιτεκτονικής στην οποία εφαρμόζουμε διαφορετικές εντολές δεδομένα. Εικόνα 1.5 Εκτέλεση αρχιτεκτονική MISD εντολών με την 4. MIMD - Multiple Instruction, Multiple Data streams 8 πάνω στα ίδια

21 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Οι μηχανές με αυτή την αρχιτεκτονική έχουν έναν αριθμό από επεξεργαστές οι οποίοι λειτουργούν ανεξάρτητα και ταυτόχρονα. Κάθε στιγμή διαφορετικοί επεξεργαστές μπορούν να εκτελέσουν διαφορετικές εντολές πάνω σε διαφορετικά δεδομένα. Ανάλογα με τον τρόπο επικοινωνίας τους χωρίζονται σε κοινής μνήμης (shared memory) και Εικόνα 1.6 Εκτέλεση αρχιτεκτονική MIMD εντολών με την κατανεμημένης μνήμης (distributed memory). Στις επόμενες εικόνες δείχνουμε σχηματικά τους παραπάνω τύπους αρχιτεκτονικής υπολογιστών [1] 9

22 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Εικόνα Κατηγοριοποίηση υπολογιστών κατά Flynn [1] Στην αρχιτεκτονική κοινής μνήμης οι επεξεργαστές δεν συνδέονται μεταξύ τους, αλλά μόνο με την κοινή μνήμη μέσω ενός δικτύου διασύνδεσης. Σε τέτοιου είδους αρχιτεκτονικές, ο προγραμματιστής θα πρέπει να προσέχει το πότε ένα πρόγραμμα ή επεξεργαστής διαβάζει ένα δεδομένο. Ο κάθε επεξεργαστής κρατάει ένα δικό του αντίγραφο, στην cache του, από κάποιο δεδομένο που υπάρχει στην κύρια μνήμη. Αν όμως κάποιος άλλος το αλλάξει τότε αυτό θα έχει λάθος τιμή. Το πρόβλημα αυτό είναι γνωστό ως Cache Coherency Problem. Αντίθετα, στην αρχιτεκτονική κατανεμημένης μνήμης, ο κάθε επεξεργαστής έχει την δική του μνήμη και επικοινωνεί με τους υπόλοιπους με χρήση μηνυμάτων. Κάθε επεξεργαστής λαμβάνει ένα αντίγραφο του προγράμματος και το εκτελεί χωρίς να έχει τίποτα κοινό με κάποιον άλλον επεξεργαστή. Επομένως αν θέλουμε κάποιο συγχρονισμό μεταξύ των επεξεργαστών, τότε θα πρέπει είτε να λάβουμε κάποιο δεδομένο κατόπιν αιτήσεως, είτε οι τοπικές μνήμες των επεξεργαστών να έχουν κοινά δεδομένα. Ένα πρόβλημα όμως που έχουμε εδώ είναι η καθυστέρηση που εισάγεται από το δίκτυο διασύνδεσης κατά την ανταλλαγή μηνυμάτων μεταξύ των επεξεργαστών. [1] to Parallel Computing.htm 1

23 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΜΝΗΜΗΣ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Με βάση τον τρόπο με τον οποίο οργανώνεται η μνήμη καθώς επίσης και η πρόσβαση των επεξεργαστών σε αυτή, οι παράλληλοι υπολογιστές χωρίζονται στις ακόλουθες κατηγορίες: κοινής μνήμης (shared memory) κατανεμημένης μνήμης (distributed memory) υβριδικό κατανεμημένης-κοινής μνήμης (hybrid distributed-shared memory) Σε γενικές γραμμές οι υπολογιστές κοινής μνήμης έχουν διαφορές μεταξύ τους, όμως η γενική ιδέα είναι η ίδια, οτι δηλαδή όλοι οι επεξεργαστές έχουν πρόσβαση σε όλη την μνήμη. Οι επεξεργαστές μπορούν να λειτουργούν ανεξάρτητα ο ένας από τον άλλον, αλλά μοιράζονται την ίδια μνήμη μεταξύ τους και οι αλλαγές που κάνει ένας επεξεργαστής μπορούν να γίνουν ορατές από όλους τους επεξεργαστές. Σε τέτοιου είδους αρχιτεκτονικές λοιπόν, ο κάθε επεξεργαστής κρατάει ένα δικό του αντίγραφο, στην cache του, από κάποιο δεδομένο που υπάρχει στην κύρια μνήμη. Αν όμως κάποιος άλλος το αλλάξει τότε αυτό θα έχει λάθος τιμή. Το πρόβλημα αυτό είναι γνωστό ως Cache Coherency Problem. Είναι λοιπόν ευθύνη του προγραμματιστή να ορίσει πότε και ποιος επεξεργαστής διαβάζει ή αλλάζει κάποια θέση μνήμης. Οι επεξεργαστές δεν συνδέονται μεταξύ τους, αλλά μόνο με την κοινή μνήμη μέσω ενός δικτύου διασύνδεσης. Οι υπολογιστές σε αυτή την κατηγορία μπορούν να χωριστούν σε δύο ομάδες, τις μηχανές UMA (Uniform Memory Access) και τις μηχανές NUMA (Non-Uniform Memory Access)[1]. Εικόνα 1.8 Αρχιτεκτονική κοινής μνήμης UMA[1] Εικόνα 1.9 Αρχιτεκτονική κοινής μνήμης NUMA[1] [1] to Parallel Computing.htm 11

24 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Λόγο της κοινής μνήμης που μοιράζονται όλοι οι επεξεργαστές, η ανταλλαγή δεδομένων μεταξύ των νημάτων που εκτελούνται σε διαφορετικούς επεξεργαστές γίνεται πολύ γρήγορα. Όμως τόσο ο σωστός συγχρονισμός για την πρόσβαση στην κοινή μνήμη όσο και η τιμή των συγκεκριμένων μηχανών αποτελούν μειονεκτήματα αυτής της αρχιτεκτονικής. Τέλος θα πρέπει να σημειωθεί οτι στην αρχιτεκτονική κοινής μνήμης δεν υπάρχει μεγάλη δυνατότητα για επεκτασιμότητα καθώς η αύξηση των επεξεργαστών οδηγεί σε αύξηση της κίνησης στο κανάλι διασύνδεσης μνήμης και επεξεργαστών. Όπως και στις αρχιτεκτονικές κοινής μνήμης, έτσι και στις αρχιτεκτονικές κατανεμημένης μνήμης, παρατηρούμε αρκετές διαφοροποιήσεις στις μηχανές που υλοποιούν αυτή την αρχιτεκτονική, αλλά η γενική ιδέα είναι οτι ο κάθε επεξεργαστής έχει την δική του τοπική μνήμη και δεν υπάρχει η έννοια της γενικής μνήμης. Ο κάθε επεξεργαστής επηρεάζει μόνο την δική του μνήμη και δεν μπορεί να διαβάσει ή να γράψει σε μνήμη κάποιου άλλου επεξεργαστή. Σε περίπτωση που κάποιος θέλει δεδομένα από άλλον επεξεργαστή θα πρέπει να σταλούν μέσω του δικτύου. Και εδώ ο προγραμματιστής είναι υπεύθυνος για τον συγχρονισμό των επεξεργαστών, δηλαδή πότε θα στείλει ένας επεξεργαστής δεδομένα και ποια θα είναι αυτά. Κάθε επεξεργαστής λαμβάνει ένα αντίγραφο του προγράμματος και το εκτελεί χωρίς να έχει τίποτα κοινό με κάποιον άλλον επεξεργαστή. Ένα πρόβλημα όμως που έχουμε εδώ είναι η καθυστέρηση που εισάγεται από το δίκτυο διασύνδεσης κατά την ανταλλαγή μηνυμάτων μεταξύ των επεξεργαστών. Εικόνα 1.1 Αρχιτεκτονική κατανεμημένης μνήμης[1] Στην αρχιτεκτονική αυτή δεν θα συναντήσουμε το πρόβλημα Cache Coherency, καθώς κάθε επεξεργαστής βλέπει μόνο την δική του μνήμη την οποία δεν επηρεάζει κανείς 12

25 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ άλλος, όμως δεν είναι εύκολο να υλοποιηθούν γενικές δομές δεδομένων που θα τις βλέπουν όλοι οι επεξεργαστές. Υπάρχει η δυνατότητα της επεκτασιμότητας, προσθέτοντας καινούργιους επεξεργαστές χωρίς να δημιουργηθεί κάποιο πρόβλημα ενώ μπορεί να υλοποιηθεί με κοινούς υπολογιστές γεγονός που σημαίνει οτι δεν έχουμε μεγάλο κόστος. Τέλος ένα μειονέκτημα και εδώ παραμένει ο συγχρονισμός των διεργασιών που εκτελούνται σε διαφορετικούς επεξεργαστές καθώς ο προγραμματιστής είναι υπεύθυνος για αυτόν. ΠΑΡΑΛΛΗΛΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΜΟΝΤΕΛΑ Ένα προγραμματιστικό μοντέλο είναι ο τρόπος με τον οποίο ένας προγραμματιστής αντιλαμβάνεται την αρχιτεκτονική του υπολογιστή, προκειμένου να δημιουργήσει κάποιο πρόγραμμα σε αυτόν. Όπως σημειώνεται στο [12], με βάση και τις προηγούμενες κατηγοριοποιήσεις των αρχιτεκτονικών των επεξεργαστών τα προγραμματιστικά μοντέλα χωρίζονται σε παραλληλισμός δεδομένων : Υπάρχουν Ν επεξεργαστές οι οποίοι εκτελούν την ίδια εντολή πάνω σε διαφορετικά δεδομένα. Σε αυτή την περίπτωση είναι αναγκαία η χρήση δομών που διαμοιράζουν τα δεδομένα στους επεξεργαστές. Αυτό το προγραμματιστικό μοντέλο ταιριάζει με την αρχιτεκτονική τύπου SIMD. παραλληλισμός ελέγχου : έχουμε Ν επεξεργαστές καθένας από τους οποίους εκτελεί διαφορετικές εντολές με διαφορετικά δεδομένα. Το μοντέλο αυτό ταιριάζει με τη αρχιτεκτονική τύπου MIMD Η αρχιτεκτονική τύπου MIMD, όπως είδαμε και παραπάνω χωρίζεται σε δύο κατηγορίες αυτή της κοινής μνήμης και αυτή της κατανεμημένης μνήμης. Έτσι λοιπόν αντίστοιχα έχουμε δυο προγραμματιστικά μοντέλα για τους δυο αυτούς τύπους μοντέλο κοινού χώρου διευθύνσεων : ο προγραμματιστής βλέπει το πρόγραμμα σαν μια συλλογή νημάτων τα οποία προσπελαύνουν μια συλλογή από κοινές (καθολικές) μεταβλητές. Ο προγραμματιστής είναι υποχρεωμένος να προσέξει τις αλλαγές των τιμών των μεταβλητών και γι αυτό πρέπει να δημιουργηθούν δομές 13

26 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ οι οποίες να αποτρέπουν την ταυτόχρονη προσπέλαση κοινών μεταβλητών. Ένας τρόπος είναι η χρήση σηματοφόρους (semaphores). μοντέλο μεταβίβασης μηνυμάτων : το πρόγραμμα είναι μια συλλογή από αυτόνομες διεργασίες οι οποίες δεν έχουν καμία κοινή μεταβλητή και έχουν την δυνατότητα να επικοινωνούν μεταξύ τους ανταλλάσσοντας μηνύματα. Με αυτό το προγραμματιστικό μοντέλο θα ασχοληθούμε και στην υλοποίηση της διπλωματικής, οπότε στο επόμενο κεφάλαιο θα αναφερθούμε ξανά σε αυτό. Πέραν όμως από το μοντέλο προγραμματισμού, ο προγραμματιστής θα πρέπει να δώσει μεγάλη προσοχή τόσο στην διαμοίραση των εργασιών, με σκοπό να πετύχει λίγες επικοινωνίες και μοιρασμένο φόρτο εργασίας ανάμεσα στους επεξεργαστές, όσο και στον συντονισμό και την συνεργασία, ώστε να υπάρχουν τα σωστά δεδομένα την κατάλληλη στιγμή σε όλους τους επεξεργαστές. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΑΡΑΛΛΗΛΩΝ ΕΠΕΞΕΡΓΑΣΤΩΝ Υπάρχουν διάφοροι τρόποι με τους οποίους μπορεί κάποιος να δουλέψει έτσι ώστε να δημιουργήσει μια εφαρμογή, η οποία θα εκτελείται παράλληλα σε περισσότερους από έναν επεξεργαστές. Αυτό μπορεί να μην απαιτεί καν την γνώση κάποιου τρόπου παράλληλου προγραμματισμού. Έτσι αν θέλουμε να δημιουργήσουμε εφαρμογές που θα εκτελούνται παράλληλα έχουμε τους εξής τρόπους Έμμεσος παράλληλος προγραμματισμός Εδώ γίνεται χρήση κατάλληλου compiler, ο οποίος αναλαμβάνει να βρει τα κομμάτια του προγράμματος που δεν έχουν κάποια εξάρτηση μεταξύ τους και μπορούν να εκτελεστούν ταυτόχρονα. Ο προγραμματιστής γράφει την εφαρμογή του σε μια οικεία σειριακή γλώσσα και τα υπόλοιπα γίνονται από τον compiler. Όμως αυτός ο τρόπος παράλληλου προγραμματισμού δεν είναι αποδοτικός, τουλάχιστον προς το παρόν. Παραλληλοποίηση βρόχων επανάληψης Είναι γνωστό οτι ένας από τους παράγοντες που κάνουν μια εφαρμογή να 14

27 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ καθυστερεί είναι αυτός των βρόχων επανάληψης, ειδικά στην περίπτωση που έχουμε πολλούς βρόχους τον έναν μέσα στον άλλον. Σε αυτή την περίπτωση η ταχύτητα του προγράμματος εξαρτάται από την είσοδό μας ενώ κάθε βρόχος που βρίσκεται μέσα σε έναν άλλο κάνει την καθυστέρηση πολλαπλάσια (θα δούμε περισσότερα σε λίγο). Έτσι λοιπόν θα ήταν χρήσιμο, αν προσπαθούσαμε να μειώσουμε τις επαναλήψεις του βρόχου επανάληψης, μοιράζοντας αυτές σε δυο ή περισσότερους επεξεργαστές. Φυσικά κάτι τέτοιο δεν είναι απλό καθώς απαιτεί την ανάλυση των πράξεων που γίνονται εντός του βρόχου και αν υπάρχουν εξαρτήσεις από προηγούμενα βήματα. Αν κάτι τέτοιο επιτευχθεί όμως θα βελτιώσει την απόδοση της εφαρμογής αισθητά. Άμεσος παράλληλος προγραμματισμός Εδώ ο προγραμματιστής τα κάνει όλα από την αρχή. Αναλύει το πρόβλημα βλέπει που υπάρχουν και που δεν υπάρχουν εξαρτήσεις, και ανάλογα με το σύστημα που θα φιλοξενήσει την εφαρμογή, γίνεται η ανάπτυξη της εφαρμογής. Θα πρέπει να τονιστεί εδώ οτι υπάρχει μεγάλη εξάρτηση από την αρχιτεκτονική του συστήματος που θα φιλοξενήσει την εφαρμογή και δεν είναι εύκολη η μεταφορά του παράλληλου προγράμματος σε άλλη μηχανή. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΑΡΑΛΛΗΛΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ Η βασική μεθοδολογία για να δημιουργήσουμε μια εφαρμογή η οποία θα εκτελείται παράλληλα σε μια μηχανή με πολλούς επεξεργαστές περιλαμβάνει δύο βασικά βήματα: 1. διαχωρισμός του προγράμματος σε διεργασίες 1.1. διάσπαση σε εργασίες 1.2. ανάθεση εργασιών σε διεργασίες 2. τοποθέτηση των διεργασιών στους επεξεργαστές Σε αυτό το σημείο είναι χρήσιμο να ορίσουμε τις έννοιες διεργασία και εργασία όπως αυτές ορίζονται στο [12]. Εργασία είναι γενικά κάποια τμήματα του υπολογισμού τα οποία μπορούν να εκτελεστούν παράλληλα ταυτόχρονα. Μια εργασία εκτελείται εξ' ολοκλήρου από έναν επεξεργαστής. Διεργασία είναι μια συλλογή από εργασίες και 15

28 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ εκτελείται από έναν και μόνο επεξεργαστή. Μια διεργασία μπορεί να είναι μια διαδικασία του σειριακού κώδικα ή, πιο συνηθισμένα, μια κατά περίπτωση επιλογή από σχετιζόμενες εργασίες (πχ εργάζονται πάνω στις ίδιες μεταβλητές). Το πρώτο βήμα είναι κατά μεγάλο ποσοστό ανεξάρτητο από την αρχιτεκτονική του συστήματος ενώ το δεύτερο εξαρτάται σε μεγάλο βαθμό από αυτήν. Για την διάσπαση του προβλήματος σε εργασίες κάνουμε χρήση του γράφου εξάρτησης δεδομένων (data dependency graph), με βάση τον οποίο μπορούμε να βρούμε τα κομμάτια του προβλήματος που μπορούν να εκτελεστούν ταυτόχρονα καθώς δεν έχουν εξαρτήσεις μεταξύ τους. Επίσης είναι χρήσιμο να κάνουμε και την διαδικασία του profiling προκειμένου να δούμε ποια κομμάτια του κώδικα, ποιες συναρτήσεις, απαιτούν περισσότερο χρόνο για να εκτελεστούν και αξίζει να ασχοληθούμε προκειμένου να μειώσουμε τον χρόνο εκτέλεσης της σειριακής εφαρμογής. Όμως και η διαδικασία της ανάθεσης σε επεξεργαστές δεν είναι απλή υπόθεση. Πρέπει να λάβουμε υπ' όψιν μας 1. οι επεξεργαστές να έχουν ίσο όγκο εργασίας προκειμένου να γίνει πλήρη εκμετάλλευση της παρουσίας των επεξεργαστών. Διαφορετικά, αν κάποιος επεξεργαστής έχει παραπάνω φόρτο εργασίας θα αυξήσει τον χρόνο εκτέλεσης (φυσικά αν αυτό είναι εφικτό). 2. οι επικοινωνίες μεταξύ των επεξεργαστών θα πρέπει να είναι όσο το δυνατόν λιγότερες καθώς είναι αυτές που προσθέτουν καθυστέρηση σε ένα τέτοιο μοντέλο. Λαμβάνοντας αυτά υπ' όψιν μπορούμε να κάνουμε την ανάθεση σε δυο βασικά βήματα, όπως αυτά παρουσιάζονται στο [12], αρχικά την ενορχήστρωση, δηλαδή τον τρόπο επικοινωνίας και συντονισμού των διεργασιών, και μετά την αντιστοίχιση, όπου καθορίζεται ποιος επεξεργαστής θα εκτελέσει ποια διεργασία. Το δεύτερο μπορεί να γίνει είτε με δυναμικό τρόπο, με το λειτουργικό να αναλαμβάνει την ανάθεση, είτε με στατικό τρόπο, με την αντιστοίχιση να γίνεται από τον προγραμματιστή και να μην αλλάζει κατά την εκτέλεση της εφαρμογής. [1] to Parallel Computing.htm 16

29 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Στην συνέχεια παρουσιάζονται 6 βασικές τεχνικές λογικές που χρησιμοποιούνται στην ανάπτυξη παράλληλων αλγορίθμων εφαρμογών [1]. Οι τεχνικές που θα παρουσιαστούν δεν είναι πάντα ανεξάρτητες από την αρχιτεκτονική της μηχανής στην οποία θα εκτελεστεί η εφαρμογή που σχεδιάζουμε. 1. Παραλληλισμός Δεδομένων (Data Parallelism) Με αυτή την τεχνική ένας μεγάλος αριθμός δεδομένων υπόκεινται στην ίδια ή παρόμοια διαδικασία. Σε έναν απλό σειριακό υπολογιστή θα εκτελούσαμε την διαδικασία σε όλα τα δεδομένα σε έναν επεξεργαστή ενώ στην περίπτωση των παράλληλων υπολογιστών σπάμε τα δεδομένα σε περισσότερους επεξεργαστές και επομένως ο κάθε ένας εκτελεί λιγότερα βήματα υπολογισμών. 2. Κατάτμηση Δεδομένων (Data Partitioning) Αυτή η τεχνική είναι κατάλληλη για τα συστήματα κατανεμημένης μνήμης καθώς σε αυτή την τεχνική ο χώρος αποθήκευσης είναι φυσικά διαχωρισμένος σε παρακείμενες περιοχές. Κάθε μια από τις περιοχές αυτές υφίσταται επεξεργασία από διαφορετικό επεξεργαστή. 3. Ασύγχρονος Αλγόριθμος (Asynchronous Algorithm) Σε αυτή την περίπτωση έχουμε διεργασίες οι οποίες εκτελούνται ανεξάρτητα μεταξύ τους και δεν απαιτείται κάποιου είδους επικοινωνία ή συγχρονισμός. Είναι τεχνική που χρησιμοποιείται τόσο σε συστήματα κατανεμημένης μνήμης όσο και συστήματα διαμοιραζόμενης μνήμης και έχουν σαν αποτέλεσμα μεγάλες επιταχύνσεις. 4. Σύγχρονη Επανάληψη (Synchronous Iteration) Στη σύγχρονη επανάληψη έχουμε την χρήση του ίδιου επαναληπτικού αλγορίθμου σε διαφορετικό τμήμα δεδομένων ενώ στο τέλος κάθε επανάληψης απαιτείται ο συγχρονισμός μεταξύ των επεξεργαστών καθώς τα δεδομένα που επεξεργάζονται χρησιμοποιούνται στην επόμενη επανάληψη. Γι αυτό δεν είναι δυνατόν να ξεκινήσει μια επανάληψη σε κάποιον επεξεργαστή αν δεν έχουν 17

30 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ τελειώσει όλοι οι υπόλοιποι επεξεργαστές. 5. Πολλαπλοί Εργαζόμενοι (Multiple Workers) Σε αυτή την τεχνική υπάρχει μια κεντρική δεξαμενή παρόμοιων υπολογιστικών εργασιών, από όπου ένας μεγάλος αριθμός διεργασιών ανακτούν εργασίες. Οι διεργασίες αυτές μπορεί να προσθέσουν νέες εργασίες στην δεξαμενή. Η υπολογιστή διαδικασία τερματίζει όταν η δεξαμενή αδειάζει εντελώς. Η τεχνική αυτή είναι χρήσιμη σε προβλήματα εκθετικής πολλαπλότητας όπως η αναζήτηση σε δένδρο ή γράφημα, όπου ένας μεγάλος αριθμός από μικρές υπολογιστικές εργασίες παράγεται δυναμικά ως αποτέλεσμα της συνολικής υπολογιστικής διαδικασίας. 6. Υπολογιστική Διαδικασία Διασωλήνωσης (Pipeline Computation) Η συγκεκριμένη τεχνική ανάπτυξης εφαρμογών είναι κατάλληλη για συστήματα κατανεμημένης μνήμης καθώς εδώ έχουμε την οργάνωση των διεργασιών σε φυσικές δομές όπως αυτή του δακτυλίου ή του δισδιάστατου πλέγματος. Τα δεδομένα μετακινούνται μέσω αυτής της δομής. ΠΛΕΓΜΑ ΥΠΟΛΟΓΙΣΤΩΝ Με τον όρο πλέγμα υπολογιστών (grid computer) εννοούμε την συλλογή από υπολογιστικούς πόρους σε διάφορες τοποθεσίες (γεωγραφικά), ώστε να πετύχουν έναν συγκεκριμένο σκοπό. Οι υπολογιστές μπορεί να βρίσκονται σε διαφορετικές γεωγραφικές τοποθεσίες και συνδέονται μεταξύ τους μέσω κάποιου δικτύου. Με αυτό τον τρόπο είναι δυνατόν να διαμοιραστούν την υπολογιστική ισχύ, τις αποθηκευτικές συσκευές κ.α. Ο χρήστης δεν απαιτείται να γνωρίζει το που βρίσκονται οι πόροι που χρησιμοποιεί καθώς επίσης τις τεχνολογίες ή τα λειτουργικά συστήματα που χρησιμοποιούνται. Δεν τις αντιλαμβάνεται σαν ξεχωριστές μηχανές, αλλά τις βλέπει σαν μια ενιαία υπερμηχανή. Για να γίνει αντιληπτό το πλέγμα υπολογιστών μπορούμε να το θεωρήσουμε σαν το δίκτυο διανομής ηλεκτρική ενέργειας, στο οποίο ο κάθε χρήστης έχει πρόσβαση σε αυτό μέσω των πριζών χωρίς να τον απασχολεί το πως ή το που αυτό [1] 18

31 ΚΕΦΑΛΑΙΟ 1 δημιουργείται. ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Συνήθως χρησιμοποιούνται προκειμένου να επιλυθούν μεγάλα προβλήματα. Τα πλέγματα υπολογιστών, ανάλογα με τον σκοπό που θέλουμε να επιτελέσουν, μπορούν να χωριστούν σε computational grid, όπου προστίθενται πόροι με σκοπό την μεγαλύτερη υπολογιστική ισχύ, και σε data grids, όπου εστιάζουν στην αποθήκευση δεδομένων[13]. Μια άλλη ταξινόμηση των πλεγμάτων υπολογιστών, με βάση την τοπολογία, είναι η ακόλουθη, [13] Cluster Grids (intragrid) είναι μια ομάδα υπολογιστών που συνεργάζονται και έχουν ένα ενιαίο σημείο πρόσβασης για τους χρήστες σε ένα έργο ή υπηρεσία. Είναι η πιο απλή μορφή. Campus Grids (extragrid) επιτρέπει τμήματα οργανισμών να μοιράζονται τους πόρους τους, ενώ μπορούν να χρησιμοποιηθούν για μια πληθώρα εργασιών. Global Grids (intergrid) είναι συλλογή Campus Grids, που δίνουν την δυνατότητα δημιουργίας μεγάλων εικονικών συστημάτων. Οι χρήστες μπορούν να έχουν πρόσβαση σε πόρους που υπερβαίνουν αυτούς που έχουν σε τοπικό επίπεδο. Στην επόμενη εικόνα βλέπουμε τις τρεις παραπάνω κατηγορίες του πλέγματος [1] 19

32 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Εικόνα 1.11 Τοπολογική οργάνωση του πλέγματος υπολογιστών[1] Για να οργανωθούν όλοι αυτοί οι υπολογιστές απαιτείται η ύπαρξη ενός κεντρικού διακομιστή (server), ο οποίος ονομάζεται control node και οργανώνει την ανάθεση των εργασιών, καταγράφει την κίνηση στο δίκτυο ενώ γνωρίζει τους διαθέσιμους πόρους. Εδώ θα πρέπει να πούμε τον τρόπο με τον οποίο δομείται μια εφαρμογή. Όπως φαίνεται και στο επόμενο σχήμα, μία εφαρμογή αποτελείται από πολλές εργασίες (jobs), οι οποίες με την σειρά τους διασπώνται σε υποεργασίες (subjobs). [1] 2

33 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ Εικόνα 1.12 Τρόπος διάσπασης εφαρμογών Όταν αναθέτουμε κάποια δουλεία στο πλέγμα, τότε ο διακομιστή, την χωρίζει σε υποεργασίες και τις αναθέτει σε διαθέσιμους υπολογιστικούς πόρους. Όταν όλες οι υποεργασίες ολοκληρωθούν, τότε ο διακομιστής συγκεντρώνει τα αποτελέσματα και περνάει στην επόμενη εργασία. Σε περίπτωση που κάποια από τις εργασίες αποτύχει, τότε την αναθέτει εκ νέου σε υπολογιστή. Η ανάθεση γίνεται με βάση τους διαθέσιμους πόρους και τον φόρτο εργασίας. Εικόνα 1.13 Η δομή του πλέγματος υπολογιστών[1] Σε επίπεδο λογισμικού, τα πλέγματα υπολογιστών έχουν μια σειρά από προγράμματα, τα οποία βοηθούν στην διαχείριση των πόρων. Τα βασικά στοιχεία είναι ένα λογισμικό το 21

34 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ οποίο διαχειρίζεται τους πόρους του συστήματος, γνωρίζοντας ποιοι κόμβοι είναι διαθέσιμοι και αν όχι πόσος είναι ο φόρτος εργασίας τους. Με αυτό τον τρόπο δίνεται η δυνατότητα να ανατίθενται εργασίες σε κόμβους που έχουν την λιγότερη δουλειά. Ένα δεύτερο λογισμικό που διαθέτουν είναι αυτό της διαχείρισης του πλέγματος. Το λογισμικό αυτό γνωρίζει την τοπολογία και την ιεραρχία του συστήματος και βοηθά στην ανάθεση των εργασιών. Τα λογισμικά αυτά βρίσκονται στον κεντρικό κόμβο που διαχειρίζεται το σύστημα. Σε κάθε μία μηχανή που προσφέρει πόρους, θα πρέπει επίσης να υπάρχει κατάλληλο λογισμικό για την αποδοχή εργασιών από τον κεντρικό κόμβο, καθώς επίσης και λογισμικό για την εισαγωγή της μηχανής στο σύστημα του πλέγματος. 22

35 ΚΕΦΑΛΑΙΟ 1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΠΛΕΓΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ [1] 23

36 ΚΕΦΑΛΑΙΟ 2 : ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΣΚΟΠΟΣ Σκοπός του κεφαλαίου αυτού είναι να παρουσιαστούν μέτρα σύγκρισης των παράλληλων αλγορίθμων με τον αντίστοιχο σειριακό καθώς επίσης πως επηρεάζεται η ταχύτητα αυτών από την εισαγωγή περισσότερων επεξεργαστών. παρουσιαστούν οι νόμοι του Amdahl και του Gustafson. Τέλος θα

37

38 ΚΕΦΑΛΑΙΟ 2 ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΑΝΑΛΥΣΗ ΣΕΙΡΙΑΚΩΝ ΑΛΓΟΡΙΘΜΩΝ Σημαντικό ρόλο στην δημιουργία μιας παράλληλης εφαρμογής από μία σειριακή παίζει η ανάλυση των επιδόσεων της, προκειμένου να δούμε ποιο κομμάτι της σειριακής εφαρμογής απαιτεί χρόνο για την εκτέλεσή του και αξίζει την παραλληλοποιησή του καθώς κάτι τέτοιο θα είχε σημαντική επίδραση στον χρόνο εκτέλεσης της εφαρμογής. Είναι προφανές οτι αν ενεργούσαμε πάνω σε ένα κομμάτι το οποίο δεν καθυστερούσε σημαντικά την εκτέλεση της εφαρμογής, δεν θα βλέπαμε σημαντικές βελτιώσεις στον χρόνο εκτέλεσης της. Στην συνέχεια παρουσιάζονται οι τρόποι ανάλυσης ενός προγράμματος καθώς και τα αποτελέσματα από την ανάλυση της εφαρμογής που πρόκειται να υλοποιήσουμε παράλληλα. Ως ανάλυση προγράμματος[1] (Program Analysis) λοιπόν, ορίζεται μια αυτοματοποιημένη διαδικασία με την οποία αναλύουμε και μελετάμε την συμπεριφορά ενός προγράμματος προκειμένου να το βελτιώσουμε. Υπάρχουν δύο βασικές κατηγορίες ανάλυσης με βάση τον τρόπο με τον οποίο μελετάμε το πρόγραμμα, την στατική ανάλυση (Static Program Analysis) και την δυναμική ανάλυση (Dynamic Program Analysis). Στατική ανάλυση ενός προγράμματος [2] είναι η διαδικασία ανάλυσής του χωρίς να πραγματοποιήσουμε την εκτέλεσή του. Η ανάλυση συνήθως βασίζεται σε μαθηματικά μοντέλα και γι αυτό είναι αδύνατον να πει με σιγουριά οτι δεν θα υπάρξουν προβλήματα κατά τον χρόνο εκτέλεσης. Τεχνικές που χρησιμοποιούνται σε αυτό τον τρόπο ανάλυσης είναι το Program Comprehension, που περιλαμβάνει τρόπους συντήρησης ενός κώδικα, το Code Review, που είναι ο συστηματικός έλεγχος ενός πηγαίου κώδικα με σκοπό την διόρθωσή του και το Control Flow Analysis, όπου γίνεται ανάλυση όλων των πιθανών διαδρομών του κώδικα ενός προγράμματος κατά την εκτέλεσή του. Σε αντίθεση με την στατική ανάλυση, η δυναμική ανάλυση [3] ενός προγράμματος είναι η ανάλυση του κατά την εκτέλεσή. Για να είναι αποδοτική η μέθοδος αυτή θα πρέπει να εφαρμοστούν αρκετές διαφορετικές είσοδοι και να παρατηρηθούν ενδιαφέρουσες συμπεριφορές. Μια βασική τεχνική της μεθόδου αυτής είναι το profiling ή αλλιώς [1] [2] [3] 26

39 ΚΕΦΑΛΑΙΟ 2 ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ performance analysis. Με την χρήση της συγκεκριμένης μεθόδου ανάλυσης είναι δυνατόν να μετρηθούν[1]: μνήμη χρονική πολυπλοκότητα του προγράμματος συχνότητα κλήσης συναρτήσεων διάρκεια κλήσης συναρτήσεων Το πρόγραμμα που υλοποιεί την τεχνική αυτή ονομάζεται profiler και μπορεί να είναι ενσωματωμένος σε έναν compiler. Ανάλογα με τα αποτελέσματα του profiler έχουμε δύο τύπους Flat Profiler O Flat profiler, εξάγει ως αποτέλεσμα της ανάλυσης του, το συνολικό χρόνο που χρειάστηκε το λογισμικό για να εκτελέσει την κάθε συνάρτηση του κώδικα του προγράμματος. Call-graph Profiler Ο Call-graph Profiler μας δείχνει, στα αποτελέσματά του, το χρόνο που δαπανήθηκε στην εκτέλεση του κάθε προγράμματος, από ποια συνάρτηση κλήθηκε και πόσες φορές καθώς επίσης και τον χρόνο εκτέλεσης της κάθε συνάρτησης που κλήθηκε από την συνάρτηση που εξετάζουμε. Στο δεύτερο παράρτημα βλέπουμε τα αποτελέσματα της ανάλυσης της εφαρμογής που θέλουμε να παραλληλοποιήσουμε και το λόγο για τον οποίο θέτουμε σαν βασικό μας στόχο την μείωση του χρόνου της συνάρτησης που υλοποιεί την συνάρτηση Cholesky. ΣΥΓΚΡΙΣΗ ΣΕΙΡΙΑΚΟΥ ΚΑΙ ΠΑΡΑΛΛΗΛΟΥ ΑΛΓΟΡΙΘΜΟΥ Ένα χρήσιμο μέτρο για την αξιολόγηση ενός παράλληλου αλγορίθμου είναι η σύγκρισή του με τον αντίστοιχο σειριακό αλγόριθμο. Το μέτρο αυτό είναι η επιτάχυνση (speedup) [1] 27

40 ΚΕΦΑΛΑΙΟ 2 ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ Επιτάχυνση, σύμφωνα με τα [7], [12] και [1], ορίζεται ως ο λόγος του χρόνου εκτέλεσης του καλύτερου σειριακού αλγορίθμου προς τον χρόνο εκτέλεσης του αντίστοιχου παράλληλου αλγορίθμου και εκφράζεται μαθηματικά με τον ακόλουθο τύπο όπου S n= T1 (2.1) Tn T1 είναι ο χρόνος εκτέλεσης του σειριακού αλγορίθμου και Tn ο χρόνος εκτέλεσης του παράλληλου αλγορίθμου. Ο χρόνος εκτέλεσης ενός παράλληλου αλγορίθμου προσδιορίζεται από τη στιγμή που ένας επεξεργαστής αρχίζει να κάνει υπολογισμούς έως ότου ο τελευταίος επεξεργαστής ολοκληρώσει την εργασία του. Με τον συγκεκριμένο μέτρο μπορούμε να συγκρίνουμε διάφορους τρόπους παράλληλης υλοποίησης με τον ίδιο σειριακό αλγόριθμο και να δούμε ποιος είναι ο καλύτερος. ΑΠΟΔΟΤΙΚΟΤΗΤΑ ΚΑΙ ΚΟΣΤΟΣ Η αποδοτικότητα, όπως ορίζεται στο [12], σχετίζει το όφελος στην ταχύτητα και τον αριθμό των επεξεργαστών που χρειάζονται για να το επιτύχουμε. Ορίζεται από τον τύπο : e n= Sn T1 (2.2) = n n T n όπου T 1 και T n οι χρόνοι που παρουσιάστηκαν στην προηγούμενη παράγραφο. Είναι προφανές από την παραπάνω σχέση οτι αν S n n τότε προκύπτει οτι e n 1. Στην ιδανική περίπτωση, όπου η απόδοση είναι στο 1%, τότε όλοι οι επεξεργαστές είναι όντως απαραίτητοι προκειμένου να επιτευχθεί η επιτάχυνση S n. Το κόστος, που παρουσιάζεται στο [12], είναι ένα άλλο μέγεθος το οποίο μας δείχνει κατά πόσο οι επεξεργαστές χρησιμοποιήθηκαν αποδοτικά και ορίζεται από την σχέση : c n=n T n (2.3) και το μέγεθος αυτό μας δείχνει πόση ώρα χρησιμοποιήθηκαν οι επεξεργαστές [1] to Parallel Computing.htm 28

41 ΚΕΦΑΛΑΙΟ 2 ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ αθροιστικά. Αν ένας αλγόριθμος εκτελέστηκε παράλληλα σε συνολικό χρόνο T n, τότε ο κάθε επεξεργαστής ήταν δεσμευμένος για το διάστημα αυτό ανεξάρτητα από το αν εργαζόταν σε όλο αυτό το διάστημα. Από την παραπάνω σχέση προκύπτει εύκολα οτι το σειριακό κόστος θα είναι ίσο με T 1 θέτοντας όπου n το 1 και σαν χρόνο εκτέλεσης τον χρόνο του σειριακού αλγορίθμου T 1. Σε αυτό το σημείο θα πρέπει να τονιστεί οτι η μείωση του αριθμού των επεξεργαστών δεν είναι απαραίτητο να μειώνει την αποδοτικότητα και δεν είναι απαραίτητο να αυξάνει το κόστος του αλγορίθμου. ΝΟΜΟΣ ΤΟΥ AMDAHL O νόμος του Amdahl, βασιζόμενοι στα [7], [12], [1] και [2], χρησιμοποιείται προκειμένου να υπολογιστεί το μέγιστο αναμενόμενο κέρδος όταν κάποιο κομμάτι του αλγορίθμου βελτιωθεί και χρησιμοποιείται στον παράλληλο προγραμματισμό προκειμένου να υπολογιστεί η θεωρητικά μεγαλύτερη επιτάχυνση. Έστω οτι έχουμε στην διάθεσή μας n επεξεργαστές και το πρόγραμμά μας έχει τα εξής χαρακτηριστικά ένα ποσοστό των εντολών, f, μπορεί να εκτελεστεί μόνο σειριακά το υπόλοιπο ποσοστό, 1-f, είναι εντελώς παραλληλοποιήσιμο Με βάση τα προηγούμενα δύο χαρακτηριστικά, ο χρόνος που απαιτείται για την εκτέλεση των σειριακών εντολών είναι f T 1, ενώ για τις υπόλοιπες εντολές με τους n διαθέσιμους επεξεργαστές θα χρειαστεί χρόνος (1 f ) T 1. Επομένως, με βάση τους n προηγούμενους δυο χρόνους, ο συνολικός χρόνος που θα χρειαστούμε για την εκτέλεση του αλγορίθμου θα είναι T n= f T 1+ (1 f ) T 1 (2.4) n [1] to Parallel Computing.htm [2] 29

42 ΚΕΦΑΛΑΙΟ 2 ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ Επομένως, χρησιμοποιώντας τους δύο τύπους που αναφέρθηκαν στις δυο προηγούμενες παραγράφους για την επιτάχυνση και την αποδοτικότητα έχουμε S n= T1 n 1 (2.5) = T n n f +(1 f ) f e n= 1 (2.5) n f +(1 f ) οι δυο αυτές σχέσεις αποτελούν τον νόμο του Amdahl. O νόμος του Amdahl αποτελεί τον πιο απογοητευτικό νόμο για την παράλληλη επεξεργασία και αυτό διότι, καθώς ο αριθμός των επεξεργαστών μεγαλώνει και δεδομένου οτι το πρόβλημα παραμένει το ίδιο, η αποδοτικότητα πέφτει κατά πολύ. Αν όμως προσπαθήσουμε να λύσουμε το πρόβλημα με μεγαλύτερο μέγεθος εισόδου, τότε η χρήση επιπλέον επεξεργαστών μπορεί να δικαιολογηθεί. Γενικά, το κομμάτι του σειριακού κώδικα είναι συνάρτηση της εισόδου N και αυτό μπορούμε να το γράψουμε ως f (N ). Με βάση αυτό οι δύο τύποι του νόμου του Amdahl γίνονται S n (N )= n (2.6) n f ( N )+(1 f (N )) e n (N )= 1 (2.7) n f ( N )+(1 f ( N )) Με την αύξηση του μεγέθους του προβλήματος, τα σειριακά βήματα δεν αυξάνονται πολύ και άρα το σειριακό κομμάτι του αλγορίθμου, Αυτό μεταφράζεται μαθηματικά ως καθώς το lim S n ( N )=n (2.8) N 3 f ( N ), μειώνεται σταθερά με το N. Ν τότε f ( N ) και άρα έχουμε

43 ΚΕΦΑΛΑΙΟ 2 ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ lim en ( N )=1 (2.9) N Από τις παραπάνω δύο σχέσεις προκύπτει το συμπέρασμα οτι για κάθε διαθέσιμο αριθμό επεξεργαστών που μπορούμε να χρησιμοποιήσουμε, μπορούμε να βρούμε ένα μέγεθος εισόδου το οποίο μπορεί να επιτύχει οποιαδήποτε επιτάχυνση και αποδοτικότητα θέλουμε. Επομένως οι επιπλέον επεξεργαστές που διαθέτουμε μπορούν να γίνουν εκμεταλλεύσιμοι αρκεί να βρούμε το κατάλληλο μέγεθος εισόδου για να εκτελέσουμε το πρόβλημά μας. Αυτό το συμπέρασμα ισχύει με βάση την αρχική υπόθεση που κάναμε οτι δηλαδή η αύξηση του μεγέθους της εισόδου δεν αυξάνει τα αμιγώς σειριακά βήματα. Εικόνα Οι επιδράσεις του νόμου του Amdahl [1] [1] 31

44 ΚΕΦΑΛΑΙΟ 2 ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ Εικόνα Επίδραση του σειριακού κομματιού του αλγορίθμου [1] Ο ΝΟΜΟΣ ΤΟΥ GUSTAFSON Ο νόμος του Amdahl φτάνει σε κάποια συμπεράσματα θεωρώντας όμως το μέγεθος του προβλήματος σταθερό. Τι γίνεται όμως όταν αυτό δεν μένει σταθερό αλλά αλλάζει. Στο τέλος της προηγούμενης παραγράφου κάναμε μια αναφορά σχετικά με το τι συμβαίνει όταν έχουμε αλλαγή στην είσοδο του προβλήματος. Εδώ θα αναφερθούμε στον νόμο του Gustafson, όπως παρουσιάζεται στα [7], [12], [1] και [2], δηλαδή στον τύπο της επιτάχυνσης έχοντας ως δεδομένο οτι η είσοδος του προβλήματος μπορεί να αλλάξει. Αν θεωρήσουμε λοιπόν οτι το κομμάτι του αλγορίθμου που εκτελείται αποκλειστικά σειριακά εξαρτάται από το μέγεθος της εισόδου, τότε το ποσοστό των εντολών που εκτελείται μόνο σειριακά είναι f ( N ), ενώ το ποσοστό των εντολών που εκτελείται παράλληλα είναι 1 f ( N ). Ο αλγόριθμος αυτός σε σειριακό υπολογιστή θα χρειαστεί χρόνο T 1 (N )= f ( N ) T n ( N )+(1 f ( N )) n T n ( N ) (2.1) [1] [2] to Parallel Computing.htm 32

45 ΚΕΦΑΛΑΙΟ 2 ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ Από τον προηγούμενο τύπο παρατηρούμε οτι στον δεύτερο όρο του αθροίσματος μπαίνει ο παράγοντας n και επομένως η σειριακή υλοποίηση σε σχέση με την αντίστοιχη παράλληλη με n επεξεργαστές απαιτεί n περισσότερο χρόνο. Με βάση τον τύπο αυτό η επιτάχυνση προκύπτει S n (N )= f ( N )+(1 f ( N )) n=n (n 1) f ( N ) (2.11) Η σχέση αυτή αποκαλείται νόμος του Gustafson ή κλιμακώμενη επιτάχυνση (scaled speedup). Από την σχέση αυτή προκύπτει οτι αν ισχύει οτι καθώς το Ν τότε f ( N ), η επιτάχυνση τείνει στο ιδανικό, δηλαδή στο n. Επίσης μπορούμε να επιτύχουμε οποιαδήποτε επιτάχυνση και κατά συνέπεια οποιαδήποτε αποδοτικότητα ρυθμίζοντας κατάλληλα το f(n) μέσω του N. Επομένως αν αυξηθεί ο αριθμός των επεξεργαστών θα πρέπει να γίνει κλιμάκωση του μεγέθους της εισόδου N προκειμένου να επιτευχθεί η απαιτούμενη επιτάχυνση. 33

46 ΚΕΦΑΛΑΙΟ 3 : ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY ΣΚΟΠΟΣ Σκοπός του κεφαλαίου αυτού είναι να παρουσιαστεί το θεωρητικό υπόβαθρο της μεθόδου επίλυσης γραμμικών συστημάτων παραγοντοποίηση Cholesky, η οποία θα υλοποιηθεί στην διπλωματική εργασία, προκειμένου να γίνει κατανοητός ο τρόπος ανάπτυξής της. Επίσης θα περιγραφεί η σειριακή εφαρμογή που καλούμαστε να παραλληλοποιήσουμε.

47

48 ΚΕΦΑΛΑΙΟ 3 ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY ΕΦΑΡΜΟΓΗ ΡΕΥΣΤΟΜΗΧΑΝΙΚΗΣ Σε αυτό το σημείο θα παρουσιάσουμε την εφαρμογή που πρόκειται να παραλληλοποιήσουμε. Η ανάλυση που θα γίνει, δεν θα είναι σε θεωρητικό επίπεδο και επομένως δεν θα ασχοληθούμε με την φυσική πλευρά του ζητήματος. Ωστόσο σε αυτό το σημείο θα κάνουμε μια μικρή περιγραφή στην εφαρμογή και στο πρόβλημα που καλείται να επιλύσει. ΤΟ ΠΡΟΒΛΗΜΑ Όπως περιγράφεται στο [11], το πρόβλημα της συμπεριφοράς των γαγγλίων πετρελαίου κατά την κίνησή τους σε πορώδη πετρώματα, σχετίζεται με το τριτοβάθμιο στάδιο απόληψης πετρελαίου. Σε αυτό το στάδιο, σκοπός είναι η εκτόπιση του πετρελαίου που βρίσκεται στο κοίτασμα υπό μορφή μικρών παγιδευμένων γαγγλίων, τα οποία μπορεί να αποτελούν έως και τα δύο τρίτα του αρχικού πετρελαίου του κοιτάσματος. Η επιτυχία της διαδικασίας εξαρτάται από την κινητοποίηση και την επανασυγκόλληση των μικρών γαγγλίων, δημιουργώντας άλλα μεγαλύτερα, τα οποία θα αποτελέσουν την τράπεζα πετρελαίου. Η δημιουργία και η διατήρηση αυτής της τράπεζας πετρελαίου είναι αποτέλεσμα του ανταγωνισμού μεταξύ του μηχανισμού ομαδοποίησης και συνένωσης των γαγγλίων στο μέτωπο της πλημμύρας και του μηχανισμού διάσπασης και παγίδευσης των γαγγλίων. Για την θεωρητική μελέτη του προβλήματος, σύμφωνα με τα [11] και [14], αναπτύσσεται ένα τρισδιάστατο μοντέλων πορωδών μέσων, κατάλληλο για την εξομοίωση των πορωδών πετρωμάτων. Στο μοντέλο αυτό, το πορώδες μέσο θεωρείται ως ένα δίκτυο θαλάμων συνδεδεμένων με λαιμούς και προσεγγίζεται με ένα δίκτυο μοναδιαίων κελιών του τύπου σωλήνα με στένωση. 36

49 ΚΕΦΑΛΑΙΟ 3 ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY Εικόνα 3.1 Αναπαράσταση μεμονωμένου κελιού [14] Το μοντέλο των πορωδών μέσων χρησιμοποιείται για την εξομοίωση της κίνησης μοναχικών γαγγλίων διαμέσου πορωδών πετρωμάτων και τον υπολογισμό χρήσιμων μεγεθών. Η ΕΦΑΡΜΟΓΗ Η εφαρμογή, το θεωρητικό υπόβαθρο της οποίας παρουσιάστηκε παραπάνω, προσομοιώνει την σταθερής κατάσταση ροής δύο φάσεων σε πορώδη μέσα, η οποία επιλύεται με την βασική ανάλυση δικτύων. Θεωρούμε μια αναλογία μεταξύ του πορώδους μέσου και ενός ηλεκτρικού κυκλώματος, όπου κάθε κελί παριστάνεται ως μια αντίσταση. Η επίλυση του προβλήματος γίνεται σταδιακά θεωρώντας σε κάθε βήμα μια ψευδοσταθερή κατάσταση. Το γραμμικό σύστημα που περιγράφει αυτή την ψευδοσταθερή κατάσταση, λύνεται με την μέθοδο της παραγοντοποίησης Cholesky (Cholesky Factorization), ενώ θα πρέπει να λάβουμε υπ' όψιν μας την μεγάλη αραιότητα του πίνακα. Οι τιμές της πιέσεως, με την σειρά τους χρησιμοποιούνται για τον υπολογισμό των στιγμιαίων ρυθμών ροής μέσω των κελιών και την αντίστοιχη ταχύτητα των μηνίσκων. Θεωρώντας οτι αυτές παραμένουν σταθερές για μικρό χρονικό διάστημα, μπορεί να γίνει ο υπολογισμός των νέων θέσεων των μηνίσκων. Η συγκεκριμένη διαδικασία επαναλαμβάνεται. 37

50 ΚΕΦΑΛΑΙΟ 3 ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY Από την παραπάνω περιγραφή, γίνεται σαφές οτι η παραγοντοποίηση Cholesky, θα έχει κυρίαρχο ρόλο κατά την εκτέλεση των υπολογισμών. Κάνοντας δυναμική ανάλυση της εφαρμογής μέσω της διαδικασίας του profiling, τα αποτελέσματα της οποίας βλέπουμε στο παράρτημα B, βλέπουμε οτι η συνάρτηση που υλοποιεί την διαδικασία της παραγοντοποίησης Cholesky καταλαμβάνει περίπου το 4% του συνολικού χρόνου που απαιτεί η εφαρμογή και εκεί θα εστιάσουμε. Στην συνέχεια θα παρουσιάσουμε την διαδικασία της παραγοντοποίησης Cholesky, σε θεωρητικό επίπεδο, για έναν αλλά και περισσότερους επεξεργαστές. ΘΕΩΡΙΑ ΓΡΑΦΗΜΑΤΩΝ Πριν αναλύσουμε την μέθοδο παραγοντοποίησης Cholesky (Cholesky Factorization) θα πρέπει να κάνουμε μια μικρή εισαγωγή στην θεωρία των γραφημάτων, καθώς αυτά χρησιμοποιούνται στην διαδικασία επίλυσης ενός γραμμικού συστήματος με την μέθοδο αυτή. ΒΑΘΜΟΣ ΚΟΜΒΟΥ (DEGREE / VALENCY) Βαθμός ενός κόμβου του γραφήματος είναι ο αριθμός των δεσμών που φτάνουν σε αυτό. Εικόνα Γράφος στους κόμβους του οποίου σημειώνεται ο βαθμός τους[1] Στην προηγούμενη εικόνα ο κάθε κόμβος περιέχει τον βαθμό του. Στην περίπτωση όπου μια σύνδεση ξεκινάει από έναν κόμβο και καταλήγει στον ίδιο κόμβο τότε αυτό μετράει για δύο. Σε περίπτωση που έχουμε συγκεκριμένες τιμές στον βαθμό ενός κόμβου τότε έχουμε[1] : isolated vertex : κόμβος με βαθμό. [1] 38

51 ΚΕΦΑΛΑΙΟ 3 ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΚΑΙ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY leaf vertex : κόμβος με βαθμό 1. dominating vertex : ο βαθμός του κόμβου είναι n-1 σε γράφημα με n κόμβους. ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ CHOLESKY (CHOLESKY FACTORIZATION) Έχουμε το ακόλουθο γραμμικό σύστημα Ax=b (3.1) Η επίλυση του παραπάνω συστήματος έχει κυρίαρχο ρόλο στα επιστημονικά προβλήματα και συναντάται συχνά σε αυτά. Γι αυτό έχουν αναπτυχθεί τρόποι επίλυσής τους που μετατρέπουν το παραπάνω πρόβλημα σε ένα ευκολότερο με την προϋπόθεση οτι πληρούνται κάποιες συνθήκες σχετικά με τον πίνακα Α. Η πιο γνωστή μέθοδος τέτοιου τύπου είναι η μέθοδος Gauss, η οποία ουσιαστικά μετατρέπει το παραπάνω πρόβλημα σε πρόβλημα τριγωνικών πινάκων που είναι πιο εύκολο να επιλυθούν. Οι μέθοδοι, όπως αυτή του Gauss λέγονται μέθοδοι LU παραγοντοποίησης (LU Factorization), και μία από αυτές είναι και η μέθοδος που εξετάζουμε. Προκειμένου να κάνουμε χρήση της μεθόδου της παραγοντοποίησης Cholesky, όπως αυτή παρουσιάζεται στα [8] και [1], θα πρέπει ο πίνακας Α να είναι ένας τετραγωνικός πίνακας n n, συμμετρικός και θετικά ορισμένος. Τα υπόλοιπα στοιχεία του συστήματος είναι τα γνωστά, δηλαδή το b είναι ένα γνωστό διάνυσμα μεγέθους n και x είναι το διάνυσμα το οποίο ψάχνουμε. Η μετατροπή του παραπάνω γραμμικού συστήματος σε ένα τριγωνικό σύστημα και η επίλυσή του περιλαμβάνει δύο βασικά βήματα. Αρχικά θα πρέπει να γίνει ο υπολογισμός του κάτω τριγωνικού πίνακα L, ο οποίος ονομάζεται παράγοντας Cholesky (Cholesky Factor), με βάση την σχέση A= L L T και στην συνέχεια έχουμε την τριγωνική επίλυση προκειμένου να υπολογίσουμε το διάνυσμα x με βάση τις επόμενες δύο σχέσεις Ly=b (3.2) και LT x= y (3.3) [1] 39

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

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

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

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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

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

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

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

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

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

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

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

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

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#5 - SISD, SIMD, Νόμος του Amdahl, Γράφος εξάρτησης Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#5, σελίδα 1 Περίληψη Στο 2ο μέρος του εργαστηριακού

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

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

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

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

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

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

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

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

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

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

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

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

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

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση Επίδοση Αλγορίθμων Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση πώς υπολογίζεται ο χρόνος εκτέλεσης

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 8: Διαχείριση Μνήμης

Μάθημα 8: Διαχείριση Μνήμης Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες

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

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

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μετρικές και Επιδόσεις 6

Μετρικές και Επιδόσεις 6 Μετρικές και Επιδόσεις 6 Στο κεφάλαιο αυτό θα δούμε με ποιον τρόπο προσδιορίζουμε τις επιδόσεις ενός παράλληλου αλγορίθμου / προγράμματος. Βασικός σκοπός μας επίσης είναι να δούμε πώς διαμορφώνονται αυτές

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

Μάριος Αγγελίδης

Μάριος Αγγελίδης ΠΙΝΑΚΕΣ Ενότητες βιβλίου: 3.3, 9.1-9.3 Ώρες διδασκαλίας: 1 Σε όλα τα προβλήματα μέχρι τώρα διαβάζαμε μία τιμή την φορά, την επεξεργαζόμασταν και χωρίς να την αποθηκεύουμε επαναλαμβάναμε την διαδικασία

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Κεφάλαιο 5 Ανάλυση Αλγορίθμων Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι

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

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

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

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

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

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

5.1. Προσδοκώμενα αποτελέσματα 5.1. Προσδοκώμενα αποτελέσματα Όταν θα έχεις ολοκληρώσει τη μελέτη αυτού του κεφαλαίου θα έχεις κατανοήσει τις τεχνικές ανάλυσης των αλγορίθμων, θα μπορείς να μετράς την επίδοση των αλγορίθμων με βάση

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

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

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

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

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

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

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

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

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

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

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

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

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

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

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

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

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή Στόχοι Μαθήματος: Να γνωρίσετε τις βασικές λειτουργίες ενός Η/Υ. Να γνωρίσετε τις έννοιες δεδομένα, πληροφορία, επεξεργασία,

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

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

Η ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ FLYNN!!! 1 ο ΕΠΑΛ ΡΟΔΟΥ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ!!!! Χατζηνικόλας Κώστας www.costaschatzinikolas.gr Η ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ FLYNN 1 ο ΕΠΑΛ ΡΟΔΟΥ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Χατζηνικόλας Κώστας www.costaschatzinikolas.gr Τα 4 Είδη Των Αρχιτεκτονικών Των Σύγχρονων Η/Υ Ο Michael J. Flynn 1 το 1966 πρότεινε τον χωρισμό

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

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

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

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

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

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

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

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Κεφάλαιο 1.6: Συσκευές αποθήκευσης Κεφάλαιο 1.6: Συσκευές αποθήκευσης 1.6.1 Συσκευές αποθήκευσης Μνήμη τυχαίας προσπέλασης - RAM Η μνήμη RAM (Random Access Memory Μνήμη Τυχαίας Προσπέλασης), κρατεί όλη την πληροφορία (δεδομένα και εντολές)

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

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

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1 Μνήμη Διευθύνσεις Δείκτες Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη Η/Υ Ειδικό υλικό, ξεχωριστό από τον επεξεργαστή Χρησιμεύει για την αποθήκευση δεδομένων και της κατάστασης εκτέλεσης του προγράμματος

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

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

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

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

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

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

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

Προγραμματισμός Υπολογιστών

Προγραμματισμός Υπολογιστών Προγραμματισμός Υπολογιστών Βασικές γνώσεις Κ. Βασιλάκης, ΣΤΕΦ, ΤΕΙ Κρήτης Η Πληροφορική και τα εργαλεία της Παροχή έγκαιρης και έγκυρης πληροφόρησης. Καταχώριση στοιχείων Αποθήκευση Επεξεργασία ψηφιακών

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

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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

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

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

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

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

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

Πρόβλημα 37 / σελίδα 207

Πρόβλημα 37 / σελίδα 207 Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση

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

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Στόχος Θεματικής Ενότητας Οι μαθητές να περιγράφουν τους βασικούς τομείς της Επιστήμης των Υπολογιστών και να μπορούν

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών

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

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

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι

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

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

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

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

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

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

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

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

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. 4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό

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

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

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων Κεφάλαιο 1ο 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων http://leitourgika-systhmata-epal-b.ggia.info Creative Commons License 3.0 Share-Alike Πολυπρογραμματισμός

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

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

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

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

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

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

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

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

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

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

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α ΤΑΞΗ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α ΤΑΞΗ Απαντήσεις στις ερωτήσεις του βιβλίου ΚΕΦΑΛΑΙΟ 3 1. 2. Από ποια στοιχεία αποτελείται το κεντρικό μέρος ενός υπολογιστή και ποια η λειτουργία καθενός; Κεντρική Μονάδα επεξεργασίας

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