Εφαρμογή σε υπολογισμούς αραιών πινάκων. Αντώνιος - Κορνήλιος Κούρτης 1 / 43. Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ

Σχετικά έγγραφα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Αντώνιος - Κορνήλιος Ε. Κούρτης

Αντώνιος - Κορνήλιος Κούρτης

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

Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό

Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό. Ζητήµατα Μεγάλης-Κλίµακας Υλοποίησης του PageRank. Αρχιτεκτονική Μηχανής Αναζήτησης

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

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

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

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

Εφαρµογές µε ανάγκες για υψηλές επιδόσεις Αξιολόγηση επίδοσης Παραλληλοποίηση εφαρµογών

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

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

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

Επιστηµονικός Υπολογισµός Ι

Παράλληλος προγραμματισμός: Σχεδίαση παράλληλων προγραμμάτων

Σποραδικές Μήτρες (Sparse Matrices) Αθανάσιος Μυγδαλ ας ΑΠΘ AΠΘ. 17 Μαρτίου 2010 c Α.Μ.

QuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009)

Επιστηµονικός Υπολογισµός Ι

Βελτιστοποίηση του Υπολογιστικού Πυρήνα Πολλαπλασιασμού Αραιού Πίνακα με Διάνυσμα σε Σύγχρονες Πολυπύρηνες Αρχιτεκτονικές Υπολογιστών

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

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

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

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

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

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

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

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

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

Παράλληλη Επεξεργασία

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

DIP_06 Συμπίεση εικόνας - JPEG. ΤΕΙ Κρήτης

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

FX10 SIMD SIMD. [3] Dekker [4] IEEE754. a.lo. (SpMV Sparse matrix and vector product) IEEE754 IEEE754 [5] Double-Double Knuth FMA FMA FX10 FMA SIMD

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

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

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

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

Ασκήσεις Caches

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

Εισαγωγή στους Υπολογιστές

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

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

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

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ασκήσεις Caches

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1

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

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

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

Μαθηµατικοί Υπολογισµοί στην R

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

Συμπίεση Δεδομένων

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

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

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

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

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


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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΙΝΑΚΕΣ. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

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

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

Παρουσίαση 2 ης Άσκησης:

Τεράστιες ανάγκες σε αποθηκευτικό χώρο

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ

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

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

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

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

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

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

Γραφικά Υπολογιστών: Βασικά Μαθηματικά

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΙΝΑΚΕΣ. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Ανάκληση Πληροφορίας. Διδάσκων Δημήτριος Κατσαρός

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 3: Περιγραφή αριθμητικών μεθόδων (συνέχεια)

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

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Transcript:

Ανάπτυξη Λογισμικού και Τεχνικών Συμπίεσης Δεδομένων για τη Βελτίωση της Επίδοσης Υπολογιστικών Εφαρμογών σε Παράλληλες Αρχιτεκτονικές Μοιραζόμενης Μνήμης Εφαρμογή σε υπολογισμούς αραιών πινάκων Αντώνιος - Κορνήλιος Κούρτης Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ 1 / 43

Σκελετός Παράλληλα Συστήματα Μοιραζόμενης Μνήμης Συμπίεση για βελτίωση επίδοσης εφαρμογών με έντονες προσβάσεις μνήμης σε ΠΣΜΜ Αραιοί πίνακες και SpMxV CSR-DU CSR-VI CSX 2 / 43

Σκελετός Παράλληλα Συστήματα Μοιραζόμενης Μνήμης Υπόβαθρο Συμπίεση για βελτίωση επίδοσης εφαρμογών με έντονες προσβάσεις μνήμης σε ΠΣΜΜ Αραιοί πίνακες και SpMxV CSR-DU CSR-VI Συμβολή CSX 2 / 43

Πολυπύρηνοι επεξεργαστές Η εποχή των πολυπύρηνων επεξεργαστών (multicore era) (διέξοδος των αρχιτεκτόνων στο φράγμα της σειριακής επίδοσης) ( ) απαιτείται αλλαγή στο λογισμικό A τρόπος προγραμματισμού (εξετάζουμε εφαρμογές χωρίς κόστος παραλληλοποίησης) επίδοση core L1 core L1 core L1 core L1 L2 L2 main memory (or off-chip cache) 3 / 43

Κλάσεις εφαρμογών (ως προς την επίδοσή τους σε ένα σύστημα μοιραζόμενης μνήμης) core core core core L1 L1 L1 L1 L2 L2 main memory (or off-chip cache) 4 / 43

Κλάσεις εφαρμογών (ως προς την επίδοσή τους σε ένα σύστημα μοιραζόμενης μνήμης) Καλή συμπεριφορά χρονική τοπικότητα αναφορών χωρίς εξαρτήσεις core core core core L1 L1 L1 L1 L2 L2 main memory (or off-chip cache) 4 / 43

Κλάσεις εφαρμογών (ως προς την επίδοσή τους σε ένα σύστημα μοιραζόμενης μνήμης) Εφαρμογές με έντονες προσβάσεις μνήμης έλλειψη χρονικής τοπικότητας αναφορών υψηλός λόγος προσβάσεων μνήμης προς πράξεις υπολογισμών περιορισμένη επεκτασιμότητα λόγω κορεσμού core core core core L1 L1 L1 L1 L2 L2 main memory (or off-chip cache) 4 / 43

Προτεινόμενη αντιμετώπιση: Συμπίεση ανταλλαγή κύκλων μνήμης για κύκλους υπολογισμών c c m c m c c 5 / 43

Προτεινόμενη αντιμετώπιση: Συμπίεση ανταλλαγή κύκλων μνήμης για κύκλους υπολογισμών c c m c m c c c m κόστος αποσυμπίεσης 5 / 43

Προτεινόμενη αντιμετώπιση: Συμπίεση ανταλλαγή κύκλων μνήμης για κύκλους υπολογισμών c c m c m c c c κόστος αποσυμπίεσης m c c c m c προϋπόθεση: υπερκέραση κόστους αποσυμπίεσης 5 / 43

Ανακεφαλαίωση Πρόβλημα: } Έντονες προσβάσεις στη μνήμη Περιορισμένη επεκτασιμότητα Πολυπύρηνοι επεξεργαστές Προσέγγιση: { } προσβάσεων μνήμης Συμπίεση Βελτίωση επίδοσης υπολογισμών Εφαρμογή: Υπολογισμοί αραιών πινάκων πυρήνας SpMxV 6 / 43

Αραιοί πίνακες Μεγάλος αριθμός μηδενικών Εφαρμογές (επιστημονικές): μερικές διαφορικές εξισώσεις γράφοι γραμμικός προγραμματισμός Αποδοτική αναπαράσταση (μέγεθος και υπολογισμοί) μη-μηδενικές αριθμητικές τιμές δεδομένα δομής πίνακα Καθιερωμένα σχήματα αποθήκευσης: COO: πρώτη προσέγγιση CSR: βασική προσέγγιση (base-line) BCSR: εξελιγμένη προσέγγιση (state-of-the-art) 7 / 43

Σχήμα COO COOrdinate format Απoθήκευση μη-μηδενικών τιμών Συντεταγμένες για κάθε μη-μηδενική τιμή 54 11 0 0 0 0 0 63 0 77 0 88 0 0 11 0 0 0 0 0 29 0 37 29 90 0 0 11 45 0 11 0 29 37 0 11 row_ind: 0 0 1 1 1 2 3 3 3 4 4 4 5 5 5 5 col_ind: 0 1 1 3 5 2 2 4 5 0 3 4 0 2 3 5 values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 nnz 8 / 43

Σχήμα COO COOrdinate format Απoθήκευση μη-μηδενικών τιμών Συντεταγμένες για κάθε μη-μηδενική τιμή 54 11 0 0 0 0 0 63 0 77 0 88 0 0 11 0 0 0 0 0 29 0 37 29 90 0 0 11 45 0 11 0 29 37 0 11 row_ind: 0 0 1 1 1 2 3 3 3 4 4 4 5 5 5 5 col_ind: 0 1 1 3 5 2 2 4 5 0 3 4 0 2 3 5 values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 nnz 8 / 43

Σχήμα COO COOrdinate format Απoθήκευση μη-μηδενικών τιμών Συντεταγμένες για κάθε μη-μηδενική τιμή 54 11 0 0 0 0 0 63 0 77 0 88 0 0 11 0 0 0 0 0 29 0 37 29 90 0 0 11 45 0 11 0 29 37 0 11 row_ind: 0 0 1 1 1 2 3 3 3 4 4 4 5 5 5 5 col_ind: 0 1 1 3 5 2 2 4 5 0 3 4 0 2 3 5 values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 nnz 8 / 43

Σχήμα CSR (Compressed Sparse Row) 54 11 0 0 0 0 0 63 0 77 0 88 0 0 11 0 0 0 0 0 29 0 37 29 90 0 0 11 45 0 11 0 29 37 0 11 nrows+1 row_ptr: 0 2 5 6 9 12 16 col_ind: 0 1 1 3 5 2 2 4 5 0 3 4 0 2 3 5 values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 nnz 9 / 43

Σχήμα CSR (Compressed Sparse Row) 54 11 0 0 0 0 0 63 0 77 0 88 0 0 11 0 0 0 0 0 29 0 37 29 90 0 0 11 45 0 11 0 29 37 0 11 nrows+1 row_ptr: 0 2 5 6 9 12 16 col_ind: 0 1 1 3 5 2 2 4 5 0 3 4 0 2 3 5 values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 nnz 9 / 43

SpMxV πολλαπλασιασμός αραιού πίνακα με διάνυσμα y = A x, όπου A αραιός Σημαντικός υπολογιστικός πυρήνας λύση ΜΔΕ (GMRES, CG) για (CFD, economic modeling) γράφοι (PageRank) έντονη ερευνητική δραστηριότητα a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 a 41 a 42 a 43 a 14 a 24 a 34 a 44 x 1 x 2 x 3 = x 4 y 1 = a 1i x i y 2 = a 2i x i y 3 = a 3i x i y 4 = a 4i x i 10 / 43

SpMxV πολλαπλασιασμός αραιού πίνακα με διάνυσμα y = A x, όπου A αραιός Σημαντικός υπολογιστικός πυρήνας λύση ΜΔΕ (GMRES, CG) για (CFD, economic modeling) γράφοι (PageRank) έντονη ερευνητική δραστηριότητα a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 a 41 a 42 a 43 a 14 a 24 a 34 a 44 x 1 x 2 x 3 = x 4 y 1 = a 1i x i y 2 = a 2i x i y 3 = a 3i x i y 4 = a 4i x i 10 / 43

SpMxV πολλαπλασιασμός αραιού πίνακα με διάνυσμα y = A x, όπου A αραιός Σημαντικός υπολογιστικός πυρήνας λύση ΜΔΕ (GMRES, CG) για (CFD, economic modeling) γράφοι (PageRank) έντονη ερευνητική δραστηριότητα a 11 a 12 a 13 a 14 y x 1 = 0 0 1 a 21 x a 1i x i a 21 a 22 a 23 a 24 x 2 y a 31 a 32 a 33 a 34 2 = 1 + a 24 x 4 a 2i x i x 3 y 3 = = a 3i x i a 41 a 42 a 43 a 44 x 4 y 4 = a 4i x i 10 / 43

SpMxV για CSR for (i=0; i < N; i++) for (j=row_ptr[i]; j < row_ptr[i+1]; j++) y[i] += values[j] * x[col_ind[j]]; row_ptr: 0 2 5 6 9 12 16 col_ind: 0 1 1 3 5 2 2 4 5 0 3 4 0 2 3 5 x: x 0 x 1 x 2 x 3 x 4 x 5 values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 y: y 0 y 1 y 2 y 3 y 4 y 5 11 / 43

SpMxV για CSR for (i=0; i < N; i++) for (j=row_ptr[i]; j < row_ptr[i+1]; j++) y[i] += values[j] * x[col_ind[j]]; i=3 row_ptr: 0 2 5 6 9 12 16 (όρια γραμμής) col_ind: 0 1 1 3 5 2 2 4 5 0 3 4 0 2 3 5 x: x 0 x 1 x 2 x 3 x 4 x 5 values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 y: y 0 y 1 y 2 y 3 y 4 y 5 11 / 43

SpMxV για CSR i=3 row_ptr: 0 2 5 6 9 12 16 (όρια γραμμής) col_ind: 0 1 1 3 5 2 2 4 5 0 3 4 0 2 3 5 for (i=0; i < N; i++) for (j=row_ptr[i]; j < row_ptr[i+1]; j++) y[i] += values[j] * x[col_ind[j]]; (έμμεση πρόσβαση) x: x 0 x 1 x 2 x 3 x 4 x 5 ( ) 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 values: ( ) y: y 0 y 1 y 2 y 3 y 4 y 5 11 / 43

Παραδοσιακές προσεγγίσεις βελτιστοποίησης SpMxV SpMxV χρησιμοποιείται συχνά πληθώρα εργασιών παραδοσιακός στόχος: βελτίωση επίδοσης υπολογισμών ειδικευμένα σχήματα αραιής αποθήκευσης (εκμετάλλευση κανονικοτήτων στους πίνακες) Παραδείγματα: διδιάστατα μπλοκ σταθερού μεγέθους BCSR [Im and Yelick 01] μονoδιάστατα μπλοκ μεταβλητού μεγέθους [Pinar and Heath 99] διαγώνια στοιχεία DIAG 12 / 43

Σχήμα BCSR Blocked CSR [Im and Yelick 01] όμοιο με CSR: μπλοκ r c αντί στοιχείων παραδοσιακός στόχος: βελτίωση επίδοσης υπολογισμών (register blocking) ειδικές εκδόσεις SpMxV γιά r c πιθανό padding 46 93 0 0 0 0 24 56 86 82 0 0 0 0 53 16 0 0 0 0 19 79 0 0 0 0 0 0 71 0 0 0 A = 0 0 86 17 24 76 0 0 0 0 39 22 30 33 0 0 0 0 0 0 18 0 79 12 0 0 0 0 0 78 10 53 brow ptr : 0 2 3 5 7 bcol ind : (0 6 4 2 4 4 6) blocks : 46 93 86 82 24 56 53 16 19 79 71 0 86 17 39 22 24 76 30 33 18 0 0 78 79 12 10 53 bval : ( 46 93 86 82 24 56 53 16 19 79 71 00 ) 13 / 43

Σχήμα BCSR Blocked CSR [Im and Yelick 01] όμοιο με CSR: μπλοκ r c αντί στοιχείων παραδοσιακός στόχος: βελτίωση επίδοσης υπολογισμών (register blocking) ειδικές εκδόσεις SpMxV γιά r c πιθανό padding 46 93 0 0 0 0 24 56 86 82 0 0 0 0 53 16 0 0 0 0 19 79 0 0 0 0 0 0 71 0 0 0 A = 0 0 86 17 24 76 0 0 0 0 39 22 30 33 0 0 0 0 0 0 18 0 79 12 0 0 0 0 0 78 10 53 brow ptr : 0 2 3 5 7 bcol ind : (0 6 4 2 4 4 6) blocks : 46 93 86 82 24 56 53 16 19 79 71 0 86 17 39 22 24 76 30 33 18 0 0 78 79 12 10 53 bval : ( 46 93 86 82 24 56 53 16 19 79 71 00 ) 13 / 43

Σχήμα BCSR Blocked CSR [Im and Yelick 01] όμοιο με CSR: μπλοκ r c αντί στοιχείων παραδοσιακός στόχος: βελτίωση επίδοσης υπολογισμών (register blocking) ειδικές εκδόσεις SpMxV γιά r c πιθανό padding 46 93 0 0 0 0 24 56 86 82 0 0 0 0 53 16 0 0 0 0 19 79 0 0 0 0 0 0 71 0 0 0 A = 0 0 86 17 24 76 0 0 0 0 39 22 30 33 0 0 0 0 0 0 18 0 79 12 0 0 0 0 0 78 10 53 brow ptr : 0 2 3 5 7 bcol ind : (0 6 4 2 4 4 6) blocks : 46 93 86 82 24 56 53 16 19 79 71 0 86 17 39 22 24 76 30 33 18 0 0 78 79 12 10 53 bval : ( 46 93 86 82 24 56 53 16 19 79 71 00 ) 13 / 43

Σχήμα BCSR Blocked CSR [Im and Yelick 01] όμοιο με CSR: μπλοκ r c αντί στοιχείων παραδοσιακός στόχος: βελτίωση επίδοσης υπολογισμών (register blocking) ειδικές εκδόσεις SpMxV γιά r c πιθανό padding A = 46 93 0 0 0 0 24 56 86 82 0 0 0 0 53 16 0 0 0 0 19 79 0 0 0 0 0 0 71 0 0 0 0 0 86 17 24 76 0 0 0 0 39 22 30 33 0 0 0 0 0 0 18 0 79 12 0 0 0 0 0 78 10 53 brow ptr : 0 2 3 5 7 bcol ind : (0 6 4 2 4 4 6) blocks : 46 93 86 82 24 56 53 16 19 79 71 0 86 17 39 22 24 76 30 33 18 0 0 78 79 12 10 53 bval : ( 46 93 86 82 24 56 53 16 19 79 71 00 ) 13 / 43

Παραλληλοποίηση SpMxV (σύγχρονοι πολυπύρηνοι επεξεργαστές) Διαμερισμός δεδομένων - ανά γραμμές Ισοκατανομή φόρτου εργασίας - με βάση τα μη-μηδενικά στοιχεία thread 0 thread 1 both threads * = thread 0 thread 1 14 / 43

Επίδοση SpMxV (CSR) στη βιβλιογραφία αναφέρονται πολλά προβλήματα επίδοσης εκτεταμένη μελέτη επίδοσης σε 100 πίνακες [Goumas et al 09] SpMxV είναι εφαρμογή με έντονες προσβάσεις μνήμης¹ (παραδοσιακές προσεγγίσεις βελτίωσης υπολογισμών είναι άστοχες) ¹για πίνακες μεγαλύτερους από την cache 15 / 43

Επίδοση SpMxV (CSR) στη βιβλιογραφία αναφέρονται πολλά προβλήματα επίδοσης εκτεταμένη μελέτη επίδοσης σε 100 πίνακες [Goumas et al 09] SpMxV είναι εφαρμογή με έντονες προσβάσεις μνήμης¹ (παραδοσιακές προσεγγίσεις βελτίωσης υπολογισμών είναι άστοχες) 32 28 24 20 16 12 all average 08 1 2 4 8 εφαρμογή συμπίεσης για βελτίωση επίδοσης SpMxV ¹για πίνακες μεγαλύτερους από την cache 15 / 43

Σύνολο εργασίας CSR SpMxV (γιά nnz N) Ανάλυση δεδομένων προς συμπίεση: s idx : s val : nnz : ws : μέγεθος δείκτη στήλης μέγεθος αριθμητικής τιμής μη μηδενικές αριθμητικές τιμές όγκος δεδομένων συνόλου εργασίας ws = δεδομένα δομής αριθμητικές τιμές {}}{{}}{ nnz s idx + nnz s val s idx = 32 bit s val = 64 bit = δ δομής αρ τιμές 16 / 43

Ανακεφαλαίωση Συμπίεση για βελτίωση επίδοσης εφαρμογών με έντονες προσβάσεις μνήμη Αραιοί πίνακες και SpMxV CSR, BCSR SpMxV έντονες προσβάσεις στη μνήμη CSR-DU CSR-VI CSX 17 / 43

Συμπίεση δεδομένων δομής Καθιερωμένες προσεγγίσεις βελτιστοποίησης: επιτυγχάνουν συμπίεση (εμμέσα) BCSR ένας δείκτης στήλης ανά μπλοκ αλλά: μπορεί να οδηγήσει σε αύξηση όγκου 18 / 43

Συμπίεση δεδομένων δομής Καθιερωμένες προσεγγίσεις βελτιστοποίησης: επιτυγχάνουν συμπίεση (εμμέσα) BCSR ένας δείκτης στήλης ανά μπλοκ αλλά: μπορεί να οδηγήσει σε αύξηση όγκου Κωδικοποίηση δέλτα (για δεικτες στηλών): Παράδειγμα: ci 40 41 450 1812 1840 3203 3233 3235 3241 3245 δ 40 1 409 1362 28 1363 30 2 6 4 τιμές δέλτα σε μία γραμμή: > 0 και < colind [Willcock and Lumsdaine 06] 18 / 43

Κωδικοποίηση δέλτα για δείκτες στηλών ci 40 41 450 1812 1840 δ 40 1 409 1362 28 19 / 43

Κωδικοποίηση δέλτα για δείκτες στηλών α κωδικοποίηση κάθε τιμής ξεχωριστά (fine grain) υψηλό κόστος αποσυμπίεσης Εισάγονται εντολές διακλάδωσεις στον εσωτερικό βρόχο του SpMxV ci 40 41 450 1812 1840 δ 40 1 409 1362 28 enc 40 1 409 1362 28 19 / 43

Κωδικοποίηση δέλτα για δείκτες στηλών α κωδικοποίηση κάθε τιμής ξεχωριστά (fine grain) υψηλό κόστος αποσυμπίεσης Εισάγονται εντολές διακλάδωσεις στον εσωτερικό βρόχο του SpMxV ci 40 41 450 1812 1840 δ 40 1 409 1362 28 enc 40 1 409 1362 28 β DCSR [Willcock and Lumsdaine 06] 6 εντολές για την υλοποίηση του SpMxV μοτίβα (patterns) από σύνολα εντολών πολύπλοκο, όχι portable, εξαρτάται από τον πίνακα 19 / 43

Προτεινόμενη κωδικοποίηση δέλτα για δείκτες στηλών CSR-DU: coarse-grained η γραμμή χωρίζεται σε περιοχές μεταβλητού μεγέθους (περιοχές δέλτα) μέγεθος δέλτα ανά περιοχή ci 40 41 450 1812 1840 δ 40 1 409 1362 28 enc 40 1 409 1362 28 DU 40 1 409 1362 28 εσωτερικοί βρόχοι χωρίς διακλαδώσεις μικρότερες δυνατότητες συμπίεσης μέγεθος περιοχής 19 / 43

Το σχήμα αποθήκευσης CSR-DU δεδομένα δομής πίνακας ctl: usize uflags body col_ind row_ptr 200 213 234 268 323 2002 2005 2009 usize 5 3 uflags D8 nr D16 header 200 13 21 34 55 1679 3 body (delta values) 4 20 / 43

CSR-DU επεκτάσεις αποστάσεις (άλματα) περιοχών μεγάλο μέγεθος δέλτα εξαιτίας αρχικής τιμής πεδίο ujmp στην επικεφαλίδα: απόσταση από προηγούμενη περιοχή εκτός εσωτερικού βρόχου 21 / 43

CSR-DU επεκτάσεις συνεχόμενα στοιχεία όταν τα στοιχεία είναι συνεχόμενα τα δεδομένα δομής μπορούν να παραληφθούν περιοχές με συνεχόμενα στοιχεία μέγεθος απόσταση από προηγούμενη περιοχή [Pinar and Heath 99] 567 580 581 582 583 584 585 732 22 / 43

CSR-DU επεκτάσεις συνεχόμενα στοιχεία όταν τα στοιχεία είναι συνεχόμενα τα δεδομένα δομής μπορούν να παραληφθούν περιοχές με συνεχόμενα στοιχεία μέγεθος απόσταση από προηγούμενη περιοχή [Pinar and Heath 99] κωδικοποίηση 567 580 581 582 583 584 585 732 παράμετρος seq: ελάχιστος αριθμός συνεχόμενων στοιχείων, για ομαδοποίηση πχ seq=7 τα στοιχεία του σχ τοποθετούνται σε περιοχές δέλτα 22 / 43

CSR-DU πειραματική αξιολόγηση Σύστημα: 2 quad-core Harpertown (2GHz, 6MB L2) C0 L1 C1 L1 C2 L1 C3 L1 Μεθοδολογία (SpMxV): σύνολο 50 πινάκων (από πραγματικές εφαρμογές) L2 L2 επαναληπτικά σύγκριση με CSR, BCSR (best) CPU CPU noseq, seq=4, seq=8 23 / 43

CSR-DU μείωση όγκου δεδομένων (σε σχέση με το CSR) CSR-DU: πίνακας dense: 249% για noseq 332% για seq μέση: 142% για noseq 193% για seq=8 211% για seq=4 BCSR: αυξάνει τον όγκο σε 28 (από τους 50) πίνακες -132% κατά μο (αύξηση) 162% στους 22 πίνακες που οδηγεί σε μείωση μόνο για 2 πίνακες καλύτερο από CSR-DU 24 / 43

CSR-DU μέση επιτάχυνση Speedup 24 22 20 18 16 14 12 10 csr bcsr csrdu (noseq) csrdu (seq=8) csrdu (seq=4) 08 1 2 4 8 Threads CSR-DU (seq = 4) 1 πυρήνας: -7% συγκριτικά με CSR 8 πυρήνες: 287% συγκριτικά με CSR, 35% συγκριτικά με BCSR 25 / 43

CSR-DU Επιλογή σχήματος 50 40 Matrices 30 20 10 csr bcsr (1x2) bcsr (1x3) bcsr (2x1) bcsr (2x2) bcsr (3x1) csrdu (noseq) csrdu (seq=8) csrdu (seq=4) 0 1 2 4 8 Threads 1 πυρήνας: CSR-DU: 18 BCSR: 15 CSR:17 8 πυρήνες: CSR-DU: 43 BCSR: 4 CSR:3 26 / 43

Ανακεφαλαίωση CSR-DU κωδικοποίηση δέλτα χοντρού κόκκου συμπίεση δεδομένων δομής γενικό σχήμα χωρισμός πίνακα σε περιοχές περιοχές δέλτα κοινό μέγεθος τιμών δέλτα περιοχές με συνεχόμενα στοιχεία ωστόσο: δεδομένα δομής αποτελούν το 1 3 του ws 27 / 43

Συμπίεση αριθμητικών τιμών Τυπικά αποτελούν το μεγαλύτερο κομμάτι του ws Η συμπίεση είναι δύσκολη (γενικά): δεν περιέχουν εγγενή πλεονασμό πληροφορίας οι πράξεις ΚΥ οδηγούν σε στρογγυλοποιημένα αποτελέσματα sign exponent (11 bit) fraction (52 bit) 63 52 0 28 / 43

Συμπίεση αριθμητικών τιμών Τυπικά αποτελούν το μεγαλύτερο κομμάτι του ws Η συμπίεση είναι δύσκολη (γενικά): δεν περιέχουν εγγενή πλεονασμό πληροφορίας οι πράξεις ΚΥ οδηγούν σε στρογγυλοποιημένα αποτελέσματα sign exponent (11 bit) fraction (52 bit) 63 52 0 Σημαντικός αριθμός πινάκων με μικρό αριθμό μοναδικών τιμών (πλεονάζουσα πληροφορία) 28 / 43

Το σχήμα CSR-VI (CSR with Values Indexed) Έμμεση πρόσβαση τιμών CSR value structure values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 nnz CSR-VI value structure val_ind: 0 1 2 3 4 1 5 6 5 7 1 8 1 5 6 1 vals_unique: 54 11 63 77 88 29 37 90 45 uv 29 / 43

Το σχήμα CSR-VI (CSR with Values Indexed) Έμμεση πρόσβαση τιμών CSR value structure values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 nnz CSR-VI value structure val_ind: 0 1 2 3 4 1 5 6 5 7 1 8 1 5 6 1 vals_unique: 54 11 63 77 88 29 37 90 45 uv 29 / 43

Το σχήμα CSR-VI (CSR with Values Indexed) Έμμεση πρόσβαση τιμών CSR value structure values: 54 11 63 77 88 11 29 37 29 90 11 45 11 29 37 11 nnz CSR-VI value structure val_ind: 0 1 2 3 4 1 5 6 5 7 1 8 1 5 6 1 vals_unique: 54 11 63 77 88 29 37 90 45 Ογκος δεδομένων CSR : nnz s val CSR-VI : uv s val + nnz s vi (s vi : μέγεθος δείκτη τιμής) s vi μικρότερος ακέραιος που μπορεί να δεικτοδοτήσει uv στοιχεία (πχ αν έχω 256 μοναδικές τιμές, s vi = 1 byte) uv 29 / 43

Το σχήμα CSR-VI (συζήτηση) Καταλληλότητα πινάκων (total-to-unique) ttu = nnz uv Υλοποίηση/επίδοση SpMxV for (i=0; i < N; i++) for (j=row_ptr[i]; j < row_ptr[i+1]; j++) y[i] += vals_unique[val_ind[j]] * x[col_ind[j]]; επιπλέον (έμμεση) πρόσβαση στη μνήμη τυχαία πρόσβαση στο vals_unique 30 / 43

CSR-VI πειραματική αξιολόγηση Σύστημα: 2 4 πυρήνες (ομοίως με CSR-DU) C0 L1 C1 L1 C2 L1 C3 L1 Μεθοδολογία (SpMxV): L2 L2 50 22 πίνακες (ttu 5) CSR-DUVI (συνδυασμός DU,VI) CPU CPU 31 / 43

CSR-VI/CSR-DUVI μείωση όγκου δεδομένων CSR-VI: μο: 392 % μέγιστη: 588 % ελάχιστη: 203 % CSR-DUVI: μο: 524 % (noseq) μο: 573 % (seq=4) μέγιστη: 881 % (seq=4) ελάχιστη: 283 % 32 / 43

CSR-VI μέση επιτάχυνση Speedup 28 26 24 22 20 18 16 14 12 csr csrvi 1 1 2 4 8 Threads 1 πυρήνας: 124% συγκριτικά με CSR 8 πυρήνες: 517% συγκριτικά με CSR 8 πυρήνες: 1 πίνακας με χειρότερη επίδοση (από CSR) 33 / 43

CSR-DUVI μέση επιτάχυνση 40 35 csr csrduvi (noseq) csrduvi (seq=8) csrduvi (seq=4) Speedup 30 25 20 15 1 1 2 4 8 Threads 8 πυρήνες: 123% συγκριτικά με CSR 8 πυρήνες: κανένας πίνακας με χειρότερη επίδοση (από CSR) μεγάλη μείωση όγκου δεδομένων ορισμένοι πίνακες χωράνε (σε σημαντικό ποσοστό) στη L2 34 / 43

Ανακεφαλαίωση CSR-DU δεδομένα δομής γενικό σχήμα περιοχές κωδικοποίηση δέλτα συνεχόμενα στοιχεία CSR-VI αριθμητικές τιμές ειδικό σχήμα κοινές τιμές έμμεσες αναφορές Πειραματική αξιολόγηση (Happertown) σημαντικά οφέλη στη συνέχεια: Πλαίσιο CSX προσαρμόσιμος SpMxV πυρήνας 35 / 43

CSX: Κίνητρο και προσέγγιση Κανονικότητες και σχήματα αποθήκευσης BCSR, [Pinar and Heath 99], DIAG πολλαπλές κανονικότητες composite formats [Agarwal et al 92] πολλαπλοί πίνακες κάθενας σε διαφορετικό σχήμα A x = (A 0 + A 1 ) x = A 0 x + A 1 x απαιτήσεις υποστήριξη πολλαπλών κανονικοτήτων επεκτασιμότητα προσαρμοσιμότητα 36 / 43

CSX: Κίνητρο και προσέγγιση Κανονικότητες και σχήματα αποθήκευσης BCSR, [Pinar and Heath 99], DIAG πολλαπλές κανονικότητες composite formats [Agarwal et al 92] πολλαπλοί πίνακες κάθενας σε διαφορετικό σχήμα A x = (A 0 + A 1 ) x = A 0 x + A 1 x απαιτήσεις υποστήριξη πολλαπλών κανονικοτήτων επεκτασιμότητα προσαρμοσιμότητα προσέγγιση σχήμα CSX (Compressed Sparse extended) επέκταση/γενίκευση περιοχών CSR-DU δημιουργία ειδικευμένου κώδικα SpMxV (στο χρόνο εκτέλεσης) ενοποιημένη ανίχνευση 36 / 43

Κανονικότητες CSX x x x περιοχές με γενικό τύπο για κάθε τύπο υλοποίηση της απαραίτητης πράξης (πχ SpMxV) 37 / 43

Κανονικότητες CSX x x x x x (y, x + i) (y, x) (y, x + 1) (y, x + 2) περιοχές με γενικό τύπο για κάθε τύπο υλοποίηση της απαραίτητης πράξης (πχ SpMxV) τύποι περιοχών περιοχές δέλτα συνεχόμενα οριζόντια στοιχεία 37 / 43

Κανονικότητες CSX x x x x x (y, x + i δ) (y, x) (y, x + δ) (y, x + 2 δ) περιοχές με γενικό τύπο για κάθε τύπο υλοποίηση της απαραίτητης πράξης (πχ SpMxV) τύποι περιοχών περιοχές δέλτα συνεχόμενα οριζόντια στοιχεία με σταθερή απόσταση δ 37 / 43

Κανονικότητες CSX x x x x x (y, x + i δ) x x x x x x x x x x x x x x x (y + i δ, x) (y + i δ, x + i δ) (y i δ, x + i δ) περιοχές με γενικό τύπο για κάθε τύπο υλοποίηση της απαραίτητης πράξης (πχ SpMxV) τύποι περιοχών περιοχές δέλτα συνεχόμενα οριζόντια στοιχεία με σταθερή απόσταση δ διαφορετικές κατευθύνσεις ειδικευμένος κώδικας ανάλλογα με τους τύπους περιοχών του πίνακα 37 / 43

Ανίχνευση κανονικοτήτων (1, 3) (2, 1) (2, 2) (2, 3) (2, 4) 1 1 (1, 3) (2, 1) (2, 2) (2, 3) (2, 4) ίδια σειρά με την αποθήκευση εύκολη ανίχνευση 38 / 43

Ανίχνευση κανονικοτήτων (1, 1) (1, 3) (2, 2) (3, 3) (4, 4) (1, 1) (1, 3) (2, 2) (3, 3) (4, 4) ίδια σειρά με την αποθήκευση εύκολη ανίχνευση 38 / 43

Ανίχνευση κανονικοτήτων (1, 1) (1, 3) (2, 2) (3, 3) (4, 4) i =nrows+j i j = min(i, j) (4, 1) (2, 1) (4, 2) (4, 3) (4, 4) (1, 1) (1, 3) (2, 2) (3, 3) (4, 4) (4, 1) (2, 1) (4, 2) (4, 3) (4, 4) sort (2, 1) (4, 1) (4, 2) (4, 3) (4, 4) ίδια σειρά με την αποθήκευση εύκολη ανίχνευση μετασχηματισμός (ανάλλογα με κανονικότητα) ταξινόμηση μετασχηματισμοί για διαφορετικές κανονικότητες (πχ μπλοκ) 38 / 43

Κωδικοποίηση πινάκων Η πλειονότητα: δ = 1 HORIZ,DIAG,VERT αλλά: DU8 DU16 DU32 Diagonal (1) Diagonal (11) Horizontal (1) Horizontal (2) Anti-diagonal (1) Vertical (1) 100 90 80 70 60 50 40 30 20 10 0 ASIC_680ks stomach Chebyshev4 pre2 Si87H76 msdoor rajat31 39 / 43

Πειραματική αξιολόγηση 15 14 13 12 11 10 09 15 14 13 12 11 10 09 stomach Si87H76 FEM_3D_thermal2 Ga41As41H72 cage13 rajat31 CSX (delta) CSX (horiz) CSX (full) G3_circuit F1 atmosmodj fdif202x202x102 40 / 43

Μελλοντικές κατευθύνσεις Ανακεφαλαίωση Συμπίεση CSR-DU CSR-VI CSX Μελλοντικές κατευθύνσεις: Πλαίσιο για προσαρμόσιμο πυρήνα SpMxV πίνακας (πχ συμμετρία πίνακα, τύπος δεδομένων) υποκείμενη αρχιτεκτονική (πχ αριθμός νημάτων,χαρακτηριστικά) Υποστήριξη διαφορετικών πράξεων αραιών πινάκων CSX Εφαρμογή τεχνικών συμπίεσης και άλλες κλάσεις υπολογισμών γράφοι βάσεις δεδομένων 41 / 43

Δημοσιεύσεις Improving the Performance of Multithreaded Sparse Matrix-Vector Multiplication using Index and Value Compression K Kourtis, G Goumas and N Koziris, ICPP08 Optimizing Sparse Matrix-Vector Multiplication Using Index and Value Compression K Kourtis and G Goumas and N Koziris CF08 Understanding the Performance of Sparse Matrix-Vector Multiplication G Goumas, K Kourtis, N Anastopoulos, Vs Karakasis and N Koziris PDP08 Performance Evaluation of the Sparse Matrix-Vector Multiplication on Modern Architectures Georgios Goumas, Kornilios Kourtis, Nikos Anastopoulos, Vasileios Karakasis and Nectarios Koziris The Journal of Supercomputing (October 2009) Υπό κρίση: Exploiting Compression Opportunities to Improve SpMxV Performance on Shared Memory Systems K Kourtis and G Goumas and N Koziris TACO CSX: An Extended Compression Format for SpMxV on Shared Memory Systems Kornilios Kourtis, Vasileios Karakasis, Georgios Goumas, and Nectarios Koziris SC10 42 / 43

EOF The First Rule of Program Optimization: Don t do it The Second Rule of Program Optimization (for experts only!): Don t do it yet - Michael A Jackson 43 / 43