Κεφάλαιο 1 | Ενότητα1 | Ερωτήσεις επισκόπησης | Προηγούμενο |Επόμενο| Λεξικό όρων

Πλάνες και Παγίδες

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

     MIPS
(Million Instructions Per Second-Εκατομμύρια εντολών ανά δευτερόλεπτο)

ΠΛΑΝΗ : Το MIPS είναι ένα ακριβές μέτρο σύγκρισης απόδοσης μεταξύ υπολογιστών.

Όπου MIPS (εκατομμύρια εντολών ανά δευτερόλεπτο) δίνεται από τον τύπο(1.10) :

(Τύπος 1.10)

Σχετίζοντας το MIPS με το χρόνο εκτέλεσης παίρνουμε τον τύπο (1.10):

(Τύπος 1.11)

Μιας και το MIPS είναι ο ρυθμός λειτουργιών ανά μονάδα χρόνου συμπεραίνουμε ότι οι ταχύτεροι υπολογιστές έχουν υψηλότερο MIPS. Το βασικό πλεονέκτημα του MIPS είναι ότι είναι εύκολο στην κατανόηση ειδικά από έναν μη ειδικό, το πρόβλημα όμως που προκύπτει χρησιμοποιώντας το ως μέτρο σύγκρισης της απόδοσης είναι:

     MFLOPS
(Million Floating Point Operations Per Second-Εκατομμύρια λειτουργίες κινητής υποδιαστολής ανά δευτερόλεπτο)

ΠΛΑΝΗ : Το MFLOPS είναι ένα ακριβές και χρήσιμο μέτρο σύγκρισης της απόδοσης

Όπως το MIPS έτσι και το MFLOPS είναι μια δημοφιλής εναλλακτική μέθοδος σύγκρισης της απόδοσης αντί του χρόνου εκτέλεσης. Όπου MFLOPS (εκατομμύρια πράξεων κινητής υποδιαστολής ανά δευτερόλεπτο) είναι (τύπος 1.12):

(Τύπος 1.12)

Όπως διαφαίνεται στον τύπο (1.12), η κατάταξη σε MFLOPS εξαρτάται τόσο από την μηχανή όσο και από το ίδιο το πρόγραμμα, το γεγονός όμως ότι χρησιμοποιείται για μέτρηση επίδοσης κινητής υποδιαστολής το κάνει μη εφαρμόσιμο εκτός του πεδίου αυτού. Χαρακτηριστικό παράδειγμα είναι αυτό των μεταγλωττιστών όπου έχουν μηδενικό MFLOPS όσο γρήγορη και αν είναι η μηχανή κι αυτό γιατί σπάνια χρησιμοποιούν αριθμητική κινητής υποδιαστολής.

Βασισμένο σε πράξεις και όχι σε εντολές το MFLOPS υποτίθεται ότι αποτελεί ένα αντικειμενικό μέτρο σύγκρισης διαφορετικών μηχανών, δυστυχώς όμως δεν είναι αξιόπιστο γιατί το πλήθος των πράξεων κινητής υποδιαστολής διαφέρει από μηχανή σε μηχανή. Χαρακτηριστικό παράδειγμα ο Cray C90, ο οποίος δεν έχει την πράξη της διαίρεσης ενώ αντίθετα ο Intel Pentium έχει τις πράξεις της διαίρεσης, του ημιτόνου, του συνημιτόνου κ.α. Οι μετρήσεις με MFLOPS μεταβάλλονται και από πρόγραμμα σε πρόγραμμα ανάλογα με το είδος των πράξεων κινητής υποδιαστολής που αυτό χρησιμοποιεί. Για παράδειγμα ένα πρόγραμμα με 100% προσθέσεις κινητής υποδιαστολής δίνει καλύτερες μετρήσεις από ένα άλλο με 100% διαιρέσεις κινητής υποδιαστολής. Επιλογικά λοιπόν θα μπορούσαμε να πούμε ότι η μέτρηση του MFLOPS για ένα μόνο πρόγραμμα δεν μπορεί να γενικευτεί έτσι ώστε να αποτελέσει καθολικό μέτρο της απόδοσης ενός Η/Υ.

     Τα σύνθετα προγράμματα δοκιμής

ΠΛΑΝΗ : Τα σύνθετα προγράμματα δοκιμής προβλέπουν την απόδοση πραγματικών προγραμμάτων.

Τα περισσότερο γνωστά παραδείγματα τέτοιων προγραμμάτων δοκιμής είναι το Dhrystone και το Whetstone. Δεν είναι αληθινά προγράμματα και κατά συνέπεια δεν αντικατοπτρίζουν τη συμπεριφορά των προγραμμάτων για αστάθμιτους παράγοντες. Η βελτιστοποίηση μεταγλωττιστή και υλικού μπορεί να διογκώσει τεχνητά την απόδοση των προγραμμάτων δοκιμής πράγμα που δεν ισχύει με τα πραγματικά. Η άλλη πλευρά του νομίσματος είναι ότι επειδή τα προγράμματα δοκιμής δεν είναι πραγματικά προγράμματα, ο σχεδιαστής δεν ανταμείβεται για τις βελτιστοποιήσεις που κάνει.

     Τα προγράμματα δοκιμής

ΠΛΑΝΗ :Τα προγράμματα δοκιμής απόδοσης παραμένουν απεριόριστα έγκυρα.

Αρκετοί παράγοντες επηρεάζουν τη δυνατότητα ενός προγράμματος δοκιμής απόδοσης να προβλέψει την πραγματική απόδοση, πολλοί απ΄τους οποίους είναι χρονικά μεταβαλλόμενοι. Ο πιο αξιόλογος παράγοντας που επηρεάζει την χρησιμότητα ενός προγράμματος δοκιμής, είναι η ικανότητά του να αντιστέκεται στο "cracking", γνωστή και ως δοκιμασία μηχανικής απόδοσης. Μόλις ένα πρόγραμμα δοκιμής τυποποιηθεί και δοθεί στην αγορά, ασκούνται τρομερές πιέσεις να γίνει καλύτερη η απόδοση με αντικειμενικές βελτιώσεις ή με τη διερμηνεία των κανόνων για την εκτέλεση ενός προγράμματος δοκιμής απόδοσης.

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

Οι αυξανόμενες βελτιώσεις στην τεχνολογία μπορούν επίσης να αλλάξουν το ενεργό πεδίο μέτρησης για ένα πρόγραμμα δοκιμής. Ας θεωρήσουμε το πρόγραμμα δοκιμής gcc, το οποίο θεωρείται ένα από τα πιο ρεαλιστικά και ενδιαφέροντα προγράμματα δοκιμής του SPEC92. Η επίδοσή του είναι ένας συνδυασμός χρόνου ΚΜΕ και επεξεργασίας σε πραγματικό χρόνο. Η είσοδος παραμένει σταθερή και η επεξεργασία σε πραγματικό χρόνο είναι περιορισμένη από κάποιους παράγοντες, συμπεριλαμβανομένου του χρόνου πρόσβασης στον δίσκο (ο οποίος βελτιώνεται αργά). Αρα ένα αυξανόμενο ποσοστό του χρόνου εκτέλεσης είναι ένας μεγαλύτερος χρόνος συστήματος από το χρόνο της ΚΜΕ. Απ΄την άλλη μπορεί να αλλάξει η είσοδος επιβαρύνοντας τον χρόνο, όταν πρέπει να μεταγλωττιστούν μεγαλύτερα προγράμματα. Στην πραγματικότητα, η είσοδος του SPEC92 μεταβλήθηκε ώστε να περιλαμβάνει τέσσερα αντίγραφα από κάθε αρχείο εισόδου το οποίο χρησιμοποιούταν στο SPEC89. Ενώ αυτό αυξάνει το χρόνο εκτέλεσης, μπορεί να απεικονίζει ή όχι τον τρόπο με τον οποίο χρησιμοποιούνται οι μεταγλωττιστές. Μετά από μια μεγάλη χρονική περίοδο, αυτές οι αλλαγές μπορούν να αχρηστέψουν και το καλύτερο πρόγραμμα δοκιμής απόδοσης.

     Η κορυφαία και μέση απόδοση

ΠΛΑΝΗ : Η κορυφαία απόδοση ακολουθεί τα ίχνη της μέσης απόδοσης.

Μία ερμηνεία του όρου "κορυφαία απόδοση" είναι εγγυημένα η μεγαλύτερη τιμή για την απόδοση που ωστόσο δεν πρόκειται να την ξεπεράσει το σύστημα. Το χάσμα μεταξύ της κορυφαίας απόδοσης και της μέσης απόδοσης (αυτή που παρατηρείται πειραματικά) είναι τυπικά ένας παράγοντας του 10 ή περισσότερο στους υπερ-υπολογιστές. Μιας και η διαφορά είναι τόσο μεγάλη, η κορυφαία απόδοση δεν είναι χρήσιμη στην πρόβλεψη της μέσης απόδοσης εκτός αν η εργασία που πρέπει να γίνει αποτελείται από μικρά προγράμματα τα οποία συνήθως λειτουργούν κοντά στην κορυφή.

Όσο η χρήση της κορυφαίας απόδοσης ήταν υπερβολική στους υπερ-υπολογιστές, η χρήση της στην επιχείρηση των μικροεπεξεργαστών είναι το ίδιο παραπλανητική.