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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

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

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

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

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

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

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

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

HY225 Οργϊνωςη Υπολογιςτών

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

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

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

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

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

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

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

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

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

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

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

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

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

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

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

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

Επιµέλεια Θοδωρής Πιερράτος

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y»

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

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

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

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

Α. Ερωτήσεις Ανάπτυξης

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

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

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

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

διανύσματα - Πίνακες - Struct Στατικό διάνυσμα Είσοδος Έξοδος δεδομένων Συναρτήσεις Χειρισμός σφαλμάτων ΤΕΤΑΡΤΗ ΔΙΑΛΕΞΗ

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

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

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

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

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

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

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

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

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

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

Προγραµµατισµός Η/Υ. Μέρος2

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

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

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

ΚΕΦΑΛΑΙΟ 1 ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ

Transcript:

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

Αξιολόγηση μιας Αρχιτεκτονικής Αξιολόγηση Αρχιτεκτονικής Αξιολόγηση της επίδοσης των υπολογιστών Συνήθεις μετρικές (metrcs): Χρόνος CPU που την υλοποιούν Κύκλοι ανά εντολή (ή Εντολές ανά κύκλο) Εκατομμύρια εντολές ανά δευτερόλεπτο (MIPS) Εκατομμύρια πράξεις κινητής υποδιαστολής ανά δευτερόλεπτο (MFLOPS) Μετροπρογράμματα (Benchmarks)

Η απόδοση της CPU - Ορισμοί Κύκλος ρολογιού (Clock Cycle): Το διάστημα μεταξύ δύο γεγονότων ρολογιού (π.χ. ακμές ανόδου). Περίοδος κύκλου (Cycle Perod): Η διάρκεια του κύκλου σε ns. Συχνότητα ρολογιού (Clock rate) : Η συχνότητα των κύκλων στη μονάδα του χρόνου [Συχνότητα ρολογιού] = 1 / [Περίοδος κύκλου] (σε GΗz) Ακμή ανόδου Ακμή καθόδου Κατάσταση 1 Κατάσταση 0 Περίοδος

ΠΑΡΑΔΕΙΓΜΑ Περίοδος = 0.4ns. Σε πόσα GΗz αντιστοιχούν; Συχν 1 Περ 1 0.4 ns 0.4 1 10 9 sec 4 10 1 10 sec 10 4 10 1 sec 2.5 10 9 Hz 2.5GHz Συχν = συχνότητα ρολογιού = Clock Rate Περ = Περίοδος κύκλου = Cycle Perod

Χρόνος CPU [Χρόνος CPU] = [Χρόνος CPU χρήστη] + [Χρόνος συστήματος] Χρόνος συστήματος : Χρόνος που δαπανάται από το σύστημα για την διαχείριση του προγράμματος (δημιουργία της διεργασίας, απόδοση χώρου στη μνήμη, δρομολόγηση της διεργασίας για εκτέλεση, χρόνος αναμονής λόγω multtaskng, κλπ). Αφορά το λειτουργικό σύστημα Χρόνος CPU χρήστη : Χρόνος που δαπανάται από την CPU για την πραγματική εκτέλεση του προγράμματος. Αφορά το πρόγραμμα του χρήστη και την αρχιτεκτονική του Η/Υ

Απόδοση (Performance) υπολογιστών Μια πιο ρεαλιστική προσέγγιση είναι να ορίσουμε την απόδοση (performance) του υπολογιστή Χ σαν το αντίστροφο του χρόνου εκτέλεσης [Απόδοση] X = 1 / [Χρόνος εκτέλεσης] X Αυτό πρακτικά σημαίνει ότι η απόδοση του υπολογιστή Χ είναι n φορές μεγαλύτερη σε σχέση με τον Υ, όταν: [Απόδοση] X [Απόδοση] Y = [Χρόνος εκτέλεσης] Y = n [Χρόνος εκτέλεσης] X

Χρόνος CPU χρήστη (CPU tme) [Χρόνος CPU χρήστη] = [Πλήθος εντολών] [Μέσος χρόνος εκτέλεσης μιας εντολής] : αφορά το πρόγραμμα του χρήστη και την αρχιτεκτονική του Η/Υ Πλήθος εντολών (Instructon count IC) : το συνολικό πλήθος των εντολών του προγράμματος [Μέσος χρόνος εκτέλεσης μιας εντολής] = [Πλήθος κύκλων ανά εντολή] x [Περίοδος κύκλου] (Μέσο) Πλήθος κύκλων ανά εντολή (Cycles Per Instructon CPI) : ο μέσος αριθμός των κύκλων που χρειάζεται μια εντολή γλώσσας μηχανής για να εκτελεστεί Ανεξάρτητο από το πρόγραμμα και από τη συχνότητα του ρολογιού. Αφορά καθαρά την αρχιτεκτονική.

Χρόνος CPU χρήστη (CPU tme) (2) [Χρόνος CPU χρήστη] = = [πλήθος εντολών] [πλήθος κύκλων ανά εντολή] [περίοδος κύκλου] = [πλήθος εντολών] [πλήθος κύκλων ανά εντολή] [συχνότητα ρολογιού]

Χρόνος CPU χρήστη (CPU tme) (3) CPU tme = Πλήθος εντολών (IC) Πλήθος κύκλων ανά εντολή (CPI) Instructon set Archtecture + Τεχνολογία Compler Instructon set Archtecture + Οργάνωση Περίοδος Κύκλου (CP) Τεχνολογία Hardware + Οργάνωση CPU tme = IC x CPI x CP

Ο γενικευμένος βασικός τύπος CPU Tme N 1 IC CPI Clock cycle tme CPI ( average ) N 1 IC Instructo CPI n Count N 1 Instructo IC n Count CPI Instructon Count = IC = IC 1 + IC 2 +. IC N Υποθέτουμε ότι ένα πρόγραμμα αποτελείται από Ν διαφορετικό πλήθος εντολών ή ομάδων εντολών γλώσσας μηχανής όπου IC παριστάνει το πλήθος των κύκλων της εντολής στην οποία αντιστοιχεί το CPI

Παράδειγμα 1 Δύο μηχανές Α και Β έχουν την ίδια αρχιτεκτονική του nstructon set αλλά διαφορετική υλοποίηση. Η μηχανή Α έχει περίοδο κύκλου = 1ns και τρέχει ένα πρόγραμμα με CPI = 2 Η μηχανή B έχει περίοδο κύκλου = 2ns και τρέχει το ίδιο πρόγραμμα με CPI = 1.2 Ποια μηχανή έχει μεγαλύτερη απόδοση και πόσες φορές;

Λύση Ο αριθμός (έστω N) των nstructons του προγράμματος θα είναι ο ίδιος και στις δύο μηχανές λόγω της ίδιας αρχιτεκτονικής. CPU Clock cycles A Instructo ncount CPI A N 2.0 CPU Clock cycles B Instructo ncount CPI B N 1.2 CPU tme A CPU Clock cycles A Clock Cycle tme N 2.0 1ns 2.0 N ns CPU tme B CPU Clock cycles B Clock Cycle tme N 1.2 2 ns 2.4 N ns Performanc Performanc e e A B CPU CPU tme tme B A 2.4 2.0 N N ns ns 1.2 Απάντηση: Η απόδοση του Α είναι 1.2 φόρες η απόδοσης του Β.

Παράδειγμα 2 Μια μηχανή έχει Instructon Set το οποίο διαθέτει τρεις κατηγορίες εντολών (A, B και C) γλώσσας μηχανής. Κάθε κατηγορία έχει και διαφορετικό CPI (Cycles per Instructon). H κατηγορία Α έχει CPI=1, η Β έχει CPI=2 και η C έχει CPI=3. δηλαδή οι εντολές τις κατηγορίας Α εκτελούνται σε ένα κύκλο της κατηγορίας B σε δύο κύκλους και της κατηγορίας C σε τρεις κύκλους. Ο σχεδιαστής ενός compler μιας ανώτερης γλώσσας προγραμματισμού επιθυμεί να βρει την καλύτερη μέθοδο μετάφρασης την οποία και θα ενσωματώσει στον compler. Πρέπει να διαλέξει μεταξύ δύο μεθόδων: την Χ και την Υ. Καλύτερη θεωρείται η μέθοδος μετάφρασης η οποία παράγει για τον ίδιο πηγαίο κώδικα και για την ίδια CPU τον γρηγορότερο εκτελέσιμό κώδικά Παίρνει ένα τυχαίο πρόγραμμα και το μεταφράζει με τη μέθοδο μετάφρασης Χ και μετά με τη μέθοδο μετάφρασης Υ. Κάθε μέθοδος παράγει κώδικα ο οποίος έχει διαφορετικό nstructon mx το οποίο φαίνεται στον παρακάτω πίνακα.

Παράδειγμα 2 Πλήθος Εντολών Γλώσσας μηχανής (ΙC) Κατηγορία Α Κατηγορία Β Κατηγορία C Μέθοδος Χ 20 10 20 Μέθοδος Υ 40 10 10 Ποια μέθοδος θα προτιμηθεί?

Έλεγχος της μεθόδου Χ Επειδή IC A =20 IC B =10 IC C = 20 και CPI A =1 CPI B =2 CPI C =3 και CPU clock cycles CPU Clock cycles = 1*20 + 2*10 + 3*20 = 100 κύκλοι Instructon count = 20 + 10 + 20 = 50 εντολές N 1 IC CPI CPI ( average ) N 1 IC Instructo CPI n Count N 1 IC Instructo n Count CPI CPI (average) = 100/50 =2.0 κύκλοι/εντολή ή CPI (average) = 20/50 *1 + 10/50*2 + 20/50*3 = 0.4+0.4+1.2= 2.0 κύκλοι/εντολή

Έλεγχος της μεθόδου Y Επειδή IC A =40 IC B =10 IC C = 10 και CPI A =1 CPI B =2 CPI C =3 και CPU clock cycles CPU Clock cycles = 1*40 + 2*10 + 3*10 = 90 κύκλοι Instructon count = 40 + 10 + 10 = 60 εντολές N 1 IC CPI CPI ( average ) N 1 IC Instructo CPI n Count N 1 IC Instructo n Count CPI CPI (average) = 90/60 = 1.5 κύκλοι/εντολή ή CPI (average) = 40/60 *1 + 10/60*2 + 10/60*3 = 0.67+0.33+0.5 = 1.5 κύκλοι/εντολή

Συμπέρασμα Ο σχεδιαστής θα προτιμήσει την μέθοδο που δημιουργεί εκτελέσιμο κώδικα ο οποίος τελειώνει γρηγορότερα στην ίδια CPU. Δηλαδή αυτή που μας δίνει μικρότερο CPU χρόνο ή μεγαλύτερη απόδοση. CPU tme (Χ) / CPU tme (Υ) = CPU cycles(χ) * Clock tme / CPU cycles(υ) * Clock tme = CPU cycles(χ) / CPU cycles( Y) = 100/90 = 1.1 Άρα CPU tme(χ) = CPU tme(υ) * 1.1 ή Απόδοση (Υ) = Απόδοση (Χ) * 1.1 Άρα μέθοδος Υ είναι η καλύτερη γιατί παρουσιάζει μεγαλύτερη απόδοση CPU Παρατήρηση : To clock tme είναι ίδιο γιατί πρόκειται για την ίδια CPU

MIPS και MFLOPS MIPS = (Mega) Instructons Per Second Μειονέκτημα: δεν διακρίνει τις εντολές ανάλογα με το χρόνο εκτέλεσής τους MFLOPS = (Mega) FLoatng pont Operatons Per Second MFLOPS MIPS 10 6 Πλήθος 10 6 Πλήθος εντολών [ Χρόνος εκτέλεσης πράξεων κινητής [ Χρόνος εκτέλεσης Μειονεκτήματα: όμοια με το MIPS. Επίσης είναι χρήσιμο κυρίως για επιστημονικές εφαρμογές που χρησιμοπιούν πολλές πράξεις κινητής υποδιαστολής. ] υποδιαστολ ] ής

Μετροπρογράμματα (Benchmarks) Πραγματικά προγράμματα, π.χ. μεταφραστές, επεξεργαστές κειμένου, εργαλεία CAD, κλπ Πυρήνες προγραμμάτων, δηλαδή μικρά αποσπάσματα κώδικα που χρησιμοποιούνται συχνά από πολλά προγράμματα. Οι πυρήνες Lvermore Loops και Lnpack είναι τα πιο γνωστά παραδείγματα. Μικρά προγράμματα που όμως χρησιμοποιούντα συχνά, π.χ. Qucksort Συνθετικά benchmarks, π.χ. τα Whetstone και Dhrystone, τα οποία έχουν την ίδια φιλοσοφία με τους πυρήνες και προσπαθούν να προσομοιώσουν το μίγμα των εντολών που παρουσιάζονται σε μεγάλες εφαρμογές.

SPEC Benchmarks To Standard Performance Evaluaton Corporaton (SPEC) είναι ένας μη κερδοσκοπικός οργανισμός ο οποίος δημιουργεί, οργανώνει και συντηρεί πρότυπα benchmarks τα οποία εφαρμόζονται στους υπολογιστές προκείμενου να μετρήσουν την απόδοση τους Ο SPEC εκτός από την ανάπτυξη των λεγομένων benchmark sutes σχολιάζει και δημοσιοποιεί αποτελέσματα τα όποια στέλνονται σε αυτόν από τους κατασκευαστές http://www.spec.org/

Κατηγορίες SPEC Αξιολόγηση CPU: SPEC CPU2006 SPEC CPUv6 Hgh Performance Computng (MPI, OpenMP): SPEC MPI2007 SPEC OMP2001 SPECjbb2005 SPECjEnterprse2010 SPECjms2007 SPECjvm2008 Web Servers SPECweb2009 SPECweb2005

Κατηγορίες SPEC Άλλες κατηγορίες: Graphcs/Applcatons Java Clent/Server Mal Servers Network Fle System Power

Κατηγορίες SPEC Network Fle System SFS97_R1 (3.0) SFS97 (2.0) SFS93 (LADDIS) Web Servers WEB2005 WEB99 WEB99_SSL WEB 96

SPEC CPU2006: Integer benchmarks Όνομα Γλώσσα Περιγραφή 400.perlbench C PERL Programmng Language 401.bzp2 C Compresson 403.gcc C C Compler 429.mcf C Combnatoral Optmzaton 445.gobmk C Artfcal Intellgence: go 456.hmmer C Search Gene Sequence 458.sjeng C Artfcal Intellgence: chess 462.lbquantum C Physcs: Quantum Computng 464.h264ref C Vdeo Compresson 471.omnetpp C++ Dscrete Event Smulaton 473.astar C++ Path-fndng Algorthms 483.xalancbmk C++ XML Processng

SPEC CPU2006: Floatng Pont benchmarks Όνομα Γλώσσα Περιγραφή 410.bwaves Fortran Flud Dynamcs 416.gamess Fortran Quantum Chemstry 433.mlc C Physcs: Quantum Chromodynamcs 434.zeusmp Fortran Physcs / CFD 435.gromacs C/Fortran Bochemstry/Molecular Dynamcs 436.cactusADM C/Fortran Physcs / General Relatvty 437.lesle3d Fortran Flud Dynamcs 444.namd C++ Bology / Molecular Dynamcs 447.dealII C++ Fnte Element Analyss 450.soplex C++ Lnear Programmng, Optmzaton 453.povray C++ Image Ray-tracng 454.calculx C/Fortran Structural Mechancs 459.GemsFDTD Fortran Computatonal Electromagnetcs 465.tonto Fortran Quantum Chemstry 470.lbm C Flud Dynamcs 481.wrf C/Fortran Weather Predcton 482.sphnx3 C Speech recognton

Αξιόπιστες μέθοδοι μέτρησης Dhrystone και Whetstone Benchmarks Dhrystone: Προτάθηκε το 1984 από τον R.P. Wecker. Είναι ένα benchmark program γραμμένο σε C, Pascal ή Java το οποίο αξιολογεί ένα σύστημα με βάση τη δυνατότητα του στους ακέραιους υπολογισμούς Το πρόγραμμα εκτελεί μόνο ακέραιες πράξεις και δεν έχει καθόλου λειτουργίες εισόδου / εξόδου (I / O) ούτε κλήσεις προς το λειτουργικό σύστημα Dhrystones per second είναι η αντίστοιχη μονάδα μέτρησης και εκφράζει το πλήθος των επαναλήψεων του προγράμματος σε ένα δευτερόλεπτο. Το αντίστοιχο πρόγραμμα για τις πράξεις κινητής υποδιαστολής ονομάζεται Whetstone

SSoftware Sandra Lte 2011 SP5 http://www.flehppo.com/download_sandra_lte/

Επίδοση δικτύου

Ο νόμος του Amdahl Ένας μύθος: «Αν βάλω Ν επεξεργαστές να εκτελούν παράλληλα ένα πρόγραμμα τότε αυτό θα εκτελεστεί Ν φορές πιο γρήγορα» Δεν ισχύει διότι: 1. Έχουμε κόστος επικοινωνίας 2. Ο αλγόριθμος σπάνια τεμαχίζεται σε Ν τελείως ίσα κομμάτια 3. Σε κάθε αλγόριθμο υπάρχει ένα σειριακό κομμάτι που δεν παραλληλίζεται (Νόμος του Amdahl)

Ο νόμος του Amdahl (2) Ακόμα και αν αγνοήσουμε το χρόνο επικοινωνίας και αν υποθέσουμε ότι τεμαχίσαμε τον κώδικα σε απολύτως ίσα κομμάτια η επιτάχυνση που θα επιτύχουμε δεν είναι μεγαλύτερη από 1/s όπου s είναι το ποσοστό του αλγορίθμου που δεν παραλληλίζεται, δηλαδή το ποσοστό του σειριακού τμήματος Επιτάχυνση < 1/s Έτσι αν ο αλγόριθμος έχει s = 0.1 (δηλαδή s = 10%) τότε Επιτάχυνση < 10, όσους επεξεργαστές N και αν χρησιμοποιήσουμε για την παράλληλη εκτέλεση.

Ο νόμος του Amdahl (3) Πράγματι, έστω ότι ποσοστό s του αλγορίθμου δεν παραλληλίζεται, τότε αν χρησιμοποιήσουμε Ν επεξεργαστές, ακόμη και αν υποθέσουμε ότι το υπόλοιπο (1-s) παραλληλίζεται τέλεια τότε: Χρόνος παράλληλης εκτέλεσης = T παρ = st+(1 s)t/n οπότε Επιτάχυνση = Τ/Τπαρ = Τ/(sT+(1 s)t/n) = 1/(s+(1 s)/n)

Ο νόμος του Amdahl (4) Βλέπουμε ότι και όταν Ν Επιτάχυνση < 1/s Επιτάχυνση 1/s Συνεπώς το άνω όριο της επιτάχυνσης είναι το αντίστροφο του σειριακού τμήματος του προγράμματος, όσους επεξεργαστές κι αν διαθέτουμε. Πχ. Αν το 20% του προγράμματος είναι σειριακό, τότε s=0.2 και Επιτάχυνση < 1/0.2 = 5.

Νόμος του Amdahl (Παράδειγμα 1) Επιθυμούμε να βελτιώσουμε την επίδοση ενός Web server και αποφασίσαμε να αντικαταστήσουμε την CPU με 10 παράλληλους επεξεργαστές. Οι μετρήσεις μας έδειξαν ότι το 70% ενός μέσου προγραμματος παραλληλίζεται τέλεια ενώ το υπόλοιπο 30% είναι I/O και δεν παραλληλίζεται. Τι επιτάχυνση πετυχαίνουμε? Απάντηση: Έχουμε N=10 επεξεργαστές. Το σειριακό κομμάτι που δεν παραλληλίζεται είναι s=0.3 (=30%). Συνεπώς Επιτάχυνση = 1/(s+(1 s)/n) = 1/(0.3+0.7/10) = 2.703 Βλέπουμε ότι ενώ χρησιμοποιήσαμε 10 επεξεργαστές η επιτάχυνση που πετυχαίνουμε είναι μόλις 2.7 (σαφώς μικρότερη του 10...)

Νόμος του Amdahl (Παράδειγμα 2) Επιθυμούμε να τριπλασιάσουμε την επίδοση ενός Web server και αποφασίσαμε να αντικαταστήσουμε την CPU με N παράλληλους επεξεργαστές. Οι μετρήσεις μας έδειξαν ότι το 80% ενός μέσου προγράμματος παραλληλίζεται τέλεια ενώ το υπόλοιπο 20% είναι I/O και δεν παραλληλίζεται. Πόσους επεξεργαστές χρειαζόμαστε? Απάντηση: Το s = 0.2 και θέλουμε Επιτάχυνση = 3 Επιτάχυνση = 1/(s + (1 s)/n) 3 = 1 / (0.2 + 0.8/N) (0.2 + 0.8/N) = 1 / 3 0.8/Ν = 0.333 0.2 Ν = 0.8 / 0.1333 Ν = 6