Υπολογιστική Γραµµική Άλγεβρα Ε. Γαλλόπουλος Τµήµα Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών Πηγές Ηιστοσελίδα του µαθήµατος, online σηµειώσεις, G.H. Golub and C. Van Loan, Matrix Computations, 3d Edition, Johns Hopkins University Press (1996). Nick Trefethen and D. Bau III, Numerical Linear Algebra, SIAM, Philadelphia (1997). James Demmel, Applied Numerical Linear Algebra, SIAM, Philadelphia (1997) N.J. Higham, Accuracy and Stability of Numerical Algorithms, SIAM, Philadelphia (2002). LAPACK User s Guide (Anderson, et. al), SIAM (also online). Στο µάθηµα θαχρησιµοποιηθεί κατά κύριο λόγο το περιβάλλον Matlab αλλά και C ή και Fortran Page 1 1
Το µάθηµα στο ιαδίκτυο http://scgroup.ceid.upatras.gr/class/cla.html πρόσβαση περιορισµένη από το domain upatras.gr περιεχόµενα διαλέξεων, ανακοινώσεις, βαθµολογία, προβλήµατα, ασκήσεις, παραδείγµατα, πληροφορίες και πηγές, βιβλιογραφία, προγράµµατα, κλπ.) Ηµερολόγιο µαθήµατος Η υπολογιστική ή αριθμητική γραμμική άλγεβρα (ΑΓΑ) είναι από τα σημαντικότερα θέματα της περιοχής του επιστημονικού υπολογισμού. Πέραν του ενδιαφέροντος που παρουσιάζουν τα προβλήματα που προκύπτουν στην περιοχή αυτή, είναι παρατηρημένο ότι πολλοί από τους υπολογισμούς μεγάλης κλίμακας που είναι απαραίτητοι για την επίλυση σημαντικών προβλημάτων της επιστήμης, της τεχνολογίας και των οικονομικών επιστημών, έχουν "υπολογιστικούς πυρήνες" που προέρχονται από τη γραμμική άλγεβρα. Α το 1980 και μετά, η ΥΓΑ εμφανίζεται ως μια από τις πιο δυναμικές περιοχές του Επιστημονικού Υπολογισμού και των Υπολογιστικών Μαθηματικών. Page 2 2
Προς τους φίλους Μαθηµατικούς "... the subject of linear algebra; it is real mathematics, interesting and exciting on its own, yet probably that part of mathematics which finds the widest application - in physics, chemistry, economics, in fact in almost every science and pseudo-science." [I.N. Herstein, "Topics in Algebra", 1964]. Κλάσεις προβληµάτων για το T x = y x x=? x T T T=? y=? y y Page 3 3
Κατηγορίες προβληµάτων T x = y Άµεσα προβλήµατα (direct prbs) ίδονται T, x και πρέπει να υπολογιστεί το y Αντίστροφα προβλήµατα (inverse prbs) ίδονται T, y και πρέπει να υπολογιστεί το x Προβλήµατα ταυτοποίησης (identification prbs) ίδονται x, y και πρέπει να υπολογιστεί το T Άµεσα προβλήµατα ίδονται T, x και πρέπει να υπολογιστεί το y Υπολογισµός τιµής/ών γνωστής συνάρτησης Υπολογισµός µετασχηµατισµών, π.χ. Fourier Αριθµητική παραγώγιση και ολοκλήρωση Πολλαπλασιασµός µητρώου µε διάνυσµα Page 4 4
Αντίστροφα προβλήµατα ίδονται T, y και πρέπει να υπολογιστεί το x Εύρεση ρίζας εξίσωσης Επίλυση διαφορικής εξίσωσης Προβλήµατα βελτιστοποίησης Επίλυση γραµµικού συστήµατος Επίλυση µη γραµµικού συστήµατος Προβλήµατα ταυτοποίησης ίδονται x,y και πρέπει να υπολογιστεί το T Συναρτησιακή παρεµβολή Προσέγγιση συναρτήσεων Αντίστροφα προβλήµατα ιδιοτιµών Page 5 5
Θεµελιώδη προβλήµατα ΑΓΑ (1/3) ΑΓΑ0: Βασικές πράξεις (άµεσα προβλήµατα) ΑΓΑ1: Επίλυση γραµµικών συστηµάτων ΑΓΑ2: Πρόβληµα ελαχίστων τετραγώνων Θεµελιώδη προβλήµατα ΑΓΑ (2/3) ΑΓΑ3: Πρόβληµα ιδιοτιµών ΑΓΑ4: Γενικευµένο πρόβληµα ιδιοτιµών ΑΓΑ5: ιάσπαση ιδιαζουσών τιµών Page 6 6
Θεµελιώδεις παραγοντοποιήσεις/διασπάσεις ΑΓΑ1: Επίλυση γραµµικών συστηµάτων Γενικά οµαλά: ιάσπαση LU µε κάποια οδήγηση Συµµετρικά θετικά ορισµένα µητρώα Cholesky LL > και LDL > Συµµετρικά αόριστα Bunch-Kaufman, Aasen, ΑΓΑ2: Πρόβληµα ελαχίστων τετραγώνων Πλήρους τάξης Cholesky για τις κανονικές εξισώσεις ιάσπαση QR Ελλειµατικής τάξης QR µε οδήγηση SVD Θεµελιώδη προβλήµατα ΑΓΑ (2/3) ΑΓΑ3: Πρόβληµα ιδιοτιµών Μη συµµετρικό Schur Μερική Schur Jordan Hessenberg Συµµετρικό Συµµετρική Schur Τριδιαγώνια διάσπαση ΑΓΑ4: Γενικευµένο πρόβληµα ιδιοτιµών Γενικευµένη Schur Γενικευµένη SVD Page 7 7
Θεµελιώδη προβλήµατα ΑΓΑ (3/3) ΑΓΑ6: Υπολογισµός συναρτήσεων µητρώων Σύνδεση µε Επιστηµονικό Υπολογισµό: Τι είναι ο ΕΥ; Scientific computing is the collection of tools, techniques, and theories required to solve on a computer mathematical models of problems in science and engineering. [Golub & Ortega] Ο σχεδιασµός, η ανάπτυξη, και η αποδοτική χρήση υπολογιστικών εργαλείων που βοηθούν στην πρακτική χρήση των µαθηµατικών µοντέλων της επιστήµης και της τεχνολογίας. Page 8 8
Page 9 9
Παρατηρήσεις Υπολογιστικοί πυρήνες Επικρατεί γραµµική άλγεβρα Ακόµα και ο µετασχηµατισµός Fourier! Παράδειγµα MATLAB Η Υπολογιστική Γραµµική Άλγεβρα θα αποτελέσει το όχηµα για την παρουσίαση τωντεχνικώντουευ Page 10 10
Πολυώνυµα, Γραµµική Άλγεβρα και FFT Οι τιµές ενός πολυωνύµου P(z) = α0 + α1 z + L αn-1 zn-1 για m τιµές του z = ζ1,, ζm µπορεί να γραφτούν ως που µπορεί να γραφτεί ως πολλαπλασιασµός µητρείουδιανύσµατος p =Va, όπου Ο υπολογισµός των τιµών ενός n-1-βαθµου πολυωνύµου σε m σηµεία µπορεί να γραφτεί και σαν πολλαπλασιασµός µητρείου m n µε διάνυσµα µήκους n Page 11 11
Το V αποκαλείται µητρώο τύπου Vandermonde Το διάνυσµα a αποτελείται από τους συντελεστές του πολυωνύµου. για τον πολλαπλασιασµόχρειάζονται m (n-1) προσθέσεις m n πολλαπλασιασµοί µιγαδικών Συνολικά περίπου 2mn πράξεις µιγαδικών οθέντος διανύσµατος x R n ο διακριτός µετασχηµατισµός Fourier (DFT) του x = [ξ j ] είναι το διάνυσµα y= [η k ]µεστοιχεία Page 12 12
Θέτοντας προκύπτει και έχουµε ότι ηλαδή είναι πολλαπλασιασµός µητρείου τύπου Vandermonde µε το διάνυσµα που θέλουµε να µετασχηµατίσουµε: Y = fft(x) y = A x όπου το A είναι όπως παραπάνω. Ισχύει ότι Α* A = n I Τα σηµεία w_j είναι n-οστές ρίζες του 1: wjn=1 και ωk j = ωrem (kj,n) Page 13 13
Έτσι προκύπτει και η ενδιαφέρουσα παρατήρηση (Moler), ότι plot(fft(eye(10))), axis equal, axis off δίνει plot(fft(eye(20))); axis equal Page 14 14
Ταχύς µετασχηµατισµός Fourier Προκύπτουν συµµετρίες και ειδική δοµή που αξιοποιούµε για να κατασκευάσουµε ταχύ αλγόριθµο, το FFT, που στοιχίζει O(n log 2 n) πράξεις αντί για O(n 2 ). Σχεδιάστηκε το 1962 από τους Cooley και Tuckey της IBM (που έχτισαν σε ιδέες του Gauss και Runge). Για πολλούς είναι η πιο σηµαντική αλγοριθµική ανακάλυψη των τελευταίων αιώνων. Παρατηρήσεις Το FFT επιτυγχάνει ασυµπτωτική βελτίωση στις πράξεις της τάξης O(n/log 2 n) Page 15 15
Όµως πρέπει να ρωτήσουµε Τι κρύβεται πίσω από την ασυµπτωτική βελτίωση; Μήπως το Ο είναι µυωπικό; Τι βελτίωση βλέπουµε στην πράξη; Πώς µεταβάλλεται η επίδοση µε το n; Πώς µεταφράζεται σε χρονοβελτίωση η βελτίωση στις πράξεις; Τι υλοποιήσεις συγκρίνουµε; ιάφορες υλοποιήσεις για MV και για FFT Σηµαντική πρόσφατη υλοποίηση του FFT: FFTW: The fastest FFT in the West (Matteo Frigo @ MIT) www.fftw.org χρησιµοποιείται από τη MATLAB 6.* Page 16 16
Page 17 17
Κριτήρια αξιολόγησης Να φθάσουµε γρήγορα Ταχύτητα χωρίς να τρακάρουµε Ακρίβεια µε VW αντί BMW Κόστος Page 18 18
Ταχύτητα Θέλουµε ταχύτερηεπίλυση Τι βοηθά στην ταχύτερη επίλυση; Τι µετράµε; χρόνο αναµονής για αποτέλεσµα χρόνο χρήσης των πόρων του συστήµατος χρόνο χρήσης του επεξεργαστή Πως µπορούµεναπροβλέψουµε την ταχύτητα; Ακρίβεια Θέλουµε «σωστές» απαντήσεις θεωρούµε ότι δεν υπάρχουν σφάλµατα λογικής στο πρόγραµµα Συνήθως τα αποτελέσµατα περιέχουν λάθη! Σφάλµατα εισόδου Σφάλµατα διακριτοποίησης Σφάλµατα στρογγύλευσης Πως µπορούµε να προβλέψουµε το σφάλµα; Page 19 19
Έλεγχος ακρίβειας Τουλάχιστον να γνωρίζουµε την επίδραση των σφαλµάτων στα αποτελέσµατα Να εξασφαλίζουµε αποδεκτόσφάλµα Να µπορούµε να ποσοτικοποιούµε τοσφάλµα στο υπολογισµένο αποτέλεσµα Τα εργαλεία κρίνονται από το αν µας ενηµερώνουν σχετικά µε την ποιότητα των απαντήσεων Page 20 20
Εξελίξεις κύκλος ρολογιού RISC: µικρό CPI, Load/Store Superscalar: CPI<1 pipelining παραλληλία NOW Internet και Grid Ιεραρχία µνήµης interleaving µεταφραστές γλώσσες λειτουργικό βιβλιοθήκες περιβάλλοντα Page 21 21
Αρχή του pipelining Χρόνος στάδιο 1 στάδιο 2 τ 0 τ τ στάδιο ν-1 στάδιο ν τ τ Τ pipe = τ 0 + ντ Χρόνος T nopipe = st Page 22 22
Pipelining διανυσµατική επεξεργασία Πρόσθεση διανυσµάτων a+b µε στοιχεία α j, β j σε pipeline 4 σταδίων Παράλληλη επεξεργασία Χρήση πολλών επεξεργαστών που επικοινωνούν µεταξύ τους και συνεργάζονται για την επίλυση µεγάλων υπολογιστικών προβληµάτων Κίνητρο για την ανάπτυξη της παράλληλης επεξεργασίας ήταν η κλίµακα των προβληµάτων του ΕΥ. Page 23 23
Grid Computing: Επεξεργασία σε πλέγµα Χρήση υπολογιστών στο διαδίκτυο που επικοινωνούν µεταξύ τους και συνεργάζονται για την επίλυση µεγάλων υπολογιστικών προβληµάτων Γλώσσες Fortran, C C,++, Java Άλλες? (imperative, functional,...) I don't know what the technical characteristics of the standard language for scientific and engineering computation in the year 2000 will be... but I know it will be called Fortran Αποδίδεται στον John Backus (θυµηθείτε την BNF) Page 24 24
Περιβάλλοντα Επίλυσης Προβληµάτων Fortran, C C,++, Java MATLAB Mathematica, Maple, Axiom I have not written a single statement in Fortran (or C) since 1988 Cleve Moler (ιδρυτής Mathworks) Μάθηµα επιλογής: ΤΜΗΥΠ 558 Υπολογισµός -επικοινωνία Μεγάλη διαφοροποίηση στην ταχύτητα επεξεργασίας σε σχέση µε την ταχύτητα επικοινωνίας επεξεργαστή/µνήµης Page 25 25
Θέµατα µνήµης εδοµένο: Η ταχύτητας επεξεργασίας έχει µεγαλώσει πολύ σε σχέση µε την ταχύτητα µεταφορών από/προς τη µνήµη Πρόβληµα: Πώς µπορεί να αποφευχθεί η επιβάρυνση του κόστους; Πρόταση: µπορούµε να αποκρύψουµε το κόστος των µεταφορών; Θέµατα µνήµης (2) Interleaving (διαφύλλωση) των memory banks Κύρια µνήµη οργανωµένη σε τµήµατα Pipelined πρόσβαση µεταξύ τµηµάτων Page 26 26
Θέµατα µνήµης (3) Ιεραρχία µνήµης Η αποτελεσµατική χρήση της ιεραρχίας εξαρτάται από την τοπικότητα του προγράµµατος Thank Thank Srinivas Srinivas Devadas, Devadas, ΜΙΤ ΜΙΤ Page 27 27
Χαρακτηριστικά ιεραρχίας επίπεδο 0 1 (α, β) 2 3, 4 όνοµα καταχωρητές κρυφή µνήµη κύρια µνήµη δίσκος,... Πρόσβαση (κύκλοι) 0.5-1 2-5 10-50 10 6 εύρος MB/s 800 200 133 4 διαχείριση µεταφραστής υλικό λειτουργικό λειτουργικό χρήστης τυπικό µέγεθος ΚΒ ΜΒ GB Χαρακτηριστικό της κρυφής µνήµης Όταν ζητηθεί ένα στοιχείο από τη µνήµη δεν µεταφέρεται µόνον αυτό αλλά µια γραµµή κρυφής µνήµης Ο ελάχιστος αριθµός στοιχείων που µεταφέρονται µεταξύ κρυφής µνήµης και µνήµης, π.χ. 32 ή 128 bytes Page 28 28
Προφόρτωση (prefetching) Φόρτωση δεδοµένων στην ταχύτερη µνήµη πριν χρειαστούν. Εκµετάλλευση µέσω υλικού ή/κ λογισµικού της δυνατότητας ταυτόχρονης εκτέλεσης αριθµητικών πράξεων µε το LOAD από τη µνήµη Είδη τοπικότητας Χρόνου Αν τώρα ζητηθεί το στοιχείο από τη θέση s της µνήµης, σε λίγο θα ζητηθεί πάλι το ίδιο στοιχείο Χώρου Αν τώρα ζητηθεί το στοιχείο από τη θέση s της µνήµης τώρα, σε λίγο θα ζητηθούν και στοιχεία που βρίσκονται σε παραπλήσια θέση. Page 29 29
Σειριακή τοπικότητα Οµαλή πρόσβαση σε εντολές και δεδοµένα Το πρόγραµµα συνήθως εκτελεί τις εντολές µε τη σειρά που είναι γραµµένες. Έχει παρατηρηθεί ότι σε ένα τυπικό πρόγραµµα, εκτελούνται 5 διαδοχικές εντολές για κάθε 1 εκτός σειράς Η πρόσβαση σε στοιχεία στη µνήµη είναι «σειριακή» (διαδοχικά δεδοµένα) Hit στην ιεραρχία Είναι το στοιχείο που ζητάµε στη µνήµη όπου το αναζητάµε; Ναι hit Όχι miss Στόχος: να σχεδιάσουµε προγράµµατα που εκµεταλλεύονται την ιεραρχία και µεγιστοποιούν τα hits στις ταχύτερες µνήµες Η πρόσβαση ανά cache lines εκµεταλλεύεται την χωρική τοπικότητα και την προφόρτωση Page 30 30
linker linker assembler compiler Μετάφραση (1) HLL assembler code intermediate code object code object code executable executable Page 31 31
Μοντέλα στον ΕΥ Στον ΕΥ πλοηγούµε αδιάκοπαµεταξύ διαφορετικών µοντέλων Τα βασικά µοντέλα που µας ενδιαφέρουν την ΥΓΑ είναι υπολογιστικό µοντέλο αριθµητικό µοντέλο µοντέλο διακριτοποίησης χρησιµοποιούνται για να επιτρέπουν στο σχεδιαστή και στο χρήστη να κάνει προβλέψεις σχετικές µε την επίδοση των µεθόδων και την ακρίβεια των λύσεων Υπολογιστικό µοντέλο Ένα υπολογιστικό µοντέλο περιγράφει µιαν ιδεατή µηχανή για την οποία µπορούµε να γράψουµε λογισµικό. Turing machine Random Access Machine Random Access Stored Program (RASP) Page 32 32
Υπολογιστικό µοντέλο Ένα υπολογιστικό µοντέλο περιγράφει µιαν ιδεατή µηχανή για την οποία µπορούµεναγράψουµελογισµικό. Η µηχανή κρύβει αρχιτεκτονικές λεπτοµέρειες και αλλαγές που οφείλονται σε καθαρά τεχνολογικές εξελίξεις (π.χ. µικρότερο κύκλο) Υπολογιστικό µοντέλο Ένα υπολογιστικό µοντέλο περιγράφει µιαν ιδεατή µηχανή για την οποία µπορούµεναγράψουµελογισµικό. Η µηχανή κρύβει αρχιτεκτονικές λεπτοµέρειες και αλλαγές που οφείλονται σε καθαρά τεχνολογικές εξελίξεις (π.χ. µικρότερο κύκλο) Η ιδεατή µηχανή πρέπει να είναι αρκετά συγκεκριµένη ώστε να επιτρέπει την εξαγωγή συµπερασµάτων σχετικών µε την επίδοση των προγραµµάτων που γράφονται γι' αυτήν. Page 33 33
Performance on Alliant FX/8 Meier & Sameh 84 Page 34 34
Από www.tech-report.com/reviews/2001q2/pentium4-1.7/index.x?pg=4 700 Matrix - Matrix multiplication on PIII @ 866MHz, 512 Kb cache, Windows 2000 MATLAB 5.3 MATLAB 6.1 600 500 Mflop ratio 400 300 200 100 0 0 50 100 150 200 250 Matrix size Μετρήσεις κ. Κώστα Μπέκα Page 35 35
Μοντέλο RAM/RASP CPU + Mem κόστος εκτέλεσης Τ = Ο(αριθµ. πράξεις ακυ) «ικανοποιητικό» εφόσον το βασικό κόστος είναι η αριθµητική. we combine LOAD and STORE into the arithmetic operations by replacing sequences such as LOAD a; ADD b; STORE c by c <- a+b [Aho et al. 74] S = a(n); for I=n-1:-1:0 s = s. x + a(i); end; κόστος Ω = 2n πράξεις α.κ.υ. High-performance computing (HPC) application developers can no longer afford the luxury of programming to just one platform. The usefulness and longevity of software now depend on portability as well as performance. Parallel Computing, Oct. 2001 Page 36 36
Performance programming του Larry Carter στο, ``RISC from a Performance Programmer's Perspective,'' Invited talk, IBM "RISC in 1995" Symposium, November 1995. Κριτική εν λαµβάνεται υπόψη η επικοινωνία Μερικές φορές αυτό δεν αποτελεί πρόβληµα Συχνά δίδονται λάθος εκτιµήσεις υπάρχουν αλγόριθµοι για το ίδιο πρόβληµα µε το ίδιο κόστος σε αριθµητικές πράξεις που έχουν ουσιαστικά διαφορετική επίδοση Χρειαζόµαστε µοντέλο που να επιτρέπει σχεδιασµό που αναδεικνύει και διακρίνει τις διαφορετικές επιδόσεις. Page 37 37
Παράδειγµα Πράξη Β = Α + x y T Αριθµός πράξεων Ω = 2 n 1 n 2 n 1 = + n 2 Παράδειγµα Πράξη Β = Α + x y T Αριθµός πράξεων Ω = 2 n 1 n 2 Φ min = 2n 1 n 2 + n 1 + n 2 n 1 = + n 2 Page 38 38
Χρόνος εκτέλεσης σε SGI Indigo-2 µε R4400 @ 250 MHz / 2MB cache A) απλή υλοποίηση Β) βελτιστοποιήσεις που λαµβάνουν υπόψη την αρχιτεκτονική Γ) µε βιβλιοθήκη του συστήµατος Χρόνος µε dtime Απόδοση σε Mflop/s n 1 = n 2 = n n = 30:800 Κριτική εν λαµβάνεται υπόψη η επικοινωνία Μερικές φορές αυτό δεν αποτελεί πρόβληµα Συχνά δίδονται λάθος εκτιµήσεις υπάρχουν αλγόριθµοι για το ίδιο πρόβληµα µε το ίδιο κόστος σε αριθµητικές πράξεις που έχουν ουσιαστικά διαφορετική επίδοση Χρειαζόµαστε µοντέλο που να επιτρέπει σχεδιασµό που διακρίνει τις διαφορετικές επιδόσεις. Page 39 39
Επιθυµητά στοιχεία Κόστος µεταφορών Ιεραρχία µνήµης περιορισµένο χώρο καταχωρητών και κρυφής µνήµης διαφορετική ταχύτητα προσπέλασης σε κάθε επίπεδο µνήµης Παραλληλία Απλό µοντέλο Επεξεργαστής και αρχιτεκτονική Load/Store αρχείο καταχωρητών κρυφή µνήµη K θέσεων µε write back κύρια µνήµη M θέσεων κόστη: Load, Store, πράξεις α.κ.υ. Κάθε πράξη αριθµ.κ.υ. στοιχίζει τ αρθ load από µνήµη στον επεξεργαστή σε χρόνο τ µετ load από κρυφή µνήµη στον επεξεργαστή σε τ µετ (0) store από κρυφή µνήµη η επεξεργαστή σε τ µετ τ µετ (0) 0 Page 40 40
Απλό µοντέλο τ µετ (0) τ µετ Μετρητές για το απλό µοντέλο Ω: αριθµός πράξεων α.κ.υ. Φ: αριθµός µεταφορών µεταξύ κύριας µνήµης και καταχωρητών ή κρυφής µνήµης Φ min : ελάχιστος αριθµός µεταφορών αν διαθέταµε απεριόριστη µνήµη σε όλα τα επίπεδα Page 41 41
Για κάποιο πρόβληµα και αλγόριθµο αντιστοιχεί πρόγραµµαπουτρέχουµε σε δοθέν Η/Υ. Ποιός είναι ο χρόνος επίλυσης σε αυτό και άλλους Η/Υ; Πως βελτιώνουµετοναλγόριθµο; Ανάλυση κόστους Page 42 42
Για να µειώσουµε τοχρόνο Μείωση του Ω αλλά πολλές φορές οι διαφορές είναι πολύ µικρές ή έχουµε νέο αλγόριθµο πολλές φορές το Ω είναι σταθερό! Μείωση του Φ Ιεραρχικό µοντέλο (ενός επιπέδου) CPU + Mem κόστος εκτέλεσης Τ αριθµητικές πράξεις ακυ.και πράξεις LOAD/STORE LOAD a(0:n), x s = a(n); for I=n-1:-1:0 s = s. x + a(i); end; STORE s κόστος Φ= Φ min = n+3 L/S χρειάζεται O(n) cache Page 43 43
Ιεραρχικό µοντέλο (ενός επιπέδου) CPU + Mem κόστος εκτέλεσης Τ = αριθµητικές πράξεις ακυ.και πράξεις LOAD/STORE LOAD a(n), x s = a(n); for I=n-1:-1:0 LOAD a(i) s = s. x + a(i); end; STORE s κόστος Φ= n+3 L/S χρειάζεται O(1) cache Μέτρηση του Φ min Όταν τα στοιχεία είναι όλα σε χώρο µε µηδενικό κόστος πρόσβασης, το µοντέλο λειτουργεί σαν το RAM. Αν ο αριθµός των δεδοµένων εισόδου που χρησιµοποιούνται από τον αλγόριθµο είναιn και υπολογίζεται τουλάχιστον ένα αποτέλεσµα τότε Φ min n+1 Εκτιµούµε το Φ min από το πλήθος των στοιχείων εισόδου n και εξόδου m Συνήθως Φ min = n+m Page 44 44
Υλοποίηση για Φ min Αν τ (0) µετ 0 υποθέτουµε ότι διατίθεται όσος χώρος καταχωρητών χρειάζεται. Αν τ (0) µετ =0υποθέτουµε ότι διατίθεται όσος χώρος κρυφής µνήµης & καταχωρητών χρειάζεται. Το Φ min θα ήταν εφικτό αν µπορούσαµε να υλοποιήσουµε το εξής: Υλοποίηση για Φ min Program PhiMin_file % φορτώνουµε όλα τα δεδοµένα εισόδου Load *** statement_1; statement_2; statement_s % ενδιάµεσα αποτελέσµατα διατηρώ σε καταχωρητές % γράφουµε τα αποτελέσµατα Store *** Page 45 45
Στόχος Υλοποιήσεις που επιτυγχάνουν µικρό Φ στο διαθέσιµο χώρο κρυφής µνήµης saxpy και DOT Ω = 2 n for i=1:n y(i) = α.x(i) + y(i) end; s=0 for i=1:n s = s + y(i).x(i) end; Page 46 46
saxpy Ω = 2 n Φ min = 3n+1 µ min = 3/2 + O( 1/n ) LOAD α, x(1:n),y(1:n) for i=1:n y(i) = α.x(i) + y(i); end; STORE y(1:n) εφικτό µε O(n) cache saxpy Ω = 2 n Φ min = 3n+1 µ min = 3/2 + O( 1/n ) LOAD α for i=1:n LOAD x(i), y(i) y(i) = α.x(i) + y(i); STORE y(i) end; εφικτό µε O(1) cache Page 47 47
DOT Ω = 2 n Φ min = 2n+2 µ min = 1 + O( 1/n ) LOAD s, x(1:n), y(1:n) for i=1:n s = s + x(i)*y(i); end; STORE s εφικτό µε O(n) cache DOT Ω = 2 n Φ min = 2n+2 µ min = 1 + O( 1/n ) LOAD s for i=1:n LOAD x(i), y(i) s = s + x(i)*y(i); end; STORE s εφικτό µε O(1) cache Page 48 48
Κριτική υπολογιστικού µοντέλου Όλες οι πράξεις δεν έχουν ίδιο κόστος «σχετικά flops»: +, -, * για 1 flop /, sqrt για 10-30 flops exp, sin για 50+ flops + integer δεν υπολογίζεται (< 1 flop) Το κόστος µεταφορών πολύπλοκο εξαρτάται από θέση των στοιχείων καταχωρητές 2 ns L1 on-chip 4 ns L2 on-chip 5 ns L3 off-chip 30 ns κύρια µνήµη 220 ns το κόστος φόρτωσης (LOAD) δεν είναι το ίδιο µε το κόστος εγγραφής (STORE) Επιτρέπεται επικάλυψη µεταφορών και πράξεων στον ίδιο κύκλο H διαχείριση δεδοµένων της cache γίνεται από το υλικό Τα στοιχεία µεταφέρονται ανά cache line Για να πετύχουµε υψηλές επιδόσεις Αποτελεσµατικός αλγόριθµος Γρήγορη µηχανή Μεταφραστής HPC: Optimizing compiler Υλοποίηση που αξιοποιεί στοιχεία της αρχιτεκτονικής Μετασχηµατισµοί για υψηλή επίδοση Χρήση βιβλιοθηκών platform Βελτιστοποιήσεις στο επίπεδο του αλγόριθµου Page 49 49
Παράδειγµα µεθοδολογίας Port legacy code on multiprocessor Obtain baseline performance Apply automatic transformations monitor performance Apply algorithmic substitutions monitor performance Συνεργία: Υλικού, Αρχιτεκτονικής, Λογισµικού, Αλγορίθµων, Εφαρµογών Μεθοδολογία Ανάλυση παραδοσιακών (legacy) ή σκονισµένων (dusty-deck) κωδίκων ώστε να φανεί ξεκάθαρα ποιά τµήµατα του κώδικα έχουν το µεγαλύτερο κόστος. ιακρίνουµε δύο κατηγορίες προβληµάτων: αυτά που επιταχύνονται ικανοποιητικά µέσω βελτιστοποιήσεων που µεταφραστή αυτά που απαιτούν την χρήση πληροφορίας υψηλότερου επιπέδου για την αποτελεσµατική τους επιτάχυνση Page 50 50
Βελτιστοποίηση µέσω Αποτελεσµατικών αλγορίθµων που αξιοποιούν µαθηµατικές πληροφορίες αποτελεσµατική µετάφραση Παραδείγµατα Κώδικας daxpy Επίδοση daxpy Ρόλος µεταφραστή Page 51 51
Μοντέλο αριθµητικής Επιπτώσεις της αναπαράστασης των αριθµών µε πεπερασµένο αριθµό ψηφίων. Αριθµητική κινητής υποδιαστολής Floating point arithmetic is by nature inexact, and it is not difficult to misuse it so that the computed answers consist almost entirely of noise. One of the principal components of numerical analysis is to determine how accurate the results of certain numerical methods will be David Knuth στο The Art of Computer Programming, vol. 2 Page 52 52
Λεπτοµερής συζήτηση του µοντέλου Από τις σηµειώσεις επιστηµονικού υπολογισµού Τεύχος 1, κεφ. 3 Τεύχος 2, κεφ. 3 Τεύχος 3, κεφ. 3 Τεύχος 4, κεφ. 3 Τεύχος 5, κεφ. 3 Μοντέλο αριθµητικής Επιπτώσεις της αναπαράστασης των αριθµών µε πεπερασµένο αριθµό ψηφίων. Αριθµητική κινητής υποδιαστολής Στοιχεία y = ±m β e-t τα β και t είναι σταθερές του µοντέλου. Page 53 53
Σύστηµα F(β, t, e min, e max ) β: βάση e [e min, e max ] εκθέτης µήκους L εκθ t: αριθµός ψηφίων της ουράς m, L ουρά = t για δεδοµένο εκθέτη e, υποδηλώνει την ακρίβεια Σύνολο F = {0} {y y = ±m β e-t } Λογική αναπαράσταση Mantιssa = ουρά ή significand εκθέτης s m e Πεπερασµένη αναπαράσταση Ακρότατες τιµές y min = m min β emin-t y max = m max β emax-t Σύνολο G = {0} {x R: y min x y max } -y max 0 y max -y min y min Page 54 54
Κανονικοποίηση Ηαναπαράσταση δεν είναι µοναδική. Αυτό δηµιουργεί δυσκολίες π.χ. σε συγκρίσεις Η µοναδικότητα ανακτάται µε κανονικοποιηµένη αναπαράσταση: Το πρώτο ψηφίο της ουράς λαµβάνεται µη µηδενικό Ακρότατες τιµές Αν το σύστηµα κανονικοποιηµένο οι ακρότατες θετικές τιµές είναι y min = β emin-1 y max = β emax (1-β -t ) Έστω t=53, L(e) = 11, πόλωση 1023 e max = 2 11-1-1023=1024, e min = -1023 s 1 0 0 e min s 1 1 1 e max Page 55 55
Απεικόνιση R F fl: R F Τρείς περιπτώσεις για το y := fl(x) x Φ y = fl(x) x G υπερχείλιση ή υποχείλιση x G και x F προσέγγιση του x µε στοιχείο fl(x) F Απεικόνιση πραγµατικών σε ακυ R G F Page 56 56
Απεικόνιση πραγµατικών σε ακυ R x 1 x 2 x 4 x 3 G υποχείλιση F ακριβής αναπαράσταση προσέγγιση υπερχείλιση Απεικόνιση πραγµατικών σε ακυ R x G F Page 57 57
Τακτική κρυµµένου bit Άν β=2 και χρησιµοποιούµε κανονικοποίηση τότε το πρώτο bit της ουράς είναι πάντα ίσο µε 1. Μπορούµε να µην το αποθηκεύουµε αλλά να το εννοούµε όταν πρέπει να χρησιµοποιηθεί. Εξοικονοµείται µια θέση - σαν να έχουµε t+1 bits για την ουρά. Πρότυπο ακυ IEEE 754 Ορίζονται Παράµετροι για τον ορισµό των ακυ και περιορισµοί επ αυτών. Πράξεις +, -, *, /,, rem, σύγκριση Μετατροπές µεταξύ ακεραίων και ακυ Μετατροπές µεταξύ διαφόρων τύπων ακυ Μετατροπές µεταξύ ακυ και δεκαδικών Εξαιρέσεις αριθµητικής κυ και διαχείρισή τους Page 58 58
Page 59 59
Η «Τοπογραφία» της περιοχής Βασικές έννοιες ιανυσµατικοί χώροι υποχώροι, γραµµική ανεξαρτησία, βάσεις, διάσταση Μητρώα/πίνακες αλγεβρικές πράξεις, «ειδικός» πολλαπλασιασµός Γεωµετρία εσωτερικό γινόµενο, γωνία µεταξύ διανυσµάτων Γραµµική άλγεβρα και θεωρία µητρώων Linear algebra, linear analysis Matrix theory, matrix analysis Συγγενείς περιοχές Μαθηµατικά και Φυσική Συναρτησιακή ανάλυση, θεωρία τελεστών (operator theory), θεωρία διαταραχών. Επιστήµη Υπολογιστών Υπολογιστική γραµµική άλγεβρα, υπολογιστική µητρώων, αριθµητική ανάλυση, επιστηµονικός υπολογισµός, επαναληπτικές µέθοδοι επίλυσης γραµµικών συστηµάτων, αλγόριθµοι προσεγγίσης και παραµβολής, θεωρία και ανάλυση γράφων. Στατιστική Γραµµική παλινδρόµηση, principal component analysis Μηχανική ελέγχου και επεξεργασίας σηµάτων Θεωρία ευστάθειας, φίλτρα,... Page 60 60
Σώµατα και ιανυσµατικοί χώροι Ορίζεται επί ενός αλγεβρικού αντικειµένου Κ που ονοµάζεται «σώµα» ή «πεδίο»(field). Ιδιότητες σώµατος Κ: 1. Αν x, y K x+y K, xy K 2. Τα στοιχεία 0, 1 K 3. An x K x K και αν x 0 x -1 K Παραδείγµατα σώµατος: C: το σύνολο των µιγαδικών αριθµών R: το σύνολο των πραγµατικών αριθµών Q: το σύνολο των ρητών αριθµών Το σύνολο των φυσικών αριθµών Z δεν είναι σώµα Ένας διανυσµατικός χώρος V επί ενός σώµατος K ορίζεται ως ένα σύνολο στοιχείων (που ονοµάζουµε διανύσµατα) τέτοιο ώστε 1. u, v V u+v V 2. u V, α K α u V 3. u, v, w V (u+v)+w = u+(v+w) 4. 0 V τ.ώ. 0+u = u+0 = u u V 5. u V u V τ.ώ. u + (-u)=0 6. u, v V, u+v = v+u 7. Αν λ K λ (u+v)=λ u + λ v 8. Αν λ, µ K (λ+µ) u = λ u + µ u 9. Αν λ, µ K (λµ) u = λ (µ u) 10. u V, 1 u = u Ως σώµα λαµβάνεται συνήθως το R ή το C Page 61 61
Μια µαθηµατική υπενθύµιση Είναι εκπληκτικό πόσα πολλά µπορούν να ειπωθούν και τί θεωρίες να θεµελιωθούν χρησιµοποιώντας µόνον αυτές τις ιδιότητες Θεωρία γραµµικών ή διανυσµατικών χώρων... αν και ένας αλγεβριστής θα µπορούσε να πει ότι η παραπάνω δοµή είναι εξαιρετικά πλούσια. Για παράδειγµα, στη Θεωρία Οµάδων, οι µόνες ιδιότητες που υποθέτουµε από ένα σύνολο G εµπλουτισµένου µε µια πράξη «*» ως προς την οποία το σύνολο είναι «κλειστό», που µαζί χαρακτηρίζονται ως οµάδα, είναι: 1. Προσεταιριστικότητα: (x*y)*z = x*(y*z) x,y,z G 2. Ύπαρξη «µονάδας», e G: e*x = x*e = x x G 3. Ύπαρξη «αντιστρόφου»: x G y G τ.ώ. x*y=y*x=e Παράδειγµα: Το σύνολο των άρτιων ακεραίων είναι οµάδα ως προς την «+». ιανυσµατικοί/γραµµικοί χώροι Ορισµός γραµµικού χώρου Μερικές πολύ απλές ιδιότητες...... οικοδοµούν µια σηµαντική θεωρία. Page 62 62
Παρατήρηση Τα τριγωνικά µητρώα είναι µια κατηγορία ειδικών µητρώων Μητρώα µε ειδική δοµή ιαγώνια Τριγωνικά Τριδιαγώνια Συµµετρικά µητρώα Hessenberg Στοιχειώδη µητρώα Αραιά µητρώα Μητρώα Hilbert.. Page 63 63
Παρατήρηση Ηδιαδικασία απαλοιφής είναι ανεξάρτητη του δεξιού µέλους b: A (0) := A A (1) A (2) 2 1 1 4 6 0 2 7 2 2 1 1 0 8 2 0 8 3 2 1 1 0 8 2 0 0 1 Περιγραφή απαλοιφής µε µητρώα Καλούµε στοιχειώδη µητρώα όσα µπορούν να γραφτούν ως E(u, v; τ ) = I τuv >, u,v R n Με αυτόν τον τρόπο µπορούν να περιγραφούν σηµαντικές κατηγορίες µητρώων που επιδρούν µε ειδικό τρόπο στα δεδοµένα... Συνήθως µηδενίζοντας συγκεκριµένα στοιχεία δεδοµένων διανυσµάτων Page 64 64
Το µητρώο έχει τη µορφή Μερικές ιδιότητες E(u, v; τ )= 1 0 0 0 1 0. 0.... 0 1 η 1 τ η ³ 2. ψ1 ψ 2 ψn ηn Χρήσιµη ιδιότητα E(u,v;τ) E(u,v;σ) = E(u,v;τ+σ-τσ v > u) Ποιό είναι το «αντίστροφο µητρώο»; Page 65 65
Έστω το µητρώο A µε στοιχεία Και ότι πολλαπλασιάζουµε από τα αριστερά µε το A = L 1 = Προσέξτε τώρα α 11 α 12 α 13 α 21 α 22 α 23 α 31 α 32 α 33 1 0 0 α 21 /α 11 1 0 α 31 /α 11 0 1 Τότε λόγω της ειδικής µορφής του L_1 ο πολλαπλασιασµός µηδενίζει τα στοιχεία στις θέσεις (2,1) ως (3,1) L 1 A = α 11 α 12 α 13 0 α 22 α 21 α 12 /α 11 α 23 α 21 α 13 /α 11 0 α 32 α 31 α 12 /α 11 α 33 α 31 α 13 /α 11 Όµως το µητρώο L 1 µπορεί να γραφτεί ως: L 1 = 1 0 0 α 21 /α 11 1 0 α 31 /α 11 0 1 = 1 0 0 0 1 0 0 0 1 1 α 11 0 α 21 α 31 (1, 0, 0) Εποµένως είναι στοιχειώδες µητρώο: L 1 = E(u, e 1 ; α 1 11 ), u =(0, α 21, α 31 ) > Page 66 66
Σχετικά µε το κόστος Η πιο κλασική µέθοδος (απαλοιφή Gauss) για τον υπολογισµό όλων των στοιχείων του άγνωστου διανύσµατος x που ικανοποιεί το «γενικό τετραγωνικό γραµµικό σύστηµα» Ax=b όπου A R n n, x, b R n πρέπει να εκτελέσει Ω = ⅔ n 3 + O(n 2 ) αριθµητικές πράξεις (+,,, /). Παρατηρήσεις Συχνά, στην Επιστήµη των Υπολογιστών, το κόστος ενός αλγορίθµου µετράται µε το πλήθος των «κυρίαρχων» πράξεων και το χώρο αποθήκευσης. Στη Γραµµική Άλγεβρα και σε πολλές άλλες περιοχές, συνηθίζεται να µετράµε κατ αρχήν τις αριθµητικές πράξεις µεταξύ πραγµατικών αριθµών. Συνήθως ενδιαφερόµαστε να εκφράσουµε το πλήθος των πράξεων ως συνάρτηση κάποιου «χαρακτηριστικού µεγέθους» του προβλήµατος. Για την επίλυση τετραγωνικού συστήµατος, το χαρακτηριστικό µέγεθος είναι το πλήθος n των αγνώστων και εξισώσεων. Page 67 67
Παρατήρηση Στη Γραµµική Άλγεβρα, το κόστος σε αριθµητικές πράξεις της πλειονότητας των αλγορίθµων που χρησιµοποιούνται µπορούν να εκφραστούν ως πολυώνυµο του n, φ(n) = a k n k + a k-1 n k-1 + a 1 n + a 0 συνήθως το πολυώνυµο είναι χαµηλού βαθµού, δηλ. n = 2 ή 3. Ενίοτε, µπορεί να υπάρχουν και λογαριθµικοί όροι, π.χ. Φ(n) = 4n 2 log n +3n+2 Σχετικά µε το κόστος Για µεγάλες τιµές του n ο κυρίαρχος όρος θα είναι κατ ανάγκη εκείνος που αντιστοιχεί στο µέγιστο βαθµό: lim n φ(n)/n k = a k < ενώ lim n φ(n)/n k+1 = 0 και lim n φ(n)/n k-1 = Αν a k 0 τότε συντοµεύουµε και γράφουµε φ(n) = O(n k ) Εννοώντας ότι για µεγάλες τιµές του n, το κόστος µεγαλώνει σαν το n k ή «ασυµπτωτικά» η συνάρτηση µεγαλώνει όπως το n k Page 68 68
Ποιός είναι ο ελάχιστος χρόνος που χρειάζεται για να λύσουµε ένα γραµµικό σύστηµα n n σε έναν υπολογιστή που µπορεί να εκτελέσει Φ 10 6 αριθµητικές πράξεις/sec? Λέµε ότι ένας υπολογιστής εκτελεί Φ Mflops (Million floating-point operations /sec) Περίπου Ω/Φ 10-6 sec ελάχιστα sec's Ω/Φ/10^6 1 χρόνος 1,00E+10 1 µηνας 1,00E+08 1 ηµέρα 1,00E+06 1 ώρα 1,00E+04 seconds 1,00E+02 1,00E+00 1,00E-02 1 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 100 1000 10000 100000 1,00E-04 1,00E-06 1,00E-08 log_2 µεγέθους προβλήµατος Page 69 69
Ελάχιστες ανάγκες µνήµης Mbytes 1,00E+11 1,00E+10 1,00E+09 1,00E+08 1,00E+07 1,00E+06 1,00E+05 1,00E+04 1,00E+03 1,00E+02 1,00E+01 1,00E+00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 log_2 µεγέθους προβλήµατος Series1 Παρατηρήσεις Για µεγάλες τιµές του n η επίλυση του προβλήµατος µε την «κλασική» µέθοδο κοστίζει σε χρόνο και µνήµη από ένα µέγεθος και πέρα καθίσταται ανέφικτη Το µέγεθος εξαρτάται από την ισχύ του υπολογιστικού συστήµατος που χρησιµοποιούµε και προφανώς «αυξάνει κάθε 18 µήνες» (νόµος του Moore) Page 70 70
Παρατηρήσεις Αν και σε ορισµένες περιπτώσεις µπορούµε να βρούµε ειδικές µεθόδους που επιτυγχάνουν µικρότερο αριθµό πράξεων, απαιτούν σηµαντικό θεωρητικό υπόβαθρο, εφαρµόζονται κάτω από ειδικές συνθήκες, Παραδείγµατα Υπερταχείες µέθοδοι µε κόστος µικρότερο ή ίσο του Ο(n log 2 7 ) Επαναληπτικές µέθοδοι δεν είναι για το 1ο έτος! Αλλά: εν υπάρχει καµµία µέθοδος που να κοστίζει µόνον O(n 2 ) Πρόκληση: Πόσο κοντά µπορούµε να φθάσουµε στο O(n 2 ) µε µεθόδους που είναι «πρακτικές». Παρατήρηση Ηπροηγούµενη συζήτηση αφορούσε τη γενική περίπτωση συστήµατος, γιατί αν εξειδικεύσουµε µπορούµε να λύσουµε ένα σύστηµα και µε O(n) ή ακόµα και O(1) ή ακόµα και 0 πράξεις! Π.χ. 0 πράξεις αν το A είναι το «ταυτοτικό µητρώο» n πράξεις αν το Α είναι «διαγώνιο µητρώο» Page 71 71