Κεφάλαιο 4 Εκτίμηση και Κατανόηση Απόδοσης (Assessing and Understanding Performance)



Σχετικά έγγραφα
Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

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

Κεφάλαιο 4 Εκτίμηση και Κατανόηση Απόδοσης

Απόδοση Υπολογιστικών Συστημάτων

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

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

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

ΠΛΕ- 027 Μικροεπεξεργαστές

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

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


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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Εισαγωγή

Αφηρημένες έννοιες και τεχνολογία υπολογιστών

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

Τεχνικές Εκτίμησης Υπολογιστικών συστημάτων. Γιάννης Γαροφαλάκης. Καθηγητής

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

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

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 2: Φορτίο εργασίας, μετρήσεις και πειράματα

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

Οργάνωση Υπολογιστών

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

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

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

Ηλεκτρονικός Υπολογιστής

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

Κεφάλαιο 1 : Εισαγωγή

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

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

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

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Κεφάλαιο 1 Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Οι τέσσερις αρχές για τον σχεδιασμό του συνόλου εντολών μιας μηχανής είναι:

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

Δυναμική Θεώρηση και Συγχρονισμός των εξαρτήσεων των δεδομένων. Αλεξάνδρα Παπανδρεάδη (ΑΜ 362)

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

Κεφάλαιο 1 Αφαιρετικότητα και Τεχνολογία Υπολογιστών (Computer Abstractions and Technology)

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

ΛΟΓΙΣΜΙΚΟ (software)

Βασίλειος Κοντογιάννης ΠΕ19

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Βασική δοµή και Λειτουργία Υπολογιστή

ΜΑΘΗΜΑ 1- MULTIPLE CHOICE

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

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

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

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

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

Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

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

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

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

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

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

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

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Βασικές Έννοιες της Πληροφορικής

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

Πληροφορική και Υπολογιστές

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

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

ΑΠΟΤΕΛΕΣΜΑΤΑ ΔΙΑΒΟΥΛΕΥΣΗΣ. Προκήρυξη Διαγωνισμού για την «Προμήθεια Εξοπλισμού Κόμβου Μηχανικής Μάθησης» /

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

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

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

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

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

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

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

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

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

Transcript:

Κεφάλαιο 4 Εκτίμηση και Κατανόηση Απόδοσης (Assessing and Understanding Performance) 1

Απόδοση H/Y (Computer Performance) Μέτρηση, Αναφορά και Σύνοψη Κατανόηση βασικών παραγόντων που καθορίζουν την απόδοση Λήψη έξυπνων αποφάσεων, η εφαρμογή παίζει ρόλο! Η ανάλυση της απόδοσης είναι κλειδί για την κατανόηση της οργάνωσης ενός υπολογιστή - Γιατί κάποιο υλικό (hardware) είναι καλύτερο από άλλα, για διαφορετικά προγράμματα/εφαρμογές; - Ποιοι παράγοντες της απόδοσης του συστήματος σχετίζονται με το υλικό; (π.χ., Χρειαζόμαστε νέα μηχανή ή νέο λειτουργικό;) - Πως το σύνολο εντολών μιας μηχανής επηρεάζει την απόδοση; 2

Ποιο από τα πιο κάτω αεροπλάνα έχει την καλύτερη απόδοση; Ικανότητα Μοντέλο Χωρητικότητα Εμβέλεια Ταχύτητα Διεκπεραίωσης Αεροπλάνου Επιβατών (μίλια) (m.p.h.) (επιβάτες x m.p.h.) Boeing 737-100 101 630 598 60,398 Boeing 777 375 4630 610 228,750 Boeing 747 470 4150 610 286,700 BAC/Sud Concorde 132 4000 1350 178,200 Douglas DC-8-50 146 8720 544 79,424 Πόσο γρηγορότερο είναι το Concorde από το 747? Πόσο μεγαλύτερο είναι το 747 από το Douglas DC-8? Υπάρχουν πολλοί παράγοντες που καθορίζουν την απόδοση χρόνος μεταφοράς ενός επιβάτη χρόνος μεταφοράς n επιβατών (= ικανότητα διεκπεραίωσης = throughput) 3

Απόδοση Η/Υ Χρόνος Ανταπόκρισης (Response Time) ή Χρόνος Αναμονής (Latency) ή Χρόνος Εκτέλεσης (Execution Time) Ο συνολικός χρόνος που απαιτείται από τον υπολογιστή για να διεκπεραιώσει μία εργασία (task). Περιλαμβάνει χρόνο για την μνήμη, περιφερειακά, επιβάρυνση από λειτουργικό, χρόνο μικροεπεξεργαστή (CPU), κτλ Πόσο χρόνο θα πάρει για να εκτελεστεί το πρόγραμμά μου; Πόσο χρόνο πρέπει να περιμένω για το αίτημά μου προς τη βάση δεδομένων; Ικανότητα Διεκπεραίωσης ή Δυναμικότητα (Throughput) Συνολική ποσότητα της εργασίας που γίνεται σε δεδομένο χρόνο Πόσες εργασίες (jobs) μπορεί μια μηχανή να εκτελεί σε μια δεδομένη στιγμή; Ποια είναι η μέση συχνότητα εκτέλεσης; (average execution rate) Πόση δουλειά γίνεται; 4

Απόδοση Η/Υ (συν.) Χρόνος Ανταπόκρισης (Response Time) ή Χρόνος Αναμονής (Latency) ή Χρόνος Εκτέλεσης (Execution Time) Ο συνολικός χρόνος που απαιτείται από τον υπολογιστή να διεκπεραιώσει μία εργασία (task). Περιλαμβάνει χρόνο για την μνήμη, περιφερειακά, επιβάρυνση από λειτουργικό, χρόνο μικροεπεξεργαστή (CPU), κτλ Ικανότητα Διεκπεραίωσης ή Δυναμικότητα (Throughput) Συνολική ποσότητα της εργασίας που γίνεται σε δεδομένο χρόνο Αν αναβαθμίσουμε μια μηχανή με ένα καινούριο μικροεπεξεργαστή, τι θα αυξήσουμε; Αν προσθέσουμε μια καινούρια μηχανή στο εργαστήριο, τι θα αυξήσουμε; 5

Χρόνος Εκτέλεσης (Execution Time) Χρόνος Εκτέλεσης Μετρά τα πάντα (χρόνο προσπέλασης δίσκου και μνήμης, I/O, χρόνος μικροεπεξεργαστή, κτλ) Χρήσιμο μέτρο, αλλά συχνά δεν φανερώνει πολλά για σκοπούς σύγκρισης Χρόνος Μικροεπεξεργαστή (CPU time) Δεν μετρά χρόνο πρόσβασης στα περιφερειακά (I/O) ή χρόνο εκτέλεσης άλλων προγραμμάτων. Είναι ο πραγματικός χρόνος που αναλώνει το CPU για τον υπολογισμό ενός προγράμματος Αποτελείται από system CPU time (=χρόνος που το O/S αναλώνει για ένα πρόγραμμα) και user CPU time (=χρόνος που αναλώνεται στο CPU για ένα πρόγραμμα) Το επίκεντρό μας: user CPU time Ο χρόνος που χρειάζεται για να εκτελεστούν οι εντολές που απαρτίζουν ένα πρόγραμμα 6

Ορισμός Απόδοσης Για κάποιο πρόγραμμα Χ που εκτελείται σε μια μηχανή Μ: Απόδοση X = 1 / Χρόνο Εκτέλεσης X Απόδοση x > Απόδοση y Χρόνος Εκτέλεσης x < Χρόνος Εκτέλεσης y Το X είναι n φορές γρηγορότερο του Y (Αναλογία Απόδοσης) Απόδοση x / Απόδοση y = n Χρόνος Εκτέλεσης y / Χρόνος Εκτέλεσης x = n Ερώτηση: Η μηχανή A εκτελεί ένα πρόγραμμα σε 20 δευτερόλεπτα Η μηχανή B εκτελεί το ίδιο πρόγραμμα σε 25 δευτερόλεπτα Πόσο πιο γρήγορη είναι η A από τη B; 7

Κύκλοι Ρολογιού Αντί να μετρούμε τον χρόνο εκτέλεσης (σε δευτερόλεπτα), συχνά μετρούμε τον αριθμό κύκλων του ρολογιού που χρειάζονται (τρόπος που αντιλαμβάνονται την απόδοση οι σχεδιαστές του υλικού) ΧρόνοςΕκτέλεσηςαπό CPU = Αρ. κύκλων ρολογιού CPU x Περίοδορολογιού Χρόνος = δευτερόλεπτα = κύκλοι ρολογιού x δευτερόλεπτα πρόγραμμα πρόγραμμα κύκλοι ρολογιού Ο «κτύπος» του ρολογιού (clock tick) υποδεικνύει την έναρξη κάποιας δραστηριότητας (μοντέλο αφαιρετικότητας): χρόνος Χρόνος κύκλου ή Περίοδος (clock cycle or period) = χρόνος μεταξύ κτύπων = δευτερόλεπτα ανά κύκλο Ρυθμός ρολογιού ή Συχνότητα (clock rate or frequency) = κύκλοι ανά δευτερόλεπτο = 1 / Περίοδο (1 Hz = 1 cycle/sec) Ένα ρολόι με συχνότητα 4 GHz έχει περίοδο ίση με: 4 GHz = 4 x 10 9 cycles/sec 1 / (4 x 10 9 ) secs/cycle = 2.5 x 10-10 secs = 250 x 10-12 secs = 250 picosecs 8

Βελτίωση Απόδοσης Αφού, δευτερόλεπτα κύκλοι ρολογιού δευτερόλεπτα πρόγραμμα = πρόγραμμα x κύκλοι ρολογιού για βελτίωση της απόδοσης μπορούμε να (αυξήσουμε ή μειώσουμε): τον # των απαιτούμενων κύκλων από ένα πρόγραμμα, ή την περίοδο του ρολογιού, ή (αλλιώς) την συχνότητα του ρολογιού. 9

Παράδειγμα 1 Έχουμε ένα πρόγραμμα που εκτελείται σε 10 secs στον υπολογιστή Α με συχνότητα ρολογιού 4GHz. Προσπαθούμε να βοηθήσουμε τον σχεδιαστή να κατασκευάσει μια νέα μηχανή Β, η οποίαθαεκτελείτο πρόγραμμα σε 6 secs. Ο σχεδιαστής μπορεί να χρησιμοποιήσει νέα (ή καιπιοακριβή) τεχνολογία για να αυξήσει την συχνότητα του ρολογιού. Όμως, αυτό θα επηρεάσει το υπόλοιπο σχέδιο του CPU, με αποτέλεσμα η μηχανή Β να απαιτεί 1.2 φορές των κύκλων του ρολογιού που απαιτεί η μηχανή Α, γιατοίδιοπρόγραμμα. Ποια συχνότητα ρολογιού πρέπει να συμβουλεύσουμε τον σχεδιαστή να χρησιμοποιήσει; Μην πανικοβάλλεστε! Σκεφτείτε απλά, εφαρμόστε τις σχέσεις που έχουμε ορίσει μέχρι στιγμής 10

Πόσοι κύκλοι ρολογιού χρειάζονται για ένα πρόγραμμα; Μπορούμε να θεωρήσουμε ότι ο αριθμός των κύκλων ισούται με τον αριθμό των εντολών: 1st instruction 2nd instruction 3rd instruction 4th 5th 6th... χρόνος Αυτή η υπόθεση είναι λανθασμένη, αφού διαφορετικές εντολές απαιτούν διαφορετικό χρόνο εκτέλεσης, σε διαφορετικές μηχανές. Γιατί; (Υπόδειξη: θυμηθείτε ότι αναφερόμαστε σε εντολές μηχανής, και όχι σε εντολές υψηλής γλώσσας προγραμματισμού, π.χ. C) 11

Διαφορετικός αριθμός κύκλων ρολογιού για διαφορετικές εντολές μηχανής 1 2 3 4 5 εντολές 1 2 1 1 3 # κύκλων ανά εντολή χρόνος Οπολ/σμός απαιτεί περισσότερο χρόνο από την πρόσθεση Αριθμητικές πράξεις με κινητή υποδιαστολή απαιτούν περισσότερο χρόνο από πράξεις ακεραίων Η προσπέλαση μνήμης είναι πολύ πιο χρονοβόρα από την προσπέλαση καταχωρητών Σημαντικό: η αλλαγή στον χρόνο του ρολογιού συνήθως προκαλεί αλλαγή στον αριθμό των κύκλων που απαιτούνται για τις διάφορες εντολές 12

CPI (Clocks Per Instruction) Αρ. Κύκλων ανά Εντολή (CPI) = ο μέσος αριθμός κύκλων του ρολογιού που απαιτούνται από μια εντολή, για ένα πρόγραμμα ή ένα κομμάτι του. Επομένως, Αρ. κύκλων ρολογιού CPU = # Εντολών στο πρόγραμμα x CPI Αντικαθιστώντας το πιο πάνω στην πιο κάτω σχέση ΧρόνοςΕκτέλεσης CPU = Αρ. κύκλων ρολογιού CPU x Περίοδο ρολογιού έχουμε: Χρόνος Εκτέλεσης CPU = # Εντολών στο πρόγραμμα x CPI x Περίοδο ρολογιού Παρατηρείστε ότι το CPI είναι ο μέσος όρος όλων των εντολών σε ένα πρόγραμμα, και δεν μπορεί να υπολογιστεί εύκολα χωρίς προσομοίωση Το CPI είναι ένα καλό μέτρο σύγκρισης διάφορων υλοποιήσεων του ιδίου ISA. Γιατί; 13

Παράδειγμα 2 (για CPI ) Θεωρήστε ότι έχουμε 2 υλοποιήσεις του ιδίου συνόλου εντολών (ISA). Για κάποιο πρόγραμμα, Η μηχανή A έχει κύκλο ρολογιού (περίοδο) = 250 ps και CPI = 2.0 Η μηχανή B έχει κύκλο ρολογιού (περίοδο) = 500 ps και CPI = 1.2 Ποια μηχανή είναι γρηγορότερη για αυτό το πρόγραμμα, και κατά πόσο πιο γρήγορη; 14

Τώρα που καταλαβαίνουμε περισσότερα Ένα πρόγραμμα απαιτεί: Ένα αριθμό εντολών (μηχανής) Ένα αριθμό κύκλων του ρολογιού Ένα αριθμό δευτερολέπτων Έχουμε συγκεκριμένο λεξιλόγιο, που συνδέει τους πιο πάνω αριθμούς: Χρόνος/Περίοδος Κύκλου Ρολογιού (secs ανά κύκλο) Συχνότητα Ρολογιού (κύκλοι ανά sec) CPI (μέσος αριθμός κύκλων ανά εντολή) MIPS (εκατομμύρια εντολών ανά sec) 15

Απόδοση Καθορίζεται από τον χρόνο εκτέλεσης Ισούται κάποιο μέτρο από τα πιο κάτω με την απόδοση; # κύκλων που εκτελούνται από ένα πρόγραμμα # εντολών στο πρόγραμμα # κύκλων ανά δευτερόλεπτο (συχνότητα) μέσος # κύκλων ανά εντολή (CPI) μέσος # εντολών ανά δευτερόλεπτο (MIPS) Συνήθης κίνδυνος: Να βασιζόμαστε στο ότι ένα και μόνο μέτρο μπορεί να είναι ενδεικτικό της απόδοσης, όταν στην πραγματικότητα δεν είναι. 16

Παράδειγμα 3 (για # εντολών) Ένας σχεδιαστής μεταγλωττιστών προσπαθεί να αποφασίσει μεταξύ 2 διαφορετικών σειρών μεταγλώττισης εντολών για την υλοποίηση μιας πράξης σε μια συγκεκριμένη μηχανή. Βάση της υλοποίησης του υλικού, υπάρχουν 3 κατηγορίες εντολών: Κατηγορία A, Κατηγορία B και Κατηγορία Γ. Η κάθε κατηγορία απαιτεί 1, 2 και 3 κύκλους ρολογιού, αντίστοιχα. Η 1η σειρά μεταγλώττισης έχει 5 εντολές: 2 A, 1 B και 2 Γ Η 2η σειρά μεταγλώττισης έχει 6 εντολές : 4 A, 1 B και 1 Γ -- Ποια σειρά θα είναι η γρηγορότερη; Κατά πόσο; -- Ποιο είναι το CPI της κάθε σειράς; n Θεωρήστε ότι: CPU clock cycles = Σ (CPI i x C i ), i = 1 n = αρ. κατηγοριών εντολών, C i = # εντολών στην κατηγορία i 17

Αξιολόγηση Απόδοσης Πως αξιολογούμε την απόδοση μεταξύ 2 (ή και περισσότερων) υπολογιστών; Φορτίο Εργασίας (Workload) Ένα σύνολο προγραμμάτων, που εκτελούνται σε ένα υπολογιστή, το oποιο είναι είτε η πραγματική συλλογή των εφαρμογών που θα εκτελεστούν από τον χρήστη, είτε έχει κατασκευαστεί από πραγματικά προγράμματα που προσεγγίζουν τις πραγματικές εφαρμογές (το τελευταίο είναι, συνήθως, μια συλλογή από προγράμματα benchmarks). Πρότυπα Προγράμματα Αξιολόγησης (Benchmarks) Προγράμματα ειδικά επιλεγμένα για να μετρούν την απόδοση υπολογιστών. Σήμερα, είναι συνήθως πραγματικές εφαρμογές που ένας χρήστης θα εκτελεί συχνά (π.χ., επιστημονικοί υπολογισμοί για χημικούς μηχανικούς, μεταγλωττιστές και επεξεργασία κειμένου για ανάπτυξη λογισμικού, CAD για μηχανικούς σχεδιασμού ολοκληρωμένων, Βάσεις δεδομένων για τράπεζες, κτλ) 18

Πρότυπα Προγράμματα (Benchmarks) Η απόδοση ορίζεται καλύτερα όταν έχουμε πραγματικές εφαρμογές Πρότυπα Προγράμματα μικρού μεγέθους Διευκολύνουν αρχιτέκτονες (h/w) και σχεδιαστές (ειδικά όταν δεν είναι διαθέσιμος ακόμα ο μεταγλωττιστής) Εύκοληηκατανόησήτους Συχνή κατάχρηση!!! SPEC (System Performance Evaluation Cooperative) Εταιρίες έχουν συμφωνήσει σε ένα σύνολο πραγματικών προγραμμάτων και ορισμάτων (inputs) Η όλη προσπάθεια ξεκίνησε το 1989, με επίκεντρο workstations και εξυπηρετητές και χρησιμοποιώντας πρότυπα απαιτητικά προς CPU Σήμερα, συμπεριλαμβάνουν απόδοση CPU, γραφικά, υπολογισμούς υψηλών επιδόσεων, αντικειμενοστραφή προγραμματισμό, εφαρμογές Java, μοντέλα πελάτη-εξυπηρετητή, συστήματα ηλ. ταχ., συστήματα αρχείων, εξυπηρετητές Web, κτλ Πολύτιμοι δείκτες απόδοσης (και τεχνολογίας μεταγλωττιστών) Μπορούν και αυτά να καταχραστούν (βλέπε επόμενη διαφάνεια) 19

Τα παιγνίδια των πολυεθνικών με τα Benchmark An embarrassed Intel Corp. acknowledged Friday that a bug in a software program known as a compiler had led the company to overstate the speed of its microprocessor chips on an industry benchmark by 10 percent. However, industry analysts said the coding error was a sad commentary on a common industry practice of cheating on standardized performance tests The error was pointed out to Intel two days ago by a competitor, Motorola came in a test known as SPECint92 Intel acknowledged that it had optimized its compiler to improve its test scores. The company had also said that it did not like the practice but felt to compelled to make the optimizations because its competitors were doing the same thing At the heart of Intel s problem is the practice of tuning compiler programs to recognize certain computing problems in the test and then substituting special handwritten pieces of code Saturday, January 6, 1996 New York Times 20

Αναφορά Απόδοσης Συντάσσεται μετά τις μετρήσεις απόδοσης βάση ενός συνόλου από κατάλληλα benchmarks Aναπαραγωγικότητα (Reproducibility) Η αναφορά πρέπει να περιέχει όλες τις πληροφορίες που θα χρειάζεται ένα άλλο πείραμα για να αναπαραγάγει τα αναφερόμενα αποτελέσματα (π.χ. έκδοση O/S, μεταγλωττιστή, ορίσματα, διάταξη υπολογιστή, κτλ) Η σωστή επιλογή ορισμάτων (input) είναι πολύ σημαντική. Χρειάζεται μεγάλος αριθμός ορισμάτων (δεδομένων εισόδου) για αξιολόγηση του συστήματος μνήμης, όπως και μεγάλο workload. 21

Σύγκριση και Σύνοψη Απόδοσης Η παρουσίαση της σύνοψης της απόδοσης μιας ομάδας από benchmarks είναι κρίσιμη Πως υπολογίζεται συνοπτικά η απόδοση; Θεωρήστε το πιο κάτω παράδειγμα: Πρόγραμμα Χρόνος Εκτέλεσης για Υπολογιστή A Χρόνος Εκτέλεσης για Υπολογιστή Β 1 1 sec 10 secs 2 1000 secs 100 secs Total 1001 secs 110 secs Βάση του ορισμού του γρηγορότερου, ισχύουν και τα 2 πιο κάτω: Η A είναι 10 φορές γρηγορότερη από την B για το πρόγραμμα 1 Η B είναι 10 φορές γρηγορότερη από την Α για το πρόγραμμα 2 Πια είναι η μεγάλη/συνοπτική εικόνα; 22

ΣυνολικόςΧρόνοςΕκτέλεσης Ένα συνεπές μέτρο σύνοψης Για να συνοψίσουμε την σχετική απόδοση μπορούμε να χρησιμοποιήσουμε τον συνολικό χρόνο εκτέλεσης των 2 προγραμμάτων: Απόδοση B Χρόνος Εκτέλεσης A 1001 = = = 9.1 Απόδοση A Χρόνος Εκτέλεσης B 110 Επομένως, η B είναι 9.1 φορές γρηγορότερη της A Ο μέσοςόροςτουχρόνουεκτέλεσηςπου είναι ανάλογος του συνολικού χρόνου εκτέλεσης είναι ο αριθμητικός μέσος (arithmetic mean -- AM): n 1 Σ AM = Χρόνος Εκτέλεσης n i=1 i Σταθμικός (Weighted) AM: ανάθεση σταθμικού όρου στο κάθε πρόγραμμα για να αντιπροσωπεύεται η συχνότητα του προγράμματος μέσα στο workload. 23

Τι νομίζετε; Θεωρήστε ότι θέλουμε να επιλέξουμε αναμεταξύ 4 ων διαφορετικών desktops: ένα Apple Macintosh και τρία PC (Pentium 4, AMD και Pentium 5). Ποιο από τα ακόλουθα είναι Σωστό; 1. Ο γρηγορότερος υπολογιστής θα είναι αυτός με την μεγαλύτερη συχνότητα ρολογιού. 2. Αφού όλα τα PCs χρησιμοποιούν το ίδιο Intel ISA (με ίδιο # εντολών), το γρηγορότερο θα είναι αυτό με την μεγαλύτερη συχνότητα ρολογιού. 3. Ο μικροεπεξεργαστής AMD μπορεί να έχει διαφορετικά CPIs. Άρα, για τα υπόλοιπα 2 Pentium PCs, το γρηγορότερο θα είναι αυτό με την μεγαλύτερη συχνότητα ρολογιού. 4. Μόνο αν δούμε τα αποτελέσματα από τα benchmarks για παρόμοιες εργασίες με το δικό μας workload θα μπορούμε να πάρουμε μια ακριβή εικόνα της αναμενόμενης απόδοσης. 24

Τι νομίζετε; Θεωρήστε τα πιο κάτω: Πρόγραμμα Χρόνος Εκτέλεσης για Υπολογιστή Α Χρόνος Εκτέλεσης για Υπολογιστή Β 1 2 secs 4 secs 2 5 secs 2 secs Ποιο από τα ακόλουθα είναι ορθό? 1. Ο υπολογιστής A είναι γρηγορότερος από τον B για το πρόγραμμα 1 2. Ο υπολογιστής A είναι γρηγορότερος από τον B για το πρόγραμμα 2 3. Ο υπολογιστής A είναι γρηγορότερος από τον B για ένα φόρτο εργασίας (workload) με ίσο αριθμό εκτελέσεων των προγραμμάτων 1 και 2 4. Ο υπολογιστής A είναι γρηγορότερος από τον B για ένα φόρτο εργασίας (workload) με διπλό αριθμό εκτελέσεων του προγράμματος 1 από τον αριθμό εκτελέσεων του προγράμματος 2 25

SPEC 89 (Τα πρώτα πρότυπα) «Βελτιώσεις» Μεταγλωττιστή και Απόδοση 800 700 600 SPEC performance ratio 500 400 300 200 100 0 gcc espresso spice doduc nasa7 li eqntott matrix300 fpppp tomcatv Benchmark Compiler Enhanced compiler 26

SPEC CPU2000 12 προγράμματα για ακέραιους και 14 για κινητή υποδιαστολή διαφορετικές συνόψεις για κάθε ομάδα προγραμμάτων υπολογίζουν wall (συνολικό) χρόνο, αλλά αφού το μεγαλύτερο ποσοστό προέρχεται από το CPU, μετρούν CPU απόδοση Αναλογία SPEC: κανονικοποίηση χρόνου εκτέλεσης με διαίρεση δια τον χρόνο εκτέλεσης σε Sun Ultra 5_10 (300 MHz) επί τον χρόνο εκτέλεσης στον υπό εξέταση υπολογιστή 27

SPEC CPU2000 for Intel Pentium III and Pentium 4 1400 1200 σε Dell Precision 1000 800 Pentium 4 CFP2000 Pentium 4 CINT2000 600 400 200 Pentium III CINT2000 Pentium III CFP2000 0 500 1000 1500 2000 2500 3000 3500 Clock rate in MHz Η Απόδοση προσαρμόζεται σχεδόν γραμμικά με την συχνότητα του ρολογιού Μπορούμε να παρατηρήσουμε κάτι άλλο; 28

SPEC CPU2000 for Intel Pentium III and Pentium 4 1400 1200 σε Dell Precision 1000 Pentium 4 CFP2000 Pentium 4 CINT2000 800 600 400 200 Pentium III CINT2000 Pentium III CFP2000 0 500 1000 1500 2000 2500 3000 3500 Clock rate in MHz Παρατηρήστε την μέση τιμή των CFT2000 και CINT2000 δια τη συχνότητα του ρολογιού (MHz): CINT2000/Clock rate Pentium III = 0.47 Pentium 4 = 0.36 CFP2000/Clock rate Pentium III = 0.34 Pentium 4 = 0.39 29

SPECweb99 Εστιάζεται στην ικανότητα διεκπεραίωσης (throughput) και μετρά τον μέγιστο αριθμό συνδέσεων που μπορεί να παρέχει ένας εξυπηρετητής Web (web-server) Συνήθως χρησιμοποιεί συστήματα με πολλαπλούς επεξεργαστές (multiprocessor systems) Το λογισμικό του Web-server είναι μέρος του συστήματος που αξιολογείται ΗαπόδοσητωνSPECweb99 εξαρτάται από διάφορα χαρακτηριστικά του συστήματος (αριθμό σκληρών δίσκων, αριθμό από CPUs, αριθμό δικτύων, συχνότητα ρολογιού) Παράδειγμα: O Pentium III Xeon με 7 δίσκους, 8 CPUs, 8 δίκτυα, στα 0.7GHz είναι πολύ καλύτερος από τον Pentium Xeon 4 με 5 δίσκους, 2 CPUs, 4 δίκτυα, στα 3.06GHz. 30

Απόδοση, Ισχύς και Αποδοτικότητα Ενέργειας Ηαπώλεια/κατανάλωση ισχύος έχει σήμερα εξελιχθεί σε σημαντικό περιοριστικό παράγοντα για την απόδοση ενός μικροεπεξεργαστή Η ισχύς της μπαταρίας βελτιώνεται αργά Ο μικροεπεξεργαστής ΠΡΕΠΕΙ να σχεδιαστεί με τρόπο που να λειτουργεί αποδοτικά και να εξοικονομεί ισχύ/ενέργεια, και να μπορεί να αλλάζει μεταξύ διαφορετικών συχνοτήτων ρολογιού Θεωρήστε τους 3 πιο κάτω τρόπους λειτουργίας: Maximum power: μέγιστη συχνότητα ρολογιού καλύτερη απόδοση Laptop mode: προσαρμόσιμη συχνότητα Minimum power: ελάχιστη συχνότητα καλύτερη αποδοτικότητα ενέργειας Αποδοτικότητα Ενέργειας (Energy efficiency): απόδοση διά τη μέση κατανάλωση ισχύος κατά τη διάρκεια εκτέλεσης προγραμμάτων/benchmarks 31

Απόδοση, Ισχύς και Αποδοτικότητα Ενέργειας Μπορεί μια μηχανή με πιο αργή συχνότητα ρολογιού να έχει καλύτερη απόδοση; 32

Δοκιμάστε το πιο κάτω Τηλεφωνήστε σε μια εταιρία που παρέχει υπολογιστές και αναφέρετε ότι προσπαθείτε να αποφασίσετε μεταξύ 2 υπολογιστών. Συγκεκριμένα, ήσαστε μπερδεμένοι όσον αφορά τις δυνατότητες κα αδυναμίες των διαφόρων μικροεπεξεργαστών (π.χ., Pentium 4 με 2GΗz ή Celeron M με 1.4 GΗz ;) Τι απάντηση νομίζετε ότι θα πάρετε; Τι απάντηση θα δίνατε σε κάποιο φίλο σας που έχει την ίδια απορία; 33

Θυμηθείτε Η Απόδοση αναφέρεται σε συγκεκριμένο(α) πρόγραμμα(τα) Ο συνολικός χρόνος εκτέλεσης είναι ένας συνεπής τρόπος σύνοψης της απόδοσης Για μια δεδομένη αρχιτεκτονική, η αύξηση στην απόδοση έρχεται από: Αύξηση της συχνότητας του ρολογιού (χωρίς δυσμενή επηρεασμό στο CPI) Βελτίωση στην οργάνωση του μικροεπεξεργαστή που μειώνει το CPI Βελτιστοποιήσεις στον μεταγλωττιστή που μειώνουν το CPI και/ή τον αριθμό των εντολών Καλύτερες επιλογές αλγορίθμων/γλώσσας προγραμματισμού που μειώνει τον αριθμό των εντολών Πολλοί κίνδυνοι παρερμηνείας: Βελτίωση ενός μέρους (ή από μια άποψη) της απόδοσης της μηχανής πάντα επηρεάζει την συνολική απόδοση ΛΑΘΟΣ Amdahl s Law Χρήση ενός υποσυνόλου των παραγόντων (ή εξισώσεων) που ορίζουν την απόδοση (π.χ. μέτρο MIPS) 34

ΟνόμοςτουAmdahl Χρόνος Εκτέλεσης Ανεπηρέαστος Επηρεαζόμενος Χρόνος Εκτέλεσης μετά τη Βελτίωση Χρόνος Εκτέλεσης Ποσοστό Βελτίωσης Παράδειγμα: = + «Θεωρήστε ότι ένα πρόγραμμα εκτελείται σε 100 secs σε μια μηχανή. Η πράξη του πολ/σμού παίρνει τα 80 από τα 100 secs. Κατά πόσο πρέπει να βελτιώσουμε την ταχύτητα του πολ/σμού εάν θέλουμε το πρόγραμμα να τρέχει 4 φορές πιο γρήγορα;» Μπορούμε να φτάσουμε σε 5 φορές πιο γρήγορα; Θυμηθείτε την Αρχή Σχεδιασμού: «Η συνήθης πράξη πρέπει να είναι γρήγορη» (Make the common case fast) 35

Μέτρο MIPS MIPS = Million Instructions Per Second Εύκολο να το καταλάβουμε, μπορεί να χρησιμοποιηθεί γιαναδηλώσειαπόδοση, κάτω από ορισμένες προϋποθέσεις Είναι ανακριβής σε πολλές περιπτώσεις, αφού δεν δίνει «ολοκληρωμένη εικόνα»! Περιγράφει τη συχνότητα εκτέλεσης (execution rate) αλλά δεν εξετάζει καθόλου τις ικανότητες της κάθε εντολής (CPI) Δεν μπορεί να χρησιμοποιηθεί για να συγκρίνει υπολογιστές με διαφορετικά ISAs. Γιατί? 36

Παράδειγμα μέτρου MIPS Δύο διαφορετικοί μεταγλωττιστές αξιολογούνται πάνω σε μια μηχανή των 4ων GHz, με 3 διαφορετικές κατηγορίες εντολών: κατηγορία A, κατηγορία B και κατηγορία C. Η κάθε κατηγορία απαιτεί 1, 2 και 3 κύκλους ρολογιού, αντίστοιχα. Και οι δύο μεταγλωττιστές χρησιμοποιούνται για να παράγουν κώδικα από ένα μεγάλο μέρος λογισμικού. Οκώδικαςαπότον1 ο μεταγλωττιστή έχει 5 εκατομμύρια εντολές κατηγορίας A, 1 εκατομμύριο κατηγορίας B και 1 εκατομμύριο κατηγορίας C. Οκώδικαςαπότον2 ο μεταγλωττιστή έχει 10 εκατομμύρια εντολές κατηγορίας A, 1 εκατομμύριο κατηγορίας B και 1 εκατομμύριο κατηγορίας C. Ποιος μεταγλωττιστής θα είναι ο γρηγορότερος, βάση MIPS? Ποιος μεταγλωττιστής θα είναι ο γρηγορότερος, βάση του χρόνου εκτέλεσης; 37