Ζητήµατα Απόδοσης. Ιεραρχία Μνήµης. Αναγκαιότητα για Ιεραρχία Μνήµης. Processor-DRAM Gap (latency) Ε-85: Ειδικά Θέµατα Λογισµικού

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

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

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

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

Θέματα Μεταγλωττιστών

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

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

Ασκήσεις Caches

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ,

Ασκήσεις Caches

Ασκήσεις Caches. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Τεχνολογίες Κύριας Μνήμης

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

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

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

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

Ιεραρχίες µνήµης. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #02

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

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

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

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

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

Processor-Memory (DRAM) ιαφορά επίδοσης

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

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

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

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

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

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης

Ε-85: Ειδικά Θέµατα Λογισµικού

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

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 12 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Η ιεραρχία της μνήμης

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

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

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

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

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

Advanced Data Indexing

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

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

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

(advanced_ca, ακ. έτος Cache Optimisations

Είδη των Cache Misses: 3C s

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Cache Optimizations

Processor-Memory (DRAM) ιαφορά επίδοσης

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

Εικονική Μνήμη (Virtual Μemory)

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

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

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

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

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

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

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

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

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

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

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

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

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

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

Ο Σ ο β ι ε τ ι κ ό ς Κ ρ υ π τ α λ γ ό ρ ι θ μ ο ς G O S T

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

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

Cach O p i timisati tions

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

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

Αρχιτεκτονική-ΙI Ενότητα 4 :

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

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

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

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

Κύρια & Περιφερειακή Μνήµη

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9


3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

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

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

Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή

Processor-Memory (DRAM) Διαφορά επίδοσης

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

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9

Αρχιτεκτονική Υπολογιστών. ηµήτρης Γκιζόπουλος Καθηγητής

Εικονική Μνήμη (Virtual Μemory)

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

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

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

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

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

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

Transcript:

Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Ιεραρχία Μνήµης και Τεχνικές Βελτιστοποίησης» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) Ζητήµατα Απόδοσης Οισύγχρονοι υπολογιστές χρησιµοποιούν µία ποικιλία τεχνικών για καλύτερη απόδοση caches µικρού µεγέθους γρήγορες µνήµες όπου τα δεδοµένα αποθηκεύονται µε την ελπίδα να επαναχρησιµοποιηθούν αυτά ή γειτονικά τους δεδοµένα παραλληλισµός οι επεξεργαστές µπορούν να έχουν πολλαπλές λειτουργικές µονάδες που εργάζονται παράλληλα pipelining ένα είδος παραλληλισµού, όπως µία γραµµή παραγωγής σε εργοστάσιο Θεωρητικά οι compilersµπορούν να βελτιστοποιήσουν ένα πρόγραµµα, όχι όµως και στην πράξη E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 1 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 2 Ιεραρχία Μνήµης Στασύγχρονα υπολογιστικά συστήµατα τα ίδια δεδοµένα είναι αποθηκευµένα σε διάφορες συσκευές κατά την επεξεργασία Οι συσκευές αποθήκευσης µπορούν να περιγραφούν και να ταξινοµηθούν µε βάση την ταχύτητα και την απόσταση τους από τον επεξεργαστή Υπάρχει µία ιεραρχία αντικειµένων µνήµης Ο προγραµµατισµός σε µία µηχανή µε ιεραρχία µνήµης απαιτεί βελτιστοποίηση για αυτή τη δοµή µνήµης Αναγκαιότητα για Ιεραρχία Μνήµης Οεπεξεργαστής (CPU) λειτουργεί σε πολύ ταχύτερο ρυθµό από ότι η µνήµη µπορεί να παραδίδει δεδοµένα. Η διαφορά αυτή µεγάλωσε αρκετά τα τελευταία χρόνια Είναι δυνατή η δηµιουργία συσκευών µνήµης που να λειτουργούν στην ταχύτητα του επεξεργαστή, αλλά µε µικρή αποθηκευτική χωρητικότητα και πολύ µεγαλύτερο κόστος Η ιεραρχία µνήµης είναι η µηχανική βελτιστοποίηση για το πρόβληµα µέγεθος έναντι ταχύτητας Βασικές ιδιότητες των περισσοτέρων αλγορίθµων, π.χ. τοπικότητα των αναφορών, προάγουν τη χρήση της ιεραρχίας µνήµης E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 3 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 4 Processor-DRAM Gap (latency) Ιεραρχία Μνήµης στοιχείο γραµµή σελίδα Απόδοση 1000 100 10 1 1980 1981 Introduction of RISC architecture 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 DRAM 1999 2000 CPU µproc 60%/yr. Processor-Memory Performance Gap: (50% / year) DRAM 7%/yr. CPU Data Instructions Addresses Register Cache RAM Virtual Memory Memory memory memory Ταχύτητα Χωρητικότητα processor side system side Έτος E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 5 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 6 1

Ιεραρχία Μνήµης Στοιχεία για το σύστηµα Origin2000 Cache Lines Κανονικά περισσότερα από ένα στοιχεία µεταφέρονται κάθε φορά x=a[0] memory processor Register=a[0] 1st level cache 2nd level cache registers control on-chip cache Second level cache (SRAM) Main memory (DRAM) Secondary storage (Disk) Tertiary storage (Disk/Tape) Ταχύτητα (ns): ~5 ~75 ~500 ~10 ms ~10 sec Χωρητικότητα : ~KB ~MBs ~GBs ~TBs 100 TBs Processor Η µονάδα µεταφοράς καλείται cache line Μια cache line περιλαµβάνει διαδοχικές θέσεις µνήµης Το µέγεθος µίας cache line εξαρτάται από την αρχιτεκτονική Παράδειγµα για Origin2000: 32 bytes 1 st level cache 128 bytes 2 nd level cache E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 7 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 8 Ορθότητα της Ιεραρχίας Μνήµης Κάποια δεδοµένα είναι αποθηκευµένα σε πολλά µέρη: δεν υπάρχει πρόβληµα µε read-only δεδοµένα (replication) όταν όµως τροποποιούνται απαιτείται ενηµέρωση τους σε όλα τα µέρη (cache µνήµη δίσκος) Η χρήση αυτών των µηχανισµών σηµαίνει κόστος στην απόδοση Για αποδοτική χρήση της ιεραρχίας µνήµης τα προγράµµατα πρέπει να εκµεταλλεύονται την τοπικότητα των αναφορών Τοπικότητα των Αναφορών Χρονική τοπικότητα (temporal locality): Τα αντικείµενα (εντολές και δεδοµένα) που χρησιµοποιήθηκαν πρόσφατα είναι πιθανόν να επαναχρησιµοποιηθούν στο κοντινό µέλλον: επαναληπτικοί βρόχοι, συναρτήσεις, τοπικές µεταβλητές Χωρική τοπικότητα (spatial locality): τα προγράµµατα προσπελαύνουν δεδοµένα που είναι κοντά µεταξύ τους: πράξεις σε πίνακες και διανύσµατα το µέγεθος της cache line σχετίζεται άµεσα µε την spatial locality Ακολουθιακή τοπικότητα (sequential locality): ο επεξεργαστής εκτελεί εντολές σύµφωνα µε τη διάταξη που ορίζει το πρόγραµµα: ο λόγος εντολές διακλάδωσης / υπόλοιπες εντολές είναι συνήθως 1 προς 5 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 9 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 10 Τεχνικές Βελτιστοποίησης Οιτεχνικές που θα συζητηθούν βασίζονται στους βρόχους και είναι οι ακόλουθες: Εναλλαγή (Interchange) Ξετύλιγµα (Unrolling) Σύµπτυξη (Fusion) ιάσπαση (Fission) Αποθήκευση στη Μνήµη Ηδιάταξη αποθήκευσης εξαρτάται από την γλώσσα προγραµµατισµού: C κατά-γραµµές Fortran κατά-στήλες Η προσπέλαση των στοιχείων σύµφωνα µε τη διάταξή τους βελτιώνει την απόδοση για µεγέθη προβληµάτων που δε χωράνε στην cache (spatial locality) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 11 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 12 2

Εναλλαγή Βρόγχων Loop Interchange Βασική Ιδέα: Σε ένα πολλαπλό βρόχο, εξέταση και πιθανή αλλαγή της σειράς των βρόχων Πλεονεκτήµατα: Καλύτερα διάταξη των προσπελάσεων στη µνήµη (οδηγεί σε καλύτερη χρήση της cache και της µνήµης) Απαλοιφή των εξαρτήσεων των δεδοµένων (αύξηση των δυνατοτήτων για βέλτιστη χρήση επεξεργαστή και παραλληλοποίηση) Μειονέκτηµα: Μπορεί ένας µικρός βρόχος να γίνει εσωτερικός Εναλλαγή Βρόχων Παράδειγµα 1 Αρχικά J=1,M C(I,J)=A(I,J)+B(I,J) ιάταξη προσπελάσεων διάταξη αποθήκευσης Μετά την εναλλαγή J=1,M I=1,N C(I,J)=A(I,J)+B(I,J) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 13 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 14 Εναλλαγή Βρόχων στην C Στη C, η περίπτωση είναι ακριβώς η αντίθετη Εναλλαγή Βρόχων Παράδειγµα 2 εναλλαγή C[i][j] = A[i][j] +B[i][j]; C[i][j] = A[i][j] +B[i][j]; αντιστροφή δεικτών C[j][i] = A[j][i] +B[j][i]; Το κέρδος στην απόδοση είναι το ίδιο σε αυτή την περίπτωση Συχνά, στην πράξη, η εναλλαγή πραγµατοποιείται πολύ ευκολότερα από την αντιστροφή των δεικτών COMMON / SHARE /B (M,N).. SUBROUTINE _WORK (N,M,A) REAL A(N,M) J=1,M I=1,N A(I,J) = A(I,J) + B(J,I) Αντιστροφή δεικτών για Β; Η εναλλαγή θα είναι καλή για το Β αλλά κακή για το Α E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 15 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 16 Ξετύλιγµα Βρόχων Loop Unrolling: ταυτόχρονη εκτέλεση πολλαπλών επαναλήψεων ενός βρόγχου Ξετύλιγµα Εξωτερικού Βρόχου I=1,N,1...(I)... I=1,N,unroll...(I)......(I+1)......(I+2)......(I+unroll-1)... J=1,N A(I)=A(I)+B(I,J)*C(J) Οβαθµός του ξετυλίγµατος πρέπει να ταιριάζει µε το µέγεθος της cache line Πλεονεκτήµατα της τεχνικής: Περισσότερες ευκαιρίες για superscalar κώδικα (pipeline) Αυξηµένη επαναχρησιµοποίηση των δεδοµένων Αξιοποίηση - Εκµετάλλευση των cache lines Μείωση του loop overhead (όχι τόσο σηµαντικό πλεονέκτηµα) Μειονεκτήµατα: Απαίτηση κώδικα για την εξασφάλιση του ίδιου αριθµού επαναλήψεων (do i=1,n-mod(n,unroll) & do i=n-mod (N, unroll)+1,n),4 J=1,N A(I) =A(I) +B(I,J)*C(J) A(I+1)=A(I+1)+B(I+1,J)*C(J) A(I+2)=A(I+2)+B(I+2,J)*C(J) A(I+3)=A(I+3)+B(I+3,J)*C(J) Με τον τρόπο αυτό οι τιµές του Β που βρίσκονται στην cache χρησιµοποιούνται πλήρως E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 17 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 18 3

Σύµπτυξη και ιάσπαση Βρόχων Loop Fusion and Fission Fusion: Ένωση πολλαπλών βρόχων σε έναν Fission: ιαχωρισµός ενός βρόχου σε πολλαπλούς Σύµπτυξη Βρόχων Παράδειγµα 1 Κ=1,N C(Κ)=B(Κ)+D(Κ) Ο Β δεν χρειάζεται να φορτωθεί ξανά Παράλληλη εκτέλεση των δύο πράξεων Μικρότερο loop overhead Μειονεκτήµατα: Για µεγάλο Ν, µόνο το τελευταίο µέρος του Β θα παραµείνει στη cache όταν ο βρόγχος τερµατίσει Ο πίνακας Β() πρέπει να φορτωθεί ξανά C(Ι)=B(Ι)+D(Ι) Συνολικά 4 πίνακες ανταγωνίζονται για χώρο στην cache Απαίτηση για περισσότερους καταχωρητές E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 19 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 20 ιάσπαση Βρόχων Παράδειγµα 1 ιάσπαση Βρόχων Παράδειγµα 2 D(Ι)=D(Ι-1)+C(Ι) D(Ι)=D(Ι-1)+C(Ι) Ένδειξη για συγχώνευση: ανεξάρτητες πράξεις σε έναν απλό βρόχο Πλεονέκτηµα: Αποδοτικότερη δροµολόγηση του πρώτου βρόχου και πιθανή παραλληλοποίηση του Μειονεκτήµατα: Λιγότερες δυνατότητες για superscalar εκτέλεση ηµιουργία πρόσθετου βρόχου Α(Ι) = EXP(-L*B(I)) J = 1,N C(Ι,J)=C(Ι,J)+A(I)*D(J) Αποδοτικότερη δροµολόγηση Βέλτιστη προσπέλαση µνήµης χρονοβόρα πράξη κακή προσπέλαση µνήµης A(Ι)= EXP(-L*B(Ι)) J=1,N I=1,N C(Ι,J)=C(I,J)+A(Ι)*D(J) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 21 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 22 Πολλαπλασιασµός Πίνακα x ιάνυσµα y = y + A*x for i = 1:n for j = 1:n y(i) = y(i) + A(i, j)*x(j) A(i,:) Πολλαπλασιασµός Πίνακας x ιάνυσµα {µετάφερε το x(1:n) στη γρήγορη µνήµη} {µετάφερε το y(1:n) στη γρήγορη µνήµη} for i = 1:n {µετάφερε τη γραµµή i του A στην γρήγορη µνήµη} for j = 1:n y(i) = y(i) + A(i,j)*x(j) {γράψε το y(1:n) πίσω στην αργή µνήµη} y(i) = + * y(i) x(:) Αριθµός αναφορών στην αργή µνήµη = 3*n + n 2 Αριθµός αριθµητικών πράξεων = 2*n 2 Η απόδοση της συνολικής πράξης περιορίζεται από την ταχύτητα της αργής µνήµης E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 23 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 24 4

Παρατηρήσεις Ηπραγµατική απόδοση ενός απλού προγράµµατος µπορεί να είναι µία περίπλοκη συνάρτηση της αρχιτεκτονικής Μικρές αλλαγές στη δοµή του προγράµµατος µπορούν να αλλάξουν σηµαντικά την απόδοσή του Για τη δηµιουργία γρήγορων προγραµµάτων πρέπει να ληφθεί υπόψη η υποκείµενη αρχιτεκτονική E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 25 5