ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ, ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Νάκος Αλέξανδρος Α.Μ.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ, ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Νάκος Αλέξανδρος Α.Μ."

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ, ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Νάκος Αλέξανδρος Α.Μ.: 4502 Τριδιαγώνιοι Επιλυτές για συνεπεξεργαστές: Προσαρμόζοντας τον g-spike από CUDA για GPU σε OpenMP για τον πολυπύρηνο Intel Xeon Phi Επιβλέπων Καθηγητής, Ευστράτιος Γαλλόπουλος Συνεπιβλέπων Δρ. Ιωάννης Βενέτης Συνεξεταστής Καθηγητής, Χρήστος Κακλαμάνης Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Ιούνιος 2016

2 Ευχαριστίες Με την ολοκλήρωση της Διπλωματικής Εργασίας μου θα ήθελα να ευχαριστήσω την ομάδα του HPCLab του Πανεπιστημίου Πατρών, στην οποία είχα το προνόμιο να ανήκω. Ιδιαίτερα θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή μου Ευστράτιο Γαλλόπουλο, που μου έδωσε την ευκαιρία να συμμετάσχω σε δημοσιεύσεις και δραστηριότητες των μελών του εργαστηρίου HPCLab και πάνω από όλα για την υπομονετική και πολύτιμη βοήθεια και υποδείξεις του πάνω στην συγγραφή του τελικού κειμένου. Ακόμα θα ήθελα να ευχαριστήσω τους Δρ. Ιωάννη Βενέτη, Αλέξανδρο Κουρή και Νίκο Νικολουτσάκο για την συνεργασία μας τόσο στην εργασία [26], που αποτέλεσε και προσωπικό έναυσμα για την Διπλωματική Εργασία αυτή, όσο και στο φοιτητικό διαγωνισμό του συνεδρίου HiPC 2015, καθώς μέσω αυτών εξοικειώθηκα με το υπολογιστικό σύστημα Intel Xeon Phi που αφορά την παρούσα εργασία. Τέλος θα ήθελα να ευχαριστήσω την οικογένεια μου για την υποστήριξη τους καθ όλη την διάρκεια της ζωής μου και τον αδερφικό μου φίλο Αλέξανδρο Παπαδάκη, που αποτέλεσε εκτός των άλλων και αφορμή να επιλέξω τον καθηγητή Ευστράτιο Γαλλόπουλο ως επιβλέποντα της Διπλωματικής Εργασίας μου. Νάκος Αλέξανδρος Πάτρα, 2016 ~ 2 ~

3 Περίληψη Στην εργασία μελετάται η αποδοτική υλοποίηση αλγορίθμου για την επίλυση γενικών τριδιαγώνιων γραμμικών συστημάτων σε συνεπεξεργαστή Intel Xeon Phi. Το ενδιαφέρον για το ζήτημα αυτό οφείλεται στο ότι πολλές επιστημονικές εφαρμογές, καθώς και σύνθετοι υπολογιστικοί πυρήνες όπως ο υπολογισμός ιδιοτιμών, απαιτούν χρήση τριδιαγώνιων επιλυτών οι οποίοι θα πρέπει να παρέχουν αξιόπιστα αποτελέσματα και να εκμεταλλεύονται αποδοτικά την αρχιτεκτονική του εκάστοτε παράλληλου συστήματος. Η χρήση συνεπεξεργαστών στο High Performance Computing (HPC) έχει πλέον εδραιωθεί και σχεδόν κάθε νέο υπερυπολογιστικό σύστημα στηρίζεται στην μεγάλη επεξεργαστική τους ισχύ καθώς και στα ενεργειακά τους πλεονεκτήματα σε σύγκριση με τις κλασικές κεντρικές μονάδες επεξεργασίας. Οι συνεπεξεργαστές αναμένεται να αποτελέσουν τον «ακρογωνιαίο λίθο» των υπερυπολογιστικών συστημάτων για τα επόμενα χρόνια και συνεπώς η ανάπτυξη λογισμικού για την αποδοτική χρήση τους αποτελεί ίσως μια από τις πιο σημαντικές προκλήσεις στον χώρο του HPC. Τόσο ο Intel Xeon Phi όσο και οι Μονάδες Επεξεργασίας Γραφικών (Graphics Processing Units ή GPUs) ανήκουν στις many-core αρχιτεκτονικές, οι οποίες παρέχουν μεγάλο πλήθος υπολογιστικών νημάτων στο επίπεδο υλικού. Για την επίτευξη υψηλής επίδοσης σε αυτές τις αρχιτεκτονικές απαιτείται προσεκτική επιλογή αλγορίθμου και ανάπτυξη λογισμικού, που να λαμβάνει υπόψη όλες τις δυνατότητες αλλά και τους περιορισμούς τις εκάστοτε αρχιτεκτονικής. Στην εργασία παρουσιάζεται λεπτομερώς ο αλγόριθμος g-spike για την επίλυση γενικών τριδιαγώνιων γραμμικών συστημάτων, καθώς επίσης και περιγραφή της υλοποίησης του αλγορίθμου για τον Intel Xeon Phi με στόχο την εξαγωγή συμπερασμάτων σχετικά με τις δυνατότητες αποδοτικής αξιοποίησης του νέου αυτού υπολογιστικού συστήματος για ένα σημαντικό γραμμοαλγεβρικό υπολογισμό που μπορεί να αποτελέσει πυρήνα πολλών εφαρμογών. Καθότι η εργασία αφορά αναπροσαρμογή υλοποίησης του g-spike σε CUDA για GPUs σε υλοποίηση για τον Intel Xeon Phi με χρήση OpenMP, θα παρουσιαστεί ακόμα το προγραμματιστικό μοντέλο CUDA της NVIDIA καθώς και οι ομοιότητες και διαφορές στις προσεγγίσεις των αντίστοιχων υλοποιήσεων του αλγορίθμου. Τέλος θα παρουσιαστούν αξιολογήσεις των πειραματικών δεδομένων για παραλλαγές της υλοποίησης για τον Intel Xeon Phi, καθώς και συγκρίσεις των υλοποιήσεων αυτών με υπάρχοντες επιλυτές. ~ 3 ~

4 Περιεχόμενα 1 ΕΙΣΑΓΩΓΗ ΠΕΡΑΙΤΕΡΩ ΕΡΓΑΣΙΕΣ Ο ΑΛΓΟΡΙΘΜΟΣ G-SPIKE ΓΕΝΙΚΗ ΠΕΡΙΓΡΑΦΗ ΠΡΟΕΠΕΞΕΡΓΑΣΙΑ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ Περιστροφές Givens Βήμα [i] - Τριγωνοποίηση διαγώνιων πλοκάδων Βήμα [ii] - Ανάκτηση Πλήρους Τάξης Βήμα [iii] - Δημιουργία των Spikes ΜΕΤΕΠΕΞΕΡΓΑΣΙΑ ΑΛΓΟΡΙΘΜΙΚΗ ΠΕΡΙΓΡΑΦΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ XEON PHI XEON PHI ΚΑΙ GPU: ΣΥΓΚΡΙΣΕΙΣ ΚΑΙ ΠΑΡΑΤΗΡΗΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΜΟΝΤΕΛΑ ΑΝΑΛΥΣΗ ΤΗΣ ΥΛΟΠΟΙΗΣΗΣ ΓΙΑ ΤΟΝ XEON PHI ΑΠΑΙΤΗΣΕΙΣ ΜΝΗΜΗΣ ΤΜΗΜΑΤΟΠΟΙΗΣΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΝΑΔΙΑΤΑΞΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ Βήμα [i] - Τριγωνοποίηση διαγώνιων πλοκάδων Βήμα [ii] - Ανάκτηση πλήρους τάξης Βήμα [iii] - Δημιουργία των Spikes ΜΕΤΕΠΕΞΕΡΓΑΣΙΑ ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΑΡΙΘΜΗΤΙΚΗ ΕΥΣΤΑΘΕΙΑ ΥΛΟΠΟΙΗΣΗΣ ΣΥΓΚΡΙΣΗ ΜΕΤΑΞΥ ΤΩΝ G-SPIKE ΥΛΟΠΟΙΗΣΕΩΝ ΓΙΑ ΤΟΝ XEON PHI ΠΕΡΙΠΤΩΣΗ ΙΔΙΑΖΟΥΣΩΝ ΠΛΟΚΑΔΩΝ ΚΛΙΜΑΚΟΣΙΜΟΤΗΤΑ ΥΛΟΠΟΙΗΣΗΣ ΣΥΓΚΡΙΣΗ ΜΕΤΑΞΥ ΤΟΥ G-SPIKE ΚΑΙ ΔΙΑΘΕΣΙΜΩΝ ΥΛΟΠΟΙΗΣΕΩΝ ΥΛΟΠΟΙΗΣΗ ΤΟΥ G-SPIKE ΓΙΑ ΠΟΛΛΑΠΛΑ ΔΕΞΙΑ ΜΕΛΗ ΣΥΜΠΕΡΑΣΜΑΤΑ ~ 4 ~

5 1 Εισαγωγή Ο τομέας της έρευνας και ανάπτυξης λογισμικού υψηλών επιδόσεων (High Performance Computing) προσελκύει το ενδιαφέρον πολλών ερευνητών και επιστημόνων καθώς υπάρχει μια συνεχής και αδήριτη ανάγκη για την επίλυση ολοένα μεγαλύτερων και περιπλοκότερων προβλημάτων με τη χρήση ηλεκτρονικού υπολογιστή. Κατά συνέπεια, απαιτείται ολοένα και μεγαλύτερη υπολογιστική ισχύς, κάτι που ωθεί επιλεγμένες εταιρίες Η/Υ να σχεδιάζουν και να αναπτύσσουν νέα συστήματα «υπερυπολογιστών». Παρόλες τις προόδους στην ανάπτυξη λογισμικού «φιλικού προς τον χρήστη» τα υπερυπολογιστικά συστήματα εξακολουθούν και δυσκολεύουν τους χρήστες. Αυτά τα συστήματα απαιτούν σημαντική προσπάθεια και εμπειρία στην ανάπτυξη λογισμικού που να αξιοποιεί στο μεγαλύτερο βαθμό τις δυνατότητες τους. Η συγγραφή τέτοιου λογισμικού απαιτεί καλή γνώση της εκάστοτε αρχιτεκτονικής του υλικού και τη σωστή επιλογή αλγορίθμου βάσει των αναγκών της εφαρμογής που υλοποιείται. Ένα σημαντικό συστατικό των σύγχρονων υπερυπολογιστικών συστημάτων είναι οι συνεπεξεργαστές (coprocessors). Πρόκειται για συστήματα με ιστορία εξέλιξης πολλών ετών που έχουν σαν στόχο να συμπληρώσουν τις δυνατότητες της κεντρικής επεξεργαστικής μονάδας. Για παράδειγμα, η ιδέα της χρήσης «μονάδων ειδικού σκοπού» (special purpose units) και «συνδεδεμένων επεξεργαστών» (attached processors) για εξειδικευμένους ταχείς υπολογισμούς είναι παλιά. Δείτε για παράδειγμα το βιβλίο [17]. Οι δυνατότητες που προσφέρουν σε ένα σύστημα, συμπληρώνοντας αυτές μιας κεντρικής μονάδας επεξεργασίας, είναι ουσιαστικά η μεγάλη επιτάχυνση εκτέλεσης κώδικα, κάτι το οποίο επιτυγχάνουν μέσω της υψηλής παραλληλίας σε επίπεδο αρχιτεκτονικής. Η χρήση συνεπεξεργαστών είναι ευρέως διαδεδομένη σήμερα, είτε αυτό αφορά μεγάλα υπερυπολογιστικά συστήματα είτε την επιτάχυνση εκτέλεσης χρονοβόρων υπολογιστικών πυρήνων σε ένα καθημερινό ηλεκτρονικό υπολογιστή, π.χ. για την επεξεργασία γραφικών. Η αρχιτεκτονική των σύγχρονων συνεπεξεργαστών είναι η λεγόμενη many-core αρχιτεκτονική γιατί σε αντίθεση με τις multi-core αρχιτεκτονικές, που βρίσκουμε σε μια σύγχρονη CPU, ο αριθμός των πυρήνων ξεπερνά κατά πολύ τους 4 ή 6 (π.χ. ο Intel Xeon E v4 [15]) και μπορεί να φτάσει τις μερικές χιλιάδες (π.χ. η NVIDIA Tesla K40 [16]). Αυτό έχει ως συνέπεια το ότι για την αξιοποίηση τους απαιτείται η χρήση κώδικα που είναι παραλληλοποιήσιμος σε πολύ μεγαλύτερο βαθμό από τους κώδικες που μπορούν να εκτελεστούν αποδοτικά σε multi-core τοπικά συστήματα, καθώς η χρήση είτε σειριακού είτε κώδικα που δεν μπορεί να παραλληλοποιηθεί αποδοτικά θα απέδιδε χειρότερα από ότι σε μία CPU. Τα περισσότερα υπερυπολογιστικά συστήματα βασίζονται σε μεγάλο βαθμό τόσο στην επεξεργαστική ισχύ, όσο και στο γεγονός ότι έχουν σχετικά χαμηλή κατανάλωση ενέργειας. Στο χώρο των συνεπεξεργαστών έχουν επικρατήσει οι μονάδες επεξεργασίας γραφικών (GPUs) και κυρίως η NVIDIA (εφεξής απλά NVIDIA) με την προγραμματιστική διεπαφή CUDA. Παρόλα αυτά το 2010 η Intel έδωσε την δική της απάντηση με τον συνεπεξεργαστή Intel Xeon Phi (χάριν συντομίας θα αναφέρεται εφεξής ως «Xeon Phi») ο οποίος είχε τελείως διαφορετική προσέγγιση στην αρχιτεκτονική του και συνεπώς και στο προγραμματιστικό του μοντέλο. Καθώς κοινό στοιχείο των συνεπεξεργαστών για την αποδοτική τους χρήση αποτελεί η ανάγκη ο κώδικας προς εκτέλεση να προσφέρει δυνατότητες εκτεταμένης παραλληλοποίησης, ο προγραμματιστής θα πρέπει να είναι ~ 5 ~

6 προσεκτικός τόσο κατά την επιλογή κατάλληλου αλγορίθμου όσο και κατά την υλοποίηση του αλγορίθμου αυτού για την εκάστοτε αρχιτεκτονική. Στον τομέα της ανάπτυξης λογισμικού υψηλών επιδόσεων, ζωτικής σημασίας είναι η χρήση αποδοτικών υπολογιστικών πυρήνων. Μια σημαντική κατηγορία αυτών είναι κώδικες που υλοποιούν γραμμοαλγεβρικές πράξεις, από τις πιο στοιχειώδεις (όπως αυτοί των διαφόρων υλοποιήσεων του API BLAS) ως και ποιο σύνθετες (όπως των βιβλιοθηκών LAPACK, ScaLAPACK [1], Elemental [19], PETSc [24] και Trilinos [25]). Για αυτό και άλλωστε για κάθε νέα τεχνολογική ανάπτυξη στον τομέα υλικού συχνά απαιτείται αναπροσαρμογή ή και ανάπτυξη νέας βιβλιοθήκης λογισμικού για την όσο πιο αποδοτική εκτέλεση τέτοιων πράξεων. Στην κατηγορία αυτή ανήκουν και οι επιλυτές γραμμικών συστημάτων. Μια σημαντική κατηγορία αυτών των επιλυτών είναι οι «επιλυτές ζώνης» (banded solvers) και ειδική περίπτωση αυτών είναι οι «τριδιαγώνιοι επιλυτές», δηλαδή αλγόριθμοι και υλοποιήσεις τους για την επίλυση γραμμικών συστημάτων όπου το μητρώο των συντελεστών του συστήματος έχει τριδιαγώνια μορφή. Για την επίλυση συστημάτων ζώνης σε πολυπύρηνες αρχιτεκτονικές, ειδική περίπτωση των οποίων αποτελούν τα τριδιαγώνια συστήματα, έχει προταθεί ο αλγόριθμος Spike (βλέπε [2,6]). Ο αλγόριθμος διαμοιράζει τον υπολογιστικό φόρτο που απαιτείται για την επίλυση του συστήματος σε υπολογιστικές μονάδες οι οποίες θα λειτουργούν αυτόνομα. Περιγράφεται σε υψηλό αφαιρετικό επίπεδο, ορίζοντας 2 στάδια εκτέλεσης τα οποία είναι αυτόνομα και μπορούν να υλοποιηθούν με διαφορετικούς τρόπους. Έτσι μπορούμε να τα προσαρμόσουμε κάθε φορά, τόσο με βάση την καλύτερη αξιοποίηση της αρχιτεκτονικής του υπολογιστικού συστήματος όσο και με βάση τα χαρακτηριστικά του προβλήματος που εμείς θέλουμε να λύσουμε. Οι τριδιαγώνιοι επιλυτές χρησιμοποιούνται σε πολλούς αλγορίθμους και επιστημονικές εφαρμογές (βλέπε [23] σελ ), καθώς υπάρχουν πολλές περιπτώσεις τριδιαγώνιων συστημάτων όσο και περιπτώσεις όπου το μητρώο είναι σχεδόν τριδιαγώνιο και η λύση μπορεί να υπολογιστεί, μετά από κατάλληλη αναδιαμόρφωση του, βάσει επαναληπτικών κλήσεων σε τριδιαγώνιο επιλυτή και επιμέρους διορθώσεων. Σε πολλές περιπτώσεις τα μητρώα αυτά έχουν ιδιότητες όπως είναι η διαγώνια κυριαρχία ή συμμετρία και θετική ορισιμότητα, κάτι που επιτρέπει την χρήση ακόμα πιο εξειδικευμένων αλγορίθμων οι οποίοι αξιοποιούν τις ιδιότητες αυτές τόσο για την ταχύτερη επίλυση των συστημάτων όσο και για την βελτιστοποίηση του σφάλματος της επίλυσης (βλέπε π.χ. τις σχετικές αναφορές στις μεθόδους Cyclic Reduction, Recursive Doubling και παραλλαγές τους στο κεφάλαιο 3 του [6]). Στη διπλωματική αυτή μας ενδιαφέρει η επίλυση γενικών τριδιαγώνιων συστημάτων, για τα οποία δεν μπορούμε εκ των προτέρων να υποθέσουμε κάποιες από τις παραπάνω ιδιότητες που επιτρέπουν τη χρήση πιο εξειδικευμένων επιλυτών 1. Εμείς συγκεκριμένα θα ασχοληθούμε με επιλυτή γενικού τριδιαγώνιου συστήματος. Το ενδιαφέρον μας για το θέμα ξεκίνησε με αφορμή την εργασία [11] η οποία αφορά την υλοποίηση γενικού τριδιαγώνιου επιλυτή για GPUs. Ο αλγόριθμος που χρησιμοποιήθηκε είχε «Spike-like» χαρακτηριστικά, χώριζε επομένως το σύστημα σε πλοκάδες τις οποίες επίλυε αυτόνομα. Το πρόβλημα του αλγορίθμου είναι πως εφόσον η τμηματοποίηση δεν λαμβάνει υπόψη τα χαρακτηριστικά κάθε υπομητρώου επί της διαγωνίου, κάποιο από αυτά θα μπορούσε να είναι ιδιάζον και η μέθοδος να αστοχήσει. Αυτό αποτέλεσε έμπνευση για την δουλειά που έγινε στην εργασία [7] και η οποία στην συνέχεια αποτέλεσε εφαλτήριο για την εργασία 1 Για να είμαστε ακριβείς, στον επιλυτή που παρουσιάζουμε θα θεωρήσουμε ότι το τριδιαγώνιο μητρώο είναι μη αναγώγιμο (irreducible). Η υπόθεση αυτή όμως είναι διαφορετικού τύπου καθώς απαιτεί μόνον έναν εύκολο έλεγχο και σε περίπτωση που το μητρώο αποδειχθεί αναγώγιμο, μίαν εύκολη προσαρμογή του επιλυτή. ~ 6 ~

7 [26] η οποία παρουσιάστηκε στο συνέδριο ParCo 2015 [27]. Η συμμετοχή μου στην εργασία [26], αποτέλεσε προσωπικό έναυσμα αρκετών από των ιδεών που παρουσιάζονται στα κεφάλαια 4 και 5, που αφορούν το κομμάτι της υλοποίησης. Η παρούσα διπλωματική, με βάση το θεωρητικό υπόβαθρο και τις τεχνικές υλοποίησης που χρησιμοποιήθηκαν για την ολοκλήρωση της [7], επεκτείνει το θέμα περαιτέρω παρουσιάζοντας δύο αντίστοιχες υλοποιήσεις του αλγορίθμου για το σύστημα Xeon Phi, ενώ ακόμα επιλύει τα προβλήματα της υλοποίησης της [26] και απαντά σε πολλά ερωτήματα τα οποία δεν διερευνήθηκαν επαρκώς σε αυτή. Ο αλγόριθμος με τον οποίο θα ασχοληθούμε στην παρούσα Διπλωματική Εργασία βασίζεται σε μία πρώιμη εκδοχή του «πολυαλγορίθμου» Spike 2 που αποτελεί σήμερα μία από τις σημαντικότερες μεθόδους επίλυσης μεγάλων γενικών γραμμικών συστημάτων με σύνθετα «κατά πλοκάδες τριδιαγώνια» μητρώα (block tridiagonal systems) και γενικότερα με δομή ζώνης (banded linear systems). Βλέπε [2,6,30] καθώς και την ενότητα 4.5 του συγγράμματος [29] που αποτελεί βασική αναφορά στην περιοχή των υπολογισμών μητρώων. Όπως εξηγήθηκε στην [7], όπου επανεξετάστηκε και υλοποιήθηκε για πρώτη φορά μέσω CUDA για μονάδες επεξεργασίας γραφικών (GPUs) ο πρωτοποριακός αυτός αλγόριθμος, η μέθοδος Spike σχεδιάστηκε για την βελτίωση της αριθμητικής ευστάθειας ενός παράλληλου τριδιαγώνιου επιλυτή που παρουσιάστηκε από τους A.H. Sameh και D.J. Kuck στην [3]. Παραπέμπουμε στο κεφάλαιο 3 της μονογραφίας [6] για περισσότερες πληροφορίες. Η πρώιμη εκδοχή του [3] σχεδιάστηκε εκ νέου και υλοποιήθηκε, με το όνομα g-spike, για μονάδες επεξεργασίας γραφικών (GPUs) (εργασία [7]), με χρήση της προγραμματιστικής διεπαφής CUDA. Συγκεκριμένα η Διπλωματική Εργασία αφορά στην σχεδίαση και υλοποίηση αναπροσαρμογών του g- spike, για την αποδοτική του εκτέλεση στο υπολογιστικό σύστημα Xeon Phi με χρήση OpenMP και του Intel C++ Compiler. Θα αναφερθούμε αναλυτικά στα χαρακτηριστικά της αρχιτεκτονικής του Xeon Phi τα οποία έχουν άμεσο αντίκτυπο στο προγραμματιστικό μοντέλο που κανείς θα πρέπει να χρησιμοποιήσει για την αποδοτική χρήση του συστήματος και θα παρουσιαστούν δύο προσεγγίσεις της υλοποίησης του g-spike για τον Xeon Phi. Ακόμα θα συγκρίνουμε την αρχιτεκτονική των GPUs και του Xeon Phi με στόχο την ανάδειξη των διαφορών του προγραμματιστικού μοντέλου που πρέπει να ακολουθείται για το κάθε σύστημα και θα παρουσιαστεί ένας τρόπος «παντρέματος» των δύο υπολογιστικών μοντέλων με στόχο την πιο αποδοτική και εύκολη μεταφορά κώδικα από το ένα σύστημα στο άλλο. Τέλος θα συγκρίνουμε την ταχύτητα εκτέλεσης του g-spike στον Xeon Phi με υπάρχουσες υλοποιήσεις επιλυτών τριδιαγώνιων και ταινιακών συστημάτων για τον Xeon Phi. Οι μέχρι στιγμής διαθέσιμες υλοποιήσεις για τον Xeon Phi είναι αυτές της βιβλιοθήκης MKL [12] και περιλαμβάνουν υλοποιήσεις των συναρτήσεων των βιβλιοθηκών LAPACK [13] και ScaLAPACK [14]. Συγκεκριμένα πρόκειται για τις συναρτήσεις pdgbsv και pddtsv της ScaLAPACK για γενικά ταινιακά συστήματα και τριδιαγώνια συστήματα με διαγώνια κυριαρχία αντίστοιχα, ενώ από την LAPACK έχουμε την συνάρτηση dgtsv για γενικά τριδιαγώνια συστήματα, που είναι ακριβώς η ίδια περίπτωση για την οποία ο g-spike απευθύνεται προσφέροντας μια παράλληλη και αριθμητικά ευσταθή προσέγγιση. Πολύ γνωστές βιβλιοθήκες για την αποδοτική επίλυση γραμμοαλγεβρικών προβλημάτων είναι επίσης η MAGMA [18] και Elemental [19], καμία εκ των δύο όμως δεν διαθέτει συναρτήσεις ειδικά για την επίλυση τριδιαγώνιων ή γενικότερων ταινιακών συστημάτων (βλέπε [20], [21]). Συγκεκριμένα και οι δύο βιβλιοθήκες επικεντρώνονται κυρίως στην 2 Αναφέρεται και ως «πλαίσιο Spike (Spike framework). ~ 7 ~

8 επίλυση πυκνών γραμμικών συστημάτων και άλλων πυκνών γραμμοαλγεβρικών προβλημάτων και εκ των δύο μόνον η MAGMA έχει σχεδιαστεί για την αποδοτική χρήση συνεπεξεργαστών, όπως GPUs και (μόλις πρόσφατα) του Xeon Phi. Θα πρέπει να σημειώσουμε επίσης ότι παρότι η MAGMA υποστηρίζει την χρήση συνεπεξεργαστών, είναι αμφίβολο το αν ποτέ θα υπάρξει τριδιαγώνιος ή έστω ταινιακός επιλυτής στην βιβλιοθήκη αυτή, καθότι χρησιμοποιεί υβριδικό μοντέλο εκτέλεσης το οποίο είναι κατάλληλο για προβλήματα υπολογιστικής έντασης (compute intensive) και μπορούν να επωφεληθούν τόσο από την εκτέλεση στην CPU όσο και από την εκτέλεση στους συνεπεξεργαστές, με το κόστος μεταφοράς των δεδομένων να είναι μικρό συγκριτικά με το υπολογιστικό όφελος. Τέλος αξίζει να σημειωθεί η υλοποίηση SPIKE [22] με υπεύθυνους τους ίδιους τους δημιουργούς του αλγόριθμου SPIKE, Eric Polizzi και Ahmed Sameh. Αποτελέσματα της υλοποίησης αυτής δεν παρουσιάζονται στην εργασία 3, καθότι είναι σχεδιασμένη για ταινιακά συστήματα σχετικά μεγάλου εύρους ζώνης, για την επίλυση των οποίων εκτελείτε μία επαναληπτική μέθοδος επιδιόρθωσης της επίλυσης, ενώ επιπλέον δεν έχει υλοποιηθεί με γνώμονα συστήματα όπως είναι ο Xeon Phi. 1.1 Περαιτέρω εργασίες Η εργασία [26] αφορά την πρώτη προσπάθεια αναπροσαρμογής του g-spike (σε CUDA) για την αποδοτική του εκτέλεση στο υπολογιστικό σύστημα Xeon Phi, στην οποία είχα το προνόμιο να συμμετάσχω 4. Η εργασία αυτή αποτέλεσε την πρώτη μου συμμετοχή σε δημοσίευση, καθώς και την πρώτη μου επαφή με το σύστημα Xeon Phi. Η υλοποίηση που παρουσιάζεται στην παρούσα Διπλωματική Εργασία, καθώς και τα αποτελέσματα αυτής, θα παρουσιαστούν επίσης και στο συνέδριο PMAA 2016 [23] με ομιλητή τον Δρ. Ιωάννη Βενέτη. 3 Ευχαριστώ τον καθηγητή Eric Polizzi που ανταποκρίθηκε αμέσως στο αίτημά μου και έστειλε τους σχετικούς κώδικες. 4 Θα ήθελα να ευχαριστήσω τον Δρ. Ιωάννη Βενέτη και τον επιβλέποντα καθηγητή μου Ευστράτιο Γαλλόπουλο για την ευκαιρία να συμμετάσχω για πρώτη φορά σε δημοσίευση. ~ 8 ~

9 2 Ο αλγόριθμος g-spike Ο αλγόριθμος g-spike υλοποιήθηκε για την επίλυση τριδιαγώνιων γραμμικών συστημάτων και χρησιμοποιεί περιστροφές Givens κατά την φάση παραγοντοποίησης. Μια πιο εκτεταμένη αναφορά στην οικογένεια των αλγορίθμων spike καθώς και την δυνατότητα επίλυσης του ελαττωμένου συστήματος με τη χρήση αναδρομής υπάρχει στο βιβλίο [6] καθώς και στην εργασία [3] που ήταν η αφετηρία των μεθόδων αυτών. Ο αλγόριθμος g-spike, στη μορφή που παρουσιάζουμε εδώ, και η υλοποίηση του σε περιβάλλον CUDA για GPUs αποτέλεσε το θέμα της διπλωματικής εργασίας [4] και του άρθρου [7]. 2.1 Γενική περιγραφή Έστω γραμμικό σύστημα Ax = f όπου Α R n n τριδιαγώνιο μητρώο, f R n το διάνυσμα δεξιού μέλους και x R n το διάνυσμα αγνώστων. Υποθέτουμε ότι το Α είναι αντιστρέψιμο καθώς και μη αναγώγιμο (τα στοιχεία στην 1 η υπο- και υπερδιαγώνιο είναι αρκούντος μακριά από το μηδέν). Στο Σχήμα 1 παρουσιάζεται ένα τέτοιο σύστημα. Θεωρούμε παράλληλο σύστημα με p μονάδες επεξεργασίας/πυρήνες, όπου υποθέτουμε ότι p << n. Ο αλγόριθμος χωρίζεται σε 3 βασικά στάδια: 1) Προεπεξεργασία: Το σύστημα χωρίζεται σε p τμήματα μεγέθους m j m j, όπου j = 1 p και κάθε τμήμα ανατίθεται σε ένα πυρήνα. 2) Παραγοντοποίηση: Το σύστημα παραγοντοποιείται στη μορφή AP μ = DS. Αρχικά το μητρώο μετατρέπεται σε «σχεδόν» άνω τριγωνική μορφή μέσω παραγοντοποίησης QR με χρήση περιστροφών Givens. Με αυτόν τον τρόπο δίνεται η δυνατότητα «ανάκτησης πλήρους τάξης» των άνω τριγωνικών μητρώων R j μέσω πολλαπλασιασμού με κατάλληλο μητρώο P μ. 3) Μετεπεξεργασία: Γίνεται εξαγωγή του ελαττωμένου συστήματος, το οποίο αναδιατάσσεται σε τριδιαγώνια μορφή και επιλύεται είτε μέσω αναδρομικού αλγορίθμου είτε σειριακά. Τέλος ανακτάται η πλήρης λύση μέσω πίσω αντικατάστασης. α 1,1 α 1,2 ξ 1 φ 1 α 2,1 α 2,2 α 2,3 ξ 2 φ 2 = a n 1,n ( α n,n 1 α n,n ) ( ξ n ) ( φ n ) Σχήμα 1: Τριδιαγώνιο σύστημα Ax = f ~ 9 ~

10 2.2 Προεπεξεργασία Το σύστημα τμηματοποιείται όπως φαίνεται στο Σχήμα 2, όπου στην τυπική περίπτωση p είναι το πλήθος των πυρήνων και κάθε τμήμα ανατίθεται σε ένα πυρήνα. Οι υπο- και υπερ-διαγώνιες πλοκάδες είναι B j = a jm,jm+1 e m e 1 T και C j+1 = a jm+1,jm e 1 e m T, όπου e 1, e m είναι διανύσματα της τυπικής βάσης, δηλαδή οι στήλες 1 και m του ταυτοτικού μητρώου I m αντίστοιχα. Επομένως τα υπομητρώα B j και C j+1 περιέχουν ένα μόνο μη μηδενικό στοιχείο στην κάτω αριστερά και πάνω δεξιά γωνία αντίστοιχα. Στη βιβλιογραφία [6] η τμηματοποίηση αυτή χαρακτηρίζεται συχνά ως τμηματοποίηση Spike. Όπως αναφέραμε υποθέτουμε ότι το μητρώο Α είναι αντιστρέψιμο, αλλά αυτό δεν μας εγγυάται την αντιστρεψιμότητα των A i, i = 1 p πλοκάδων. Το σύνολο των μη-αντιστρέψιμων πλοκάδων Α i θα το ονομάσουμε Δ. A 1 B 1 C 2 A 2 B p 1 ( C p A p ) x 1 x 2 f 1 f ( ) = ( 2 ), x p f p Σχήμα 2: Τμηματοποιημένο τριδιαγώνιο σύστημα 2.3 Παραγοντοποίηση Σε αυτό το στάδιο το μητρώο A παραγοντοποιείται στην μορφή AP μ = DS, η οποία παρουσιάζεται στο αντίστοιχο υποκεφάλαιο «iii) Δημιουργία των Spikes». Η παραγοντοποίηση πραγματοποιείται σε 3 επιμέρους βήματα: i. Μετατροπή των διαγώνιων πλοκάδων σε άνω τριγωνική μορφή μέσω ορθογώνιων μετασχηματισμών με χρήση περιστροφών Givens. Πρόκειται για την παραγοντοποίηση QR των υπομητρώων που βρίσκονται κατά μήκος της διαγωνίου και τα οποία θα ονομάζουμε χάριν συντομίας «διαγώνια υπομητρώα», παρόλο που δεν είναι διαγώνιας μορφής. Στο τέλος αυτού του βήματος βάσει της πρότασης 1 που αναφέρουμε στο αντίστοιχο υποκεφάλαιο, αποκαλύπτεται η τάξη κάθε «διαγώνιου υπομητρώου». Όπως θα δούμε επίσης, λόγω της προϋπόθεσης ότι το Α είναι μη αναγώγιμο και αντιστρέψιμο, η τάξη κάθε «διαγώνιου υπομητρώου» είναι m i ή m i 1. ii. Εφαρμογή κατάλληλου μετασχηματισμού για την ανάκτηση πλήρους τάξης των «διαγώνιων υπομητρώων» εκείνων που κατά την διάρκεια του βήματος i αποκαλύφθηκε πως έχουν τάξη m i 1. iii. Δημιουργία των spikes λύνοντας τα συστήματα R i v i = v i και R i w i = w. i ~ 10 ~

11 2.3.1 Περιστροφές Givens Μητρώα περιστροφών Givens ονομάζονται μητρώα της μορφής: I k 1 c k s k G k (ξ k, ξ k+1 ) =, ( s k c k I n k 1) όπου c k = ξ k ξ 2 2 k +ξ k+1, s k = ξ k+1 ξ 2 2 k +ξ k+1 Σχήμα 3: Μητρώο περιστροφών Givens, k = 1,, n 1. Εκ κατασκευής τα μητρώα αυτά είναι ορθογώνια. Όπως θα δούμε σε κάθε βήμα k = 1,2,, m 1 της παραγοντοποίησης ενός τριδιαγώνιου υπομητρώου με περιστροφές Givens, το στοιχείο ξ k+1 θα είναι η τιμή που βρίσκεται στην υποδιαγώνιο και η οποία θα μηδενιστεί μετά την εφαρμογή της περιστροφής G k (ξ k, ξ k+1 ). Θα γράφεται ως G k όταν οι τιμές (ξ k, ξ k+1 ) είναι προφανείς. Εφαρμόζοντας διαδοχικά τις περιστροφές αυτές στο τριδιαγώνιο μητρώο A, αυτό τροποποιείται σε άνω τριγωνική μορφή. Εν τέλει προκύπτει η παραγοντοποίηση A = QR με Q = G k G k 1 G 1 και R άνω τριγωνικό μητρώο που έχει προέλθει από το A μετά το μετασχηματισμό. Όπως έχει παρατηρηθεί στη βιβλιογραφία χρειάζεται ιδιαίτερη προσοχή στην υλοποίηση του εν λόγω υπολογισμού για την αποφυγή σφαλμάτων υπερχείλισης [5] Βήμα [i] - Τριγωνοποίηση διαγώνιων πλοκάδων Σχήμα 4: Στα αριστερά παρουσιάζεται το τριδιαγώνιο μητρώο αμέσως μετά την εφαρμογή περιστροφών Givens και στα δεξιά το ίδιο μητρώο μετά την ανάκτηση πλήρους τάξης της πρώτης πλοκάδας ~ 11 ~

12 Η διαδικασία που περιγράφεται στο υποκεφάλαιο εφαρμόζεται ανεξάρτητα σε κάθε πυρήνα στο υπομητρώο που του αντιστοιχεί. Στο Σχήμα 4 δίνεται παράδειγμα χρησιμοποιώντας «διαγράμματα Wilkinson» για την ανάθεση των μη μηδενικών τιμών του μητρώου. Στο παράδειγμα αυτό το μέγεθος του αρχικού μητρώου είναι n = 12 και έχει γίνει τμηματοποίηση σε p = 3 τμήματα ίσου μεγέθους m = 4 το καθένα και το τελικό μητρώο που προκύπτει είναι της μορφής που παρουσιάζεται. Στα αριστερά του σχήματος βλέπουμε το σύστημα αμέσως μετά την εφαρμογή των περιστροφών Givens, τα μηδενικά στο κάτω δεξιό άκρο της διαγωνίου στις πλοκάδες σημαίνει ότι το αντίστοιχο «διαγώνιο υπομητρώο» είναι μη-αντιστρέψιμο. Στα δεξιά βλέπουμε την ανάκτηση πλήρους τάξης του πρώτου «διαγώνιου υπομητρώου» προσθέτοντας τα στοιχεία της 5 ης στήλης, κάτι το οποίο εκτελείται στο επόμενο βήμα που περιγράφεται στο υποκεφάλαιο Οι παρακάτω προτάσεις είναι κρίσιμες για να γίνει κατανοητή η λειτουργία του g-spike [3, 4, 6]: Πρόταση 1. [3] Έστω αντιστρέψιμο τριδιαγώνιο μητρώο A τάξης n = pm. Έστω η τμηματοποιημένη μορφή του σε κατά πλοκάδες τριδιαγώνια μορφή αποτελούμενη από p πλοκάδες μεγέθους m η κάθε μία και υπομητρώα τάξης 1 εκτός της διαγωνίου. Τότε όλα τα διαγώνια υπομητρώα A i, i = 2.. p 1 είναι τάξης τουλάχιστον m 2, ενώ για i = 1, p έχουν τάξη τουλάχιστον m 1. Αν το μητρώο είναι και μη-αναγώγιμο τότε όλα τα διαγώνια υπομητρώα θα είναι τάξης τουλάχιστον m 1, και επίσης το συνημίτονο c m 1 της τελευταίας περιστροφής Givens θα είναι μη μηδενικό. Πρόταση 2. [3] Έστω τριδιαγώνιο μητρώο A μεγέθους m, μη-αναγώγιμο και ιδιάζον. Τότε εφαρμόζοντας οποιουδήποτε είδους παραγοντοποίηση QR η τελευταία γραμμή του R θα είναι μηδενική και το στοιχείο (R) m,m = 0 θα είναι το μόνο μηδενικό στοιχείο στη διαγώνιο του R. Εάν εφαρμοστεί QR μέσω περιστροφών Givens τότε το R θα είναι άνω τριγωνικό και ταινιακό με εύρος ζώνης ίσο με 3. Για το σύστημα εισόδου υποθέτουμε ότι το μητρώο είναι μη-αναγώγιμο. Αν δεν είναι τότε μπορεί να προηγηθεί έλεγχος και το πρόβλημα να μοιραστεί σε μικρότερα υποπροβλήματα που στη συνέχεια θα επιλυθούν αυτόνομα. Στα πλαίσια αυτής της εργασίας θεωρούμε ότι το μητρώο εισόδου είναι μηαναγώγιμο. Υπογραμμίζουμε όμως ότι οι παραπάνω προτάσεις αναφέρονται σε αριθμητική άπειρης ακρίβειας, καθώς στην πράξη λόγω της αριθμητικής κινητής υποδιαστολής είναι αναμενόμενο ότι το στοιχείο (R j ) m,m δεν θα είναι ακριβώς μηδέν ακόμα και όταν το A i είναι ιδιάζον. Αντί αυτού θεωρούμε ότι θα είναι κάποιο πολύ μικρό κατά απόλυτη τιμή στοιχείο. Έτσι ο έλεγχος για τη μη-αντιστρεψιμότητα του R j πραγματοποιείται με βάση κάποιο κατώφλι κοντά στο μηδέν σε σχέση με την αριθμητική ακρίβεια κινητής υποδιαστολής της μηχανής Βήμα [ii] - Ανάκτηση Πλήρους Τάξης Όπως είδαμε στο Σχήμα 4, το πρώτο υπομητρώο του μητρώου εδώ αποκαλύφθηκε ότι είναι ιδιάζον μετά την παραγοντοποίηση QR (δεξιά στο σχήμα). Η ανάκτηση πλήρους τάξης πραγματοποιήθηκε προσθέτοντας την αμέσως επόμενη στήλη δεξιά του μηδενικού στοιχείου, στην στήλη του στοιχείου αυτού (αριστερά στο σχήμα). Το στοιχείο (R j ) m,m (που βρίσκεται στα δεξιά του μηδενικού στοιχείου και ~ 12 ~

13 το οποίο προστίθεται σε αυτό) αποδεικνύεται ότι θα είναι μη μηδενικό λόγω της πρότασης 1, που παρουσιάστηκε στην προηγούμενη ενότητα. Συνεπώς η υπόθεση ανάκτησης τάξης μέσω αυτής της μεθόδου είναι ορθή. Στο συγκεκριμένο παράδειγμα το σύνολο των μη-αντιστρέψιμων «διαγώνιων υπομητρώων» είναι Δ = {Α 1, Α 3 }. Σημειώνονται δύο σημαντικές παρατηρήσεις: i) Η μετατροπή αυτή δεν επηρεάζει την ειδική δομή του μητρώου, το οποίο παραμένει άνω τριγωνικό και ζώνης. ii) Τα στοιχεία που προστίθενται βρίσκονται εκτός του R, που σημαίνει ότι δεν υπάρχει γραμμική εξάρτηση μεταξύ των στηλών του R 1 μετά από αυτή την τάξης-2 διατάραξη. Η τάξη της διατάραξης αντιστοιχεί στο πλήθος των μη-αντιστρέψιμων «διαγώνιων υπομητρώων». Για την αποφυγή φαινομένων καταστροφικής απαλοιφής, γίνεται πολλαπλασιασμός της στήλης που προστίθεται με το πρόσημο του στοιχείου (R 1 ) m,m. Η μέθοδος αυτή γενικεύεται για κάθε ιδιάζουσα διαγώνια πλοκάδα, πλην της τελευταίας, στην παρακάτω πρόταση. Πρόταση 3. Έστω τριδιαγώνιο, αντιστρέψιμο και μη-αναγώγιμο μητρώο A που έχει υποστεί την κατά πλοκάδες QR παραγοντοποίηση με χρήση περιστροφών Givens που περιγράψαμε στο βήμα (i) (τριγωνοποίηση διαγώνιων πλοκάδων) και τέτοιο ώστε το A p να είναι αντιστρέψιμο. Έστω Δ = {j (R j ) m,m = 0, j p} το σύνολο των μη-αντιστρέψιμων διαγώνιων πλοκάδων του μητρώου. Τότε αν θέσουμε P μ = I n + υπομητρώα». {j Δ} e jm+1 e jm, το μητρώο AP μ θα έχει αντιστρέψιμα «διαγώνια Ειδική περίπτωση αποτελεί το τελευταίο «διαγώνιο υπομητρώο» να είναι ιδιάζον και στο επόμενο υποκεφάλαιο «Δημιουργία των Spikes» αναφερόμαστε στον τρόπο διαχείρισης αυτής της περίπτωσης Βήμα [iii] - Δημιουργία των Spikes Σχήμα 5: Παραγοντοποίηση τριδιαγώνιου μητρώου Α στην μορφή DS ~ 13 ~

14 Σχήμα 6: (a): Παραγοντοποιημένο μητρώο στη γενική περίπτωση (b): Παραγοντοποιημένο μητρώο όταν η τελευταία πλοκάδα είναι ιδιάζον Σκοπός του βήματος αυτού είναι η παραγοντοποίηση του μητρώου στη μορφή AP μ = DS, όπως βλέπουμε και στο Σχήμα 5. Το D αποτελείται από τις διαγώνιες πλοκάδες του A μετά τη διατάραξη από το μητρώο P μ. Το μητρώο S είναι το Spike μητρώο, αλλά σε αντίθεση με τον Spike αλγόριθμο για συστήματα ζώνης, τα Spikes w, v είναι διανύσματα και όχι μητρώα επειδή το A είναι τριδιαγώνιο μητρώο. Σε αυτό το βήμα θεωρούμε ότι έχουν προηγηθεί τα προηγούμενα δύο, δηλαδή έχουν προηγηθεί οι παρακάτω πράξεις: i) Ξεκινώντας από το σύστημα Ax = f, παραγοντοποίηση A = QR Rx = Q T f Rx = g. ii) Ανάκτηση πλήρους τάξης RP μ P μ 1 x = g R x = g. Το μητρώο R έχει τη δομή που φαίνεται δεξιά στο Σχήμα 4. Και το αντίστοιχο γραμμικό σύστημα του παραδείγματος αυτού μπορεί να γραφεί ως: R 1 u 1 0 ( w 2 R 2 u ) ( x 1 2 x 2 ) = ( g 1 g 2 ) 0 w 3 R x 3 3 g 3 Για να πάρει την τελική μορφή που θέλουμε αρκεί να λύσουμε για τις εξισώσεις που περιέχονται σε κάθε γραμμή πλοκάδων του συστήματος τρία επιμέρους γραμμικά συστήματα: R j [v j, w j, y j ] = [v, j w, j g j ], j = 2 p 1 R [v 1 1, y 1 ] = [v, 1 g 1 ] R [w p p, y p ] = [w p, g p ] ~ 14 ~

15 Με τον τρόπο αυτό έχει ολοκληρωθεί η παραγοντοποίηση AP μ = DS. Σημειώνεται ότι για την τελευταία περίπτωση η παραπάνω διαδικασία είναι αδύνατο να πραγματοποιηθεί αν το R p είναι ιδιάζον. Για την αντιμετώπιση αυτού του προβλήματος υπάρχει ειδικός χειρισμός. Λόγω της πρότασης 1, το (R p ) 1:m 1,1:m 1 είναι πλήρους τάξης (m 1) άρα είναι αντιστρέψιμο. Αυτό σημαίνει ότι μπορούμε να εφαρμόσουμε τη σχέση R [w p p, y p ] = [w p, g p ] για τις πρώτες m 1 γραμμές του συστήματος. Σε αυτή την περίπτωση θα πρέπει να λύσουμε με ένα ακόμη δεξί μέλος, το διάνυσμα που αποτελείται από τα πρώτα m 1 στοιχεία της στήλης m του R p. Με αυτό τον τρόπο θα προκύψει ένα ακόμη spike στο σύστημα, χωρίς βέβαια να επηρεάζει με κάποιο τρόπο τα επόμενα βήματα του αλγορίθμου g-spike. Το τελικό μητρώο S που προκύπτει έχει δομή όπως φαίνεται στο Σχήμα Μετεπεξεργασία Μετά την εκτέλεση των δύο προηγούμενων σταδίων το σύστημα έχει πλέον την μορφή Sx = y. Το μητρώο S έχει την δομή που είδαμε στο προηγούμενο σχήμα και η οποία είναι ουσιαστικά το ταυτοτικό μητρώο I με την ύπαρξη διανυσμάτων στα αριστερά και στα δεξιά κάθε διαγώνιας πλοκάδας (με εξαίρεση την πρώτη και την τελευταία πλοκάδα). Τα διανύσματα αυτά ονομάζονται spikes και θα αναγράφονται ως w ή v ανάλογα με το αν βρίσκονται στα αριστερά ή στα δεξιά των πλοκάδων αντίστοιχα. Λόγω της δομής του S το πρόβλημα της επίλυσης του συστήματος Sx = y μπορεί να μειωθεί στην επίλυση ενός πολύ μικρότερου συστήματος S x = y, το οποίο είναι ένα πολύ βασικό στοιχείο της μεθοδολογίας Spike [2]. Εξάγουμε το μειωμένο αυτό σύστημα λαμβάνοντας υπόψη μόνο την πρώτη και τελευταία γραμμή της κάθε πλοκάδας του συστήματος, όπως περιγράφεται και από την παρακάτω σχέση: x i = [ x i (t) x i x i (b) ], y i = [ y i (t) y i y i (b) ], w i = [ ~ 15 ~ w i (t) w i w i (b) ], v i = [ Η δομή του μειωμένου συστήματος φαίνεται στο Σχήμα 7, όπου βλέπουμε τη δομή του συστήματος S x = y. Στη διαγώνιο υπάρχουν μόνο μονάδες. Τα στοιχεία w i (t), vi (t), xi (t), yi (t) υποδηλώνουν τα top στοιχεία των αντίστοιχων διανυσμάτων (για αυτό και η χρήση του λατινικού χαρακτήρα t) στο σύστημα Sx = y, ενώ τα w i (b), vi (b), xi (b), yi (b) υποδηλώνουν τα bottom στοιχεία αντίστοιχα (για αυτό και η χρήση του λατινικού χαρακτήρα b). Το μητρώο S είναι «ψυχολογικά» τριδιαγώνιο. Αρκεί μια αντιμετάθεση στηλών για να αναχθεί σε τριδιαγώνια μορφή όπως βλέπουμε και από το Σχήμα 8. Ως τριδιαγώνιο το μειωμένο σύστημα μπορεί να επιλυθεί με αναδρομικές κλήσεις του αλγόριθμου g-spike, έως ότου το τελικό μειωμένο σύστημα να είναι αρκετά μικρό ώστε να επιλύεται πιο αποδοτικά με σειριακό τρόπο. Μόλις επιστραφεί η μερική λύση x εφαρμόζεται πίσω αντικατάσταση για την ανάκτηση της πλήρους λύσης x, με τον τρόπο που περιγράφει το παρακάτω σύστημα: v i (t) v i v i (b) ]

16 (t) x 1 = y 1 v 1 x 2, { (t) (b) x j = y j v j x j+1 wj x j 1, j = 2, p Η περίπτωση της πλήρως λύσης για x p (περίπτωση για την τελευταία πλοκάδα) ανακτάται με τον ίδιο τρόπο όπως και για τα x j με j = 2 p 1, καθώς το υπομητρώο A p μπορεί να είναι ιδιάζον και άρα όπως δείξαμε προηγουμένως θα υπάρχει δεξί spike v p. Στην περίπτωση που το A p είναι αντιστρέψιμο οι τιμές του v p θα είναι μηδενικές και δεν θα επηρεάσουν τη λύση, συνεπώς ο τύπος ισχύει σε κάθε περίπτωση. Τελευταίο βήμα αποτελεί η αναίρεση της διαδικασίας ανάκτησης πλήρους τάξης που εφαρμόστηκε στο στάδιο παραγοντοποίησης. Αυτό επιλύεται βάσει της σχέσης x = P μ x. Σχήμα 7: Μειωμένο σύστημα S x = y Σχήμα 8: Τριδιαγώνιο μειωμένο σύστημα (a): Περίπτωση όπου το υπομητρώο A p είναι αντιστρέψιμο (b): Περίπτωση όπου το υπομητρώο A p είναι ιδιάζον ~ 16 ~

17 2.5 Αλγοριθμική περιγραφή g-spike algorithm Require: Τριδιαγώνιο μητρώο Α και δεξί μέλος f Ensure: Λύση για το γραμμικό σύστημα Ax = f {Στάδιο 1 Προεργασία} 1: Θεωρώντας μη-αναγωγιμότητα για το Α, το σύστημα τμηματοποιείται σε διαγώνιες πλοκάδες {Στάδιο 2 Παραγοντοποίηση} 2: Για κάθε j = 1,, p: 3: i) Παραγοντοποίηση QR με εφαρμογή περιστροφών Givens: Υπολογισμός των τελεστών περιστροφής G i (j) για i = 1,, m 1 και ii) iii) εφαρμογή Q T (j) j = G m 1 G (j) 1 στη μπλοκ-γραμμή j για τη δημιουργία άνω τριγωνικού μητρώου ζώνης R j = Q T j A j, τα διανύσματα g j = Q T j g j για j = 1,, p, τα διανύσματα w j = a jm+1,jm Q T j e 1 για j = 2,, p και τα διανύσματα v j = a jm,jm+1 Q j T e m για j = 1,, p 1. Κάθε μητρώο R j έχει μήκος ζώνης 3. Ανάκτηση Πλήρους Τάξης: Αν εντοπιστεί ιδιάζον μητρώο R j τότε ανακτάται πλήρης τάξη μέσω της σχέσης αυτής RP μ P 1 μ x = g R x = g, προκύπτουν οπότε νέα αντιστρέψιμα διαγώνια R j (όπου R j = R j αν το R j ήταν αντιστρέψιμο). Δημιουργία των Spikes: Τυπικά πολλαπλασιάζεται κάθε μπλοκ-γραμμή με (R j ) 1, στην πράξη λύνουμε το σύστημα των εξισώσεων: R j [v j, w j, y j ] = [v, j w, j g j ], j = 2 p 1 R [v 1 1, y 1 ] = [v, 1 g 1 ] R [w p p, y p ] = [w, p g p ] {Στάδιο 3 Μετεπεξεργασία: Επίλυση του συστήματος Spike Sx = y, ανάκτηση του x} i) Εξαγωγή του ελαττωμένου συστήματος S. Το σύστημα είναι αντιστρέψιμο και μπορεί να έρθει μέσω αναδιάταξης στηλών σε τριδιαγώνια μορφή. Ανάλογα το μέγεθος του μπορεί να επιλυθεί είτε καλώντας αναδρομικά τον αλγόριθμο g-spike, είτε σειριακά με κάποια ευσταθή μέθοδο όπως μέσω παραγοντοποίησης QR με χρήση περιστροφών Givens. ii) Εφαρμογή πίσω αντικατάστασης και ανάκτηση της πλήρους λύσης x, όπως περιγράφεται στο παρακάτω σύστημα: x 1 = y 1 v 1 x (t) 2, { x j = y j v j x (t) j+1 w j x (b) j 1, j = 2, p iii) Αναίρεση της ανάκτησης πλήρους τάξης μέσω της σχέσης x = P μ x. ~ 17 ~

18 3 Αρχιτεκτονική Xeon Phi Σχήμα 9: (από [8]) Συνδεσμολογία πάνω στον διασυνδετικό δακτύλιο του Xeon Phi Σχήμα 10: (από [9]) Αρχιτεκτονική ενός επεξεργαστικού πυρήνα του Xeon Phi Ένας συνεπεξεργαστής στόχο έχει να συμβάλει στην επεξεργαστική ισχύ ενός συστήματος, δουλεύοντας παράλληλα με την κεντρική μονάδα επεξεργασίας (CPU). Καθότι οι νέες γενιές επεξεργαστών είναι πολυπύρηνες (multicore) και διαθέτουν πληθώρα μονάδων επεξεργασίας πέραν των επεξεργαστικών τους πυρήνων (για επεξεργασία γραφικών π.χ.) η ύπαρξη συνεπεξεργαστών που διαθέτουν παρόμοια αρχιτεκτονική δεν θα είχε αξία. Τα συστήματα αυτά λοιπόν, στόχο έχουν να «συμπληρώσουν» τις δυνατότητες των CPUs και αυτό το επιτυγχάνουν μέσω της παραλληλίας σε πολύ ~ 18 ~

19 υψηλό επίπεδο (many-core). Οι αρχιτεκτονικές αυτές όχι μόνο διαθέτουν μεγάλο αριθμό πυρήνων (για τις GPU μπορεί να μιλάμε για χιλιάδες πυρήνες), αλλά διαθέτουν και την κατάλληλη αρχιτεκτονική όσο αναφορά τον χειρισμό της μνήμης, έτσι ώστε να επιτυγχάνεται η όσο καλύτερη αξιοποίηση της κατά την εκτέλεση παραλληλοποιημένου κώδικα. Η χρήση συνεπεξεργαστών επιταχύνει σημαντικά πολλές υπολογιστικά ακριβές εφαρμογές, καθώς μεγάλος αριθμός υπολογιστικών πυρήνων μπορεί υλοποιηθεί ώστε να εκτελείται σε αυτούς με σημαντικά μικρότερους χρόνους εκτέλεσης και με σημαντικά μικρότερη κατανάλωση ενέργειας. Ο συνεπεξεργαστής Xeon Phi, στην χρήση του οποίου βασίζεται η παρούσα διπλωματική, αποτελεί την «απάντηση» της Intel στο χώρο των συνεπεξεργαστών στον οποίο είχαν επικρατήσει οι μονάδες επεξεργασίας γραφικών (GPUs). Η προσέγγιση αυτού τόσο σε επίπεδο αρχιτεκτονικής όσο και σε επίπεδο προγραμματιστικού μοντέλου είναι τελείως διαφορετική και συνεπώς παρουσιάζει ιδιαίτερο ενδιαφέρον. Το γεγονός ότι το προγραμματιστικό μοντέλο είναι παρόμοιο με αυτό που χρησιμοποιείται για την αποδοτική συγγραφή παραλληλοποιημένου κώδικα σε μία σύγχρονη CPU, αποτελεί έναν ακόμα σημαντικό λόγο να επιλέξει κανείς τον συνεπεξεργαστή Xeon Phi. O Xeon Phi καθώς και κάποιες οικογένειες GPUs, όπως η σειρά Tesla της NVIDIA, απευθύνονται κυρίως για High Performance Computing (HPC) και βασικός τους στόχος είναι η επίτευξη μεγάλης επεξεργαστικής ισχύος με χαμηλή κατανάλωση ενέργειας. Μέχρι στιγμής οι συνεπεξεργαστές Xeon Phi διαθέτουν έως και 61 επεξεργαστικούς πυρήνες, κάθε ένας εκ των οποίων διαθέτει μία μονάδα διανυσματικής επεξεργασίας (vector processing unit) μήκους 512 bit, 2 επίπεδα κρυφής μνήμης και παρέχει έως και 4 νήματα εκτέλεσης. Οι επεξεργαστικοί πυρήνες διασυνδέονται μέσω ενός δακτυλίου αμφίδρομης κατεύθυνσης μεγάλου εύρους ζώνης και οι κρυφές τους μνήμες παραμένουν πλήρως συνεκτικές χάρις ένα καθολικό κατάλογο ετικετών. Τέλος διαθέτουν έως και 16GB RAM για χρήση από το ίδιο το σύστημα για διεργασίες που διαχειρίζονται μεγάλο όγκο δεδομένων, όπως οι υπολογιστικοί πυρήνες για εκτέλεση γραμμοαλγεβρικών πράξεων που μελετάμε. Στο Σχήμα 9 παρουσιάζεται η δομή και οι διασυνδέσεις πάνω στον δακτύλιο, ενώ στο Σχήμα 10 παρουσιάζεται η αρχιτεκτονική ενός επεξεργαστικού πυρήνα του Xeon Phi. Για την ευκολότερη και καλύτερη αξιοποίηση του συστήματος η Intel παρέχει πληθώρα προγραμματιστικών εργαλείων και βιβλιοθηκών. Όπως μεταγλωττιστές για τη Fortran, C, C++ και τις βιβλιοθήκες για χρήση MPI και OpenMP, καθώς επίσης και την MKL βιβλιοθήκη που περιέχει πληθώρα γραμμοαλγεβρικών και άλλων μαθηματικών συναρτήσεων ειδικά σχεδιασμένες προς εκτέλεση από τα συστήματα της Intel. Ο Xeon Phi προσφέρει 3 μοντέλα εκτέλεσης γνωστά ως offload λειτουργία εκτέλεσης, native λειτουργία εκτέλεσης και τέλος συμμετρική λειτουργία εκτέλεσης η οποία πρόκειται ουσιαστικά για υβριδική λειτουργία εκτέλεσης των προηγούμενων δύο. 1) Offload λειτουργία: Γνωστό και ως ετερογενές προγραμματιστικό μοντέλο, πρόκειται ουσιαστικά για μοντέλο εκτέλεσης κατά το οποίο η CPU του συστήματος «στέλνει» τμήματα κώδικα και δεδομένων στον Xeon Phi προς εκτέλεση. Με τον τρόπο αυτό η εκτέλεση ξεκινά στην CPU και εκεί ανάλογα αποφασίζεται αν και ποια τμήματα κώδικα και δεδομένων θα αναλάβει ο Xeon Phi, ~ 19 ~

20 ενώ μπορεί παράλληλα η CPU να συνεχίσει την εκτέλεση κάποιου άλλου τμήματος. Αυτός ο τρόπος λειτουργίας είναι αντίστοιχος με αυτόν άλλων συνεπεξεργαστών, όπως οι GPUs. 2) Native λειτουργία: Ο Xeon Phi χρησιμοποιεί λειτουργικό σύστημα Linux micro και εμφανίζεται ως δευτερεύων σύστημα πάνω στο κυρίως, σαν ένας επιπλέον επεξεργαστικός κόμβος. Για να τρέξει κώδικας στη λειτουργία αυτή θα πρέπει να μεταγλωττιστεί με την κατάλληλη παράμετρο, με τον τρόπο αυτό ο κώδικας ξεκινά και τρέχει απευθείας πάνω στον Xeon Phi. 3) Συμμετρική λειτουργία: Σε αυτήν την λειτουργία οι διεργασίες της εφαρμογής τρέχουν και στα δύο συστήματα. Συνήθως επικοινωνούν μέσω κάποιας διεπαφής μηνυμάτων όπως το MPI. Για την παρούσα διπλωματική η υλοποίηση και οι μετρήσεις πραγματοποιήθηκαν στο συνεπεξεργαστή Intel Xeon Phi 3120A του εργαστηρίου πληροφοριακών συστημάτων υψηλών επιδόσεων (HPCLab) του Πανεπιστημίου Πατρών, που διαθέτει 6GB Ram και 57 επεξεργαστικούς πυρήνες. Χρησιμοποιήθηκε ο Intel C++ Compiler και η βιβλιοθήκη OpenMP. Οι μετρήσεις έγιναν σε offload λειτουργία, καθότι αποτελεί το πιο συνηθισμένο και χρήσιμο προγραμματιστικό μοντέλο για την χρήση συνεπεξεργαστών, με εξαίρεση την χρήση της ScaLAPACK [1] οι οποία έγινε σε native λειτουργία. Αυτό έγινε καθώς η ScaLAPACK χρησιμοποιεί MPI, το οποίο περιορίζει τα προγραμματιστικά μοντέλα που μπορούν να χρησιμοποιηθούν σε αυτά της native και συμμετρικής λειτουργίας. Καθότι στην συμμετρική λειτουργία η εκτέλεση γίνεται τόσο με την χρήση του Xeon Phi όσο και της CPU, δεν αποτελεί καλό προγραμματιστικό μοντέλο για τη σύγκριση μεταξύ υλοποιήσεων στον Xeon Phi. Για την αξιοποίηση των πόρων του συστήματος που μόλις περιγράψαμε, είναι σαφές ότι πρέπει να χρησιμοποιηθούν πολλαπλά νήματα επεξεργασίας, καθώς η μονάδα διανυσματικής επεξεργασίας (vector processing unit) που διαθέτει ο κάθε πυρήνας. Για την υλοποίηση χρησιμοποιήθηκε η βιβλιοθήκη OpenMP για τη δημιουργία και διαχείριση των νημάτων επεξεργασίας, καθώς επίσης και ειδικές δομές που υποστηρίζει ο Intel compiler και με τις οποίες ο προγραμματιστής παρέχει πληροφορίες σχετικά με το ποιοι βρόχοι δέχονται χρήση διανυσματικής επεξεργασίας. Ακόμα αυτές οι δομές μπορούν να χρησιμοποιηθούν για να παράσχει ο προγραμματιστής επιπλέον πληροφορίες στον μεταφραστή (compiler), σχετικές με την διευθυνσιοδότηση και προσπέλαση των πινάκων που χρησιμοποιούνται στο βρόχο κατά την εκτέλεση αυτού. Αυτές οι πληροφορίες οδηγούν τον μεταφραστή στην παραγωγή βελτιστοποιημένου κώδικα για την χρήση διανυσματικής επεξεργασίας, σύμφωνα με προκαθορισμένες δομές που αξιοποιούν αυτές τις πληροφορίες. Για παράδειγμα η πληροφορία ότι ο βρόχος προσπελαύνει αποκλειστικά συναυξητικές διευθύνσεις μνήμης ξεκινώντας από διευθύνσεις που είναι πολλαπλάσιο του 64 είναι ιδιαίτερα χρήσιμη στην παραγωγή γρήγορου κώδικα για τη διανυσματική επεξεργασία και η εγγύηση προς τον compiler ότι αυτό ισχύει έχει ιδιαίτερα θετική επίδραση στην ταχύτητα της υλοποίησης. Αυτό συμβαίνει γιατί η cache line έχει μέγεθος 64 bytes πράγμα που σημαίνει ότι η διεύθυνση μνήμης της πρώτης θέσης της είναι κάποιο πολλαπλάσιο του 64 και το μήκος της μονάδας διανυσματικής επεξεργασίας είναι επίσης 64 bytes που σημαίνει ότι μπορούν να γίνουν πράξεις απευθείας πάνω στα δεδομένα διαδοχικών cache line, χωρίς χρονοβόρες διαδικασίες όπως είναι η χρήση masking ή περαιτέρω έλεγχοι που απαιτούνται κατά την χρήση της μονάδας υπό άλλες συνθήκες. Σε περίπτωση που δεν τηρείται η εγγύηση αυτή που δώσαμε στον μεταφραστή, θα υπάρξει σφάλμα κατάτμησης (segmentation fault) κατά την εκτέλεση του κώδικα στο σημείο αυτό και συνεπώς ο προγραμματιστής θα πρέπει να είναι ιδιαίτερα προσεκτικός στην χρήση τέτοιων δομών. Ένα άλλο ~ 20 ~

21 χρήσιμο παράδειγμα είναι η εγγύηση που δίνουμε στον compiler ότι δεν υπάρχουν εξαρτήσεις μεταξύ των δεδομένων διαδοχικών εκτελέσεων ενός βρόχου, σε περίπτωση που δεν το αναφέρουμε και ο μεταφραστής δεν είναι σε θέση να το αναγνωρίσει μόνος αυτό τότε δεν γίνεται χρήση διανυσματικής επεξεργασίας που ειδάλλως θα ήταν εφικτή, ενώ σε περίπτωση που η εγγύηση που δώσαμε δεν ισχύει τα αποτελέσματα εκτέλεσης του κώδικα θα είναι λανθασμένα. Με βάση όσα έχουμε πει ως τώρα για το σύστημα Xeon Phi, είναι προφανές το ότι για να πετύχουμε καλή απόδοση με χρήση πολλαπλών νημάτων, καθώς και για να γίνει ικανοποιητική χρήση των VPUs (vector processing units), είναι επιθυμητό ο αλγόριθμος τον οποίο υλοποιούμε να απαρτίζεται από τμήματα με αυτόνομες υπολογιστικά πράξεις και να μπορούμε όσο το δυνατόν να ρυθμίζουμε το επίπεδο παραλληλίας που θέλουμε. Έτσι μπορούμε να παραλληλοποιούμε τον κώδικα μας βάσει διαφορετικών αρχιτεκτονικών, ακόμα και αυτών που θα συναντήσουμε σε μελλοντικά συστήματα. Παρότι η χρήση VPUs προσφέρει ακόμα ένα επίπεδο παραλληλίας, συναντά κανείς συχνά προβλήματα στη χρήση τους λόγο της μικρότερης «ευελιξίας» στην συγγραφή αποδοτικού κώδικα σε σχέση με τη χρήση νημάτων. Παρότι διανυσματική επεξεργασία (vectorization) στον Xeon Phi με χρήση του Intel Compiler μπορεί να πραγματοποιηθεί σε βρόχους που περιέχουν συνθήκες if, όπως ακόμα και σε περιπτώσεις διασκελισμού των θέσεων πινάκων που προσπελάζονται, τέτοιες περιπτώσεις μπορεί να μειώσουν σημαντικά την επίδοση. Επιπλέον η διανυσματική επεξεργασία βρόχου δεν είναι εφικτή, αν στο εσωτερικό του καλούνται συναρτήσεις οι οποίες είτε δεν έχουν μεταγλωττιστεί κατάλληλα για την υποστήριξη διανυσματικής επεξεργασίας είτε η διανυσματική επεξεργασία σε αυτές δεν είναι εφικτή λόγο της δομής της συνάρτησης. Σε γενικές γραμμές για την αποδοτική εκτέλεση κώδικα με χρήση διανυσματικής επεξεργασίας στον Xeon Phi, θα πρέπει να προσπελάζονται συναυξητικές διευθύνσεις μνήμης για τον κάθε πίνακα και να αποφεύγονται οι συνθήκες if στο εσωτερικό των βρόχων. Ακόμα ιδιαίτερης σημασίας είναι η πρώτη διεύθυνση του κάθε πίνακα που προσπελαύνεται στο βρόχο να είναι πολλαπλάσια του 64 για τους λόγους που έχουν αναφερθεί και πιο πάνω. Αυτή η ανάγκη «στοίχισης» με διευθύνσεις που είναι πολλαπλάσια του 64 για αποδοτικότερη διανυσματική επεξεργασία ονομάζεται «64 bytes alignment». Για να αξιοποιηθεί αυτή η ιδιότητα, δημιουργείται πολλές φορές η ανάγκη «γεμίσματος» των γραμμών ενός μητρώου, δεσμεύοντας απλά περισσότερη μνήμη για αυτές ώστε το πλήθος των bytes να είναι πολλαπλάσιο του 64. Αυτή η τεχνική είναι γνωστή ως «line padding». Αντίστοιχες padding τεχνικές χρησιμοποιούνται σε διάφορες δομές αποθήκευσης δεδομένων, ανάλογα με τον τρόπο που προσπελαύνονται τα δεδομένα κατά την εκτέλεση του διανυσματοποιημένου βρόχου. Η χρήση νημάτων για παραλληλία επηρεάζεται από τις if συνθήκες στο βαθμό που επηρεάζεται και ο σειριακός κώδικας. Ακόμα οι περισσότερες συναρτήσεις μπορούν να εκτελεστούν παράλληλα από διαφορετικά νήματα, εκτός κάποιων εξαιρέσεων συναρτήσεων που η κατάσταση τους αλλάζει σε κάθε τους εκτέλεση, μέσω των τιμών κάποιων καθολικών μεταβλητών που χρησιμοποιούν. Τέλος η ύπαρξη διασκελισμού στα δεδομένα δεν έχει ιδιαίτερη επίπτωση στην εκτέλεση των νημάτων, εφόσον ο διασκελισμός αυτός δεν οδηγεί και σε κακή χρήση της κρυφής μνήμης. Αν λοιπόν όλα τα δεδομένα μίας cache line τα επεξεργάζεται το ίδιο νήμα και αυτό γίνεται χωρίς να χρειαστεί να προσπελάσει πάνω από μία φορά την κύρια μνήμη για τα δεδομένα της cache line αυτής, ο διασκελισμός δεν θα έχει ιδιαίτερη επίπτωση στον χρόνο εκτέλεσης του νήματος. ~ 21 ~

22 Παρότι γενικά η χρήση νημάτων φαίνεται να παρέχει και μεγάλη επεξεργαστική ικανότητα και μεγάλη ευελιξία, υπάρχουν 2 βασικοί λόγοι για τη χρήση διανυσματικής επεξεργασίας. Ένας λόγος είναι ότι η χρήση διανυσματικής επεξεργασίας μειώνει σημαντικά την κατανάλωση ισχύος, καθώς τα νήματα σε επίπεδο υλικού για επεξεργαστικούς πυρήνες όπως στον Xeon Phi απαιτούν αρκετό επιπλέον υλικό και η χρήση αυτού τόσο για την εκτέλεση πράξεων όσο και για τον έλεγχο της ροής εκτέλεσης αυξάνει σημαντικά την κατανάλωση. Ο δεύτερος λόγος έχει να κάνει με τα εξής. Παρόλο που ο Xeon Phi παρέχει ως και 4 νήματα εκτέλεσης σε επίπεδο υλικού ανά πυρήνα, θεωρούμε γενικά ότι το κάθε νήμα έχει ξεχωριστή κρυφή μνήμη (ένα νήμα ανά πυρήνα). Επιπλέον η δημιουργία, συγχρονισμός και η διαμοίραση επεξεργαστικού φόρτου στα νήματα είναι σχετικά χρονοβόρες διαδικασίες. Συνεπώς το να χρησιμοποιούμε πολλά νήματα για μικρό πλήθος δεδομένων και στην χειρότερη περίπτωση δεδομένων που ανήκουν στις ίδιες cache lines της κύριας μνήμης, μπορεί εν τέλει να καταλήξει να έχει χειρότερη απόδοση από την σειριακή εκτέλεση. Αντίθετα αν οι διευθύνσεις μνήμης που προσπελάζονται είναι συναυξητικές και ακόμα καλύτερα αν είναι 64 bytes aligned, η διανυσματική επεξεργασία πετυχαίνει πολύ καλύτερες επιδόσεις και είναι ένα είδος παραλληλισμού πάνω σε δεδομένα που βρίσκονται στην ίδια κρυφή μνήμη. Όσον αφορά στη χρήση νημάτων στον Xeon Phi, θα πρέπει κανείς να είναι ιδιαίτερα προσεκτικός στην αποφυγή «κρίσιμων τμημάτων» κώδικα, είτε αυτό αφορά εγγραφές σε κοινές θέσεις μνήμης μεταξύ των νημάτων είτε σε ακόμα χειρότερη περίπτωση αυτό αφορά συναρτήσεις οι οποίες δεν είναι σχεδιασμένες να καλούνται παράλληλα από διαφορετικά νήματα. Αν και τέτοια τμήματα είναι πολλές φορές αναπόφευκτα, η χρήση τους η οποία μπορεί να μην είναι καταστροφική στην εκτέλεση ενός κώδικα από μία σύγχρονη CPU δεν σημαίνει ότι θα έχει την αντίστοιχη συμπεριφορά και στον Xeon Phi. Τόσο το πολύ μεγαλύτερο επίπεδο παραλληλίας, όσο και το γεγονός ότι κάθε πυρήνας του Xeon Phi έχει αρκετά μικρότερη επεξεργαστική ισχύ συγκριτικά με τους πυρήνες μίας σύγχρονης CPU, έχουν ως συνέπεια την πολύ μικρότερη ανοχή του Xeon Phi σε τέτοιου είδους τμημάτων κώδικα. Για την αποδοτική συγγραφή κώδικα λοιπόν, είναι απαραίτητο ο προγραμματιστής να διαθέτει γνώση και εμπειρία πάνω στην αποφυγή «κρίσιμων τμημάτων» όσο αυτό είναι δυνατόν. Δεύτερον είναι πολύ σημαντική η επιλογή κατάλληλου αλγορίθμου από τον προγραμματιστή. Θα πρέπει να επιλεχθεί αλγόριθμος που να παρέχει πολύ υψηλό επίπεδο παραλληλίας και ο οποίος να διαθέτει και την κατάλληλη αριθμητική ευστάθεια σύμφωνα με τις απαιτήσεις της εφαρμογής. ~ 22 ~

23 4 Xeon Phi και GPU: Συγκρίσεις και παρατηρήσεις Έχουμε ήδη μιλήσει για την αρχιτεκτονική του Xeon Phi και παρατηρούμε ότι ουσιαστικά πρόκειται για ένα system on chip, το οποίο υλοποιεί ένα δακτύλιο μεγάλου εύρους ζώνης που διασυνδέει πολλούς επεξεργαστικούς πυρήνες. Η αρχιτεκτονική των πυρήνων αυτών είναι παρόμοια με μιας CPU και ουσιαστικά το σύστημα βασίζεται στην αποδοτική υλοποίηση της επικοινωνίας μεταξύ των πυρήνων, καθώς και στις μονάδες διανυσματικής επεξεργασίας μεγάλου μήκους που ο κάθε πυρήνας διαθέτει. Η αρχιτεκτονική μιας GPU όμως διαφέρει ριζικά από αυτήν μιας CPU. Λόγω της εξειδίκευσης της για διεργασίες που αφορούν εντατικούς υπολογισμούς (compute intensive), πάνω στην επεξεργασία κάποιου όγκου δεδομένων, ακολουθώντας παρόμοια ροή προγράμματος το μεγαλύτερο μέρος του υλικού αφιερώνεται στην υλοποίηση μεγάλου αριθμού αριθμητικών και λογικών μονάδων (ALU), ενώ τα μεγέθη και περιπλοκότητα των μονάδων ελέγχου ροής προγράμματος και της κρυφής μνήμης είναι σημαντικά πιο περιορισμένα. Αυτό φαίνεται και από το Σχήμα 11. Σχήμα 11: (από [10]) Το αριστερό τμήμα αφορά μία CPU ενώ το δεξί μία GPU Παρουσιάζονται τα σχετικά μεγέθη κάθε στοιχείου της αρχιτεκτονικής του εκάστοτε συστήματος πάνω στο chip Βασικό στοιχείο της αρχιτεκτονικής των GPUs αποτελεί ο Streaming Multiprocessor (SM) και πρόκειται ουσιαστικά για ένα σύστημα χρονοπρογραμματισμού και ελέγχου της ροής προγράμματος για μια «ομάδα» απλών από άποψη αρχιτεκτονικής επεξεργαστικών πυρήνων. Οι πυρήνες που ανήκουν σε αυτήν την «ομάδα» διαμοιράζονται πόρους όπως καταχωρητές και κρυφή μνήμη. Επιπλέον οι επεξεργαστικοί πυρήνες που αναλαμβάνουν νήματα τα οποία ανήκουν στο ίδιο warp (ορολογία της CUDA για την πιο στοιχειώδης ομαδοποίηση νημάτων σε μια GPU) ακολουθούν την ίδια ροή προγράμματος, όμως σε περιπτώσεις εντολών διακλάδωσης μόνο οι πυρήνες που ικανοποιούν την σχέση της εντολής συνεχίζουν την ροή εκτέλεσης ενώ οι υπόλοιποι περιμένουν μέχρι να συνεχιστεί η φυσιολογική ροή προγράμματος. Αντίστοιχα κάποιοι πυρήνες του warp μπορεί να μείνουν ανενεργοί είτε λόγω απαίτησης μικρότερου αριθμού νημάτων από ότι είναι το μέγεθος ενός warp είτε λόγο πρόωρου τερματισμού συγκεκριμένων νημάτων. Η λογική χρήσης αυτή θυμίζει single instruction multiple data stream (SIMD), καθότι κάθε πυρήνας επεξεργάζεται διαφορετικά δεδομένα αλλά όλοι έχουν παρόμοια ροή εκτέλεσης. Στο Σχήμα 12 βλέπουμε την αρχιτεκτονική ενός SM, καθώς και το γεγονός ότι μια GPU αποτελείται από πολλά τέτοια συστήματα. ~ 23 ~

24 Σχήμα 12: (από [10]) Αρχιτεκτονική μίας σύγχρονης GPU. Στα αριστερά βλέπουμε την αρχιτεκτονική του κάθε SM από τους οποίους αποτελείται, ενώ στα δεξιά την αρχιτεκτονική κάθε πυρήνα από τους οποίους ο SM αποτελείται Η επικοινωνία μεταξύ των SM καθώς και ο χρονοπρογραμματισμός και διαμοιρασμός του υπολογιστικού φόρτου αφορά την αρχιτεκτονική της εκάστοτε GPU και δεν θα μπούμε αναφερθούμε σε περαιτέρω λεπτομέρειες για τις αρχιτεκτονικές αυτές. Μπορούμε όμως ήδη να δούμε το επίπεδο παραλληλίας σε επίπεδο υλικού που επιτυγχάνεται και τι θυσιάζεται για να επιτευχθεί αυτό. Με λίγα λόγια μια GPU θυσιάζει το latency για όσο μεγαλύτερο throughput γίνεται. 4.1 Προγραμματιστικά μοντέλα Στην ενότητα αυτή θα επικεντρωθούμε στα προγραμματιστικά μοντέλα των συστημάτων Xeon Phi και GPU, συγκεκριμένα για GPU θα αναφερθούμε στο προγραμματιστικό μοντέλο CUDA της NVIDIA. Θα προσπαθήσουμε να συγκρίνουμε τα δύο αυτά μοντέλα, καθώς και να αναφέρουμε πιο λεπτομερώς ποια είναι τα σημεία που θα πρέπει κάποιος να προσέξει όταν κάνει μια υλοποίηση που αφορά τα συστήματα αυτά. Αρχικά όσον αναφορά στον Xeon Phi θα πρέπει να αναφέρουμε ότι παρόλο που παρέχει ως και 4 νήματα εκτέλεσης και είναι σχεδιασμένος να αποδίδει καλύτερα με τουλάχιστον 2 νήματα ανά υπολογιστικό πυρήνα (core), για την αποδοτική συγγραφή κώδικα είναι πιο χρήσιμο να θεωρούμε ότι ~ 24 ~

25 κάθε νήμα έχει ξεχωριστή κρυφή μνήμη (1 νήμα ανά core). Αυτό σημαίνει ότι έχουμε καλή απόδοση όταν κάθε νήμα επεξεργάζεται δεδομένα που βρίσκονται μόνο στην δική του κρυφή μνήμη και πιο συγκεκριμένα οι εγγραφές σε μια cache line από διαφορετικά νήματα προκαλούν σημαντική επιβράδυνση της εκτέλεσης του κώδικα. Αντιθέτως στο προγραμματιστικό μοντέλο CUDA, έχουμε 2 βασικές δομές στις οποίες διαχωρίζουμε τα νήματα που ορίζουμε για την εκτέλεση του κώδικα. Η πρώτη αποκαλείται CUDA block και πρόκειται για την απεικόνιση των νημάτων σε ένα τρισδιάστατο πίνακα και η δεύτερη CUDA Grid και πρόκειται για την απεικόνιση των όμοιων διαστάσεων CUDA blocks σε ένα τρισδιάστατο πίνακα. Στο μοντέλο αυτό τα νήματα που ανήκουν στο ίδιο CUDA block θεωρούμε ότι διαθέτουν κοινή κρυφή μνήμη και αυτό γιατί τα νήματα στο ίδιο CUDA block εκτελούνται στον ίδιο Streaming Multiprocessor (SM) και συνεπώς χρησιμοποιούν τμήμα της κρυφής μνήμης που αυτός διαθέτει. Ένα ακόμα σημαντικό στοιχείο στην εγγραφή κώδικα με χρήση CUDA είναι πως για την αποδοτική προσπέλαση της DRAM (καθολικής μνήμης), θα πρέπει τα νήματα στο ίδιο CUDA block να προσπελαύνουν ταυτόχρονα συναυξητικές διευθύνσεις στην μνήμη (coalesced memory access patterns). Με βάση τα όσα είπαμε για το μοντέλο CUDA καταλαβαίνει κανείς ότι εφόσον κάθε νήμα αναλαμβάνει κάποιο τμήμα του αρχικού συστήματος Ax = f, αν κρατήσουμε την αρχική δομή του συστήματος στην μνήμη τότε τα νήματα στο ίδιο CUDA block θα προσπελαύνουν την DRAM ανά βήμα m, όπου m το μέγεθος του τμήματος που το κάθε νήμα αναλαμβάνει. Αυτός ο τρόπος προσπέλασης της μνήμης όμως δεν είναι αποδοτικός σύμφωνα με όσα αναφέραμε. Για αυτό το λόγο στην εκδοχή του αλγορίθμου για GPU [4] τα δεδομένα αναδιατάχθηκαν έτσι ώστε όσα χρειάζεται κάθε νήμα σε κάθε βήμα εκτέλεσης του, να βρίσκονται σε διαδοχικές θέσεις μνήμης μεταξύ τους για κάθε νήμα που ανήκει στο ίδιο CUDA block. Θα πρέπει να αναφέρουμε ότι η τεχνική αυτή υιοθετήθηκε από την αντίστοιχη υλοποίηση της εργασίας [11]. Η αναδιάταξη των δεδομένων αυτή φαίνεται και από το Σχήμα 13. Σχήμα 13: Μορφή αποθήκευσης του μητρώου στην μνήμη πριν (στο πάνω μέρος) και μετά την αναδιάταξη (στο κάτω μέρος). Αφορά τα δεδομένα που αντιστοιχούν σε ένα CUDA block ~ 25 ~

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά ΙΙ

Εφαρμοσμένα Μαθηματικά ΙΙ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Εφαρμοσμένα Μαθηματικά ΙΙ Γραμμικά Συστήματα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Γραμμικό Σύστημα a11x1 + a12x2 + + a1 nxn = b1 a x + a x + +

Διαβάστε περισσότερα

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου Matrix Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου Περιεχόμενα παρουσίασης Πολλαπλασιασμός πίνακα με διάνυσμα Πολλαπλασιασμός πινάκων Επίλυση τριγωνικού

Διαβάστε περισσότερα

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1)

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1) ΕΠΙΣΤΗΜΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΜΟΣ I (22 Σεπτεµβρίου) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ 1ο ΘΕΜΑ 1. Αφού ορίσετε ακριβώς τι σηµαίνει πίσω ευσταθής υπολογισµός, να εξηγήσετε αν ο υ- πολογισµός του εσωτερικού γινοµένου δύο διανυσµάτων

Διαβάστε περισσότερα

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

Διαβάστε περισσότερα

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου Matrix Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου Περιεχόμενα παρουσίασης Πολλαπλασιασμός πίνακα με διάνυσμα Πολλαπλασιασμός πινάκων Επίλυση τριγωνικού

Διαβάστε περισσότερα

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

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Γραµµική Αλγεβρα Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

Διαβάστε περισσότερα

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ Ονοματεπώνυμο:......... Α.Μ....... Ετος... ΑΙΘΟΥΣΑ:....... I. (περί τις 55μ. = ++5++. Σωστό ή Λάθος: ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - //8 ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ (αʹ Αν AB = BA όπου A, B τετραγωνικά και

Διαβάστε περισσότερα

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

Διαβάστε περισσότερα

Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη)

Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη) Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη) Ασχολoύνται με την κατασκευή μαθηματικών μοντέλων και με τεχνικές ποσοτικής ανάλυσης και τη χρήση υπολογιστών για την ανάλυση και την επίλυση επιστημονικών

Διαβάστε περισσότερα

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

Διαβάστε περισσότερα

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

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

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

Μετρικές & Επιδόσεις. Κεφάλαιο V Μετρικές & Επιδόσεις Κεφάλαιο V Χρόνος εκτέλεσης & επιτάχυνση Σειριακός χρόνος εκτέλεσης: Τ (για τον καλύτερο σειριακό αλγόριθμο) Παράλληλος χρόνος εκτέλεσης: (με επεξεργαστές) Επιτάχυνση (speedup): S

Διαβάστε περισσότερα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

Διαβάστε περισσότερα

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

Διαβάστε περισσότερα

Παναγιώτης Ψαρράκος Αν. Καθηγητής

Παναγιώτης Ψαρράκος Αν. Καθηγητής Ανάλυση Πινάκων Κεφάλαιο 2: Παραγοντοποίηση LU Παναγιώτης Ψαρράκος Αν Καθηγητής ΔΠΜΣ Εφαρμοσμένες Μαθηματικές Επιστήμες Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Τομέας Μαθηματικών Εθνικό Μετσόβιο

Διαβάστε περισσότερα

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

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Ενότητα 3 η : Παράλληλη Επεξεργασία Παράλληλες Αρχιτεκτονικές Παράλληλο σύστημα είναι ένα σύνολο από επεξεργαστικά στοιχεία (processing elements) τα οποία: συνεργάζονται για γρήγορη επίλυση

Διαβάστε περισσότερα

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας, Μικροεπεξεργαστές Σημειώσεις Μαθήματος 2013-14 Υπεύθυνος: Δρ Άρης Παπακώστας, Η γλώσσα assembly είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου για συγκεκριμένους υπολογιστές ή άλλη προγραμματιζόμενη

Διαβάστε περισσότερα

Γραµµική Αλγεβρα. Ενότητα 3 : ιανυσµατικοί Χώροι και Υπόχωροι. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Γραµµική Αλγεβρα. Ενότητα 3 : ιανυσµατικοί Χώροι και Υπόχωροι. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Γραµµική Αλγεβρα Ενότητα 3 : ιανυσµατικοί Χώροι και Υπόχωροι Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος 3

Περιεχόμενα. Πρόλογος 3 Πρόλογος Η χρησιμότητα της Γραμμικής Άλγεβρας είναι σχεδόν αυταπόδεικτη. Αρκεί μια ματιά στο πρόγραμμα σπουδών, σχεδόν κάθε πανεπιστημιακού τμήματος θετικών επιστημών, για να διαπιστώσει κανείς την παρουσία

Διαβάστε περισσότερα

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

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

Διαβάστε περισσότερα

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

Διαβάστε περισσότερα

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr I ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ i e ΜΕΡΟΣ Ι ΟΡΙΣΜΟΣ - ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ Α Ορισμός Ο ορισμός του συνόλου των Μιγαδικών αριθμών (C) βασίζεται στις εξής παραδοχές: Υπάρχει ένας αριθμός i για τον οποίο ισχύει i Το σύνολο

Διαβάστε περισσότερα

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. 4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

Διαβάστε περισσότερα

9. Συστολικές Συστοιχίες Επεξεργαστών

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

Διαβάστε περισσότερα

Επίλυση Γραµµικών Συστηµάτων

Επίλυση Γραµµικών Συστηµάτων Κεφάλαιο 3 Επίλυση Γραµµικών Συστηµάτων 31 Εισαγωγή Αριθµητική λύση γενικών γραµµικών συστηµάτων n n A n n x n 1 b n 1, όπου a 11 a 12 a 1n a 21 a 22 a 2n A [a i j, x a n1 a n2 a nn x n, b b 1 b 2 b n

Διαβάστε περισσότερα

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα Παράδειγμα Να βρείτε τις ιδιοτιμές και τα αντίστοιχα ιδιοδιανύσματα του πίνακα A 4. Επίσης να προσδιοριστούν οι ιδιοχώροι και οι γεωμετρικές πολλαπλότητες των ιδιοτιμών.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Ολοκλήρωση Εισαγωγή Έστω ότι η f είναι μία φραγμένη συνάρτηση στο πεπερασμένο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Πεπερασμένες και Διαιρεμένες Διαφορές Εισαγωγή Θα εισάγουμε την έννοια των διαφορών με ένα

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,

Διαβάστε περισσότερα

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Συστήματα Παράλληλης

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται

Διαβάστε περισσότερα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Ενότητα: Πίνακες και Γραμμικά Συστήματα: Ο Αλγόριθμος Guss Ανδριανός Ε Τσεκρέκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Διαβάστε περισσότερα

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

Διαβάστε περισσότερα

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο.

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο. ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1 Τελεστές και πίνακες 1. Τελεστές και πίνακες Γενικά Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο. Ανάλογα, τελεστής είναι η απεικόνιση ενός διανύσματος σε ένα

Διαβάστε περισσότερα

Κεφ. 2: Επίλυση συστημάτων εξισώσεων. 2.1 Επίλυση εξισώσεων

Κεφ. 2: Επίλυση συστημάτων εξισώσεων. 2.1 Επίλυση εξισώσεων Κεφ. : Επίλυση συστημάτων εξισώσεων. Επίλυση εξισώσεων. Επίλυση συστημάτων με απευθείας μεθόδους.. Μέθοδοι Gauss, Gauss-Jorda.. Παραγοντοποίηση LU (ειδικές περιπτώσεις: Cholesky, Thomas).. Νόρμες πινάκων,

Διαβάστε περισσότερα

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

Επιστηµονικός Υπολογισµός Ι Επιστηµονικός Υπολογισµός Ι Ενότητα 5 : Επίλυση Γραµµικών Συστηµάτων Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα

Διαβάστε περισσότερα

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Προσομοίωση μεγάλης κλίμακας γραμμικών κυκλωμάτων σε παράλληλες πλατφόρμες Ειδικό Θέμα Ιωαννίδης Κ. Σταύρος Αριθμός Ειδικού Μητρώου:

Διαβάστε περισσότερα

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

Διαβάστε περισσότερα

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Πολιτικών Μηχανικών Τοµέας Υδατικών Πόρων Μάθηµα: Τυπικά Υδραυλικά Έργα Μέρος 2: ίκτυα διανοµής Άσκηση E0: Μαθηµατική διατύπωση µοντέλου επίλυσης απλού δικτύου διανοµής

Διαβάστε περισσότερα

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU Επιμέλεια: Ι. Λυχναρόπουλος Παράδειγμα x y Να επιλυθεί το ακόλουθο σύστημα: x+ y 6 Σε μορφή πινάκων το σύστημα γράφεται ως: x y

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Ιδιάζουσες τιμές πίνακα. y έχουμε αντίστοιχα τις σχέσεις : Αυτές οι παρατηρήσεις συμβάλλουν στην παραγοντοποίηση ενός πίνακα

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

Διαβάστε περισσότερα

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α A1. Να γράψετε στο τετράδιό σας τους

Διαβάστε περισσότερα

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis)

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis) Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis) Η μέθοδος PCA (Ανάλυση Κύριων Συνιστωσών), αποτελεί μία γραμμική μέθοδο συμπίεσης Δεδομένων η οποία συνίσταται από τον επαναπροσδιορισμό των συντεταγμένων ενός

Διαβάστε περισσότερα

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #2 2 Γενικά Στο Εργαστήριο αυτό θα αναλύσουμε τη χρήση της βασικής εντολής ελέγχου ροής

Διαβάστε περισσότερα

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

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 3: Θεωρία Παράλληλου Προγραμματισμού

Διαβάστε περισσότερα

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΞΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr ΣΥΣΤΗΜΑΤΑ

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

Διαβάστε περισσότερα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: μέθοδοι μονοδιάστατης ελαχιστοποίησης Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 6 η /2017 Τι παρουσιάστηκε

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

Διαβάστε περισσότερα

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

Διαβάστε περισσότερα

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 3: Χειρισμός δεδομένων, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης Μαθησιακοί Στόχοι Η Ενότητα 3 διαπραγματεύεται θέματα

Διαβάστε περισσότερα

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 2. Η έννοια του προβλήματος 2 2. Η έννοια του προβλήματος 2.1 Το πρόβλημα στην επιστήμη των Η/Υ 2.2 Κατηγορίες προβλημάτων

Διαβάστε περισσότερα

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 8 «Ιδεατή Μνήμη» Διδάσκων: Δ. Λιαροκαπης Διαφάνειες: Π. Χατζηδούκας Ιδεατή Μνήμη Οργάνωση. Εισαγωγή. Ιδεατές και πραγματικές διευθύνσεις. Λογική οργάνωση. Τμηματοποίηση

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 1: Εισαγωγή στη C - Αλγόριθμοι Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

ΜΑΣ 371: Αριθμητική Ανάλυση ΙI ΑΣΚΗΣΕΙΣ. 1. Να βρεθεί το πολυώνυμο Lagrange για τα σημεία (0, 1), (1, 2) και (4, 2).

ΜΑΣ 371: Αριθμητική Ανάλυση ΙI ΑΣΚΗΣΕΙΣ. 1. Να βρεθεί το πολυώνυμο Lagrange για τα σημεία (0, 1), (1, 2) και (4, 2). ΜΑΣ 37: Αριθμητική Ανάλυση ΙI ΑΣΚΗΣΕΙΣ Να βρεθεί το πολυώνυμο Lagrage για τα σημεία (, ), (, ) και (4, ) Να βρεθεί το πολυώνυμο παρεμβολής Lagrage που προσεγγίζει τη συνάρτηση 3 f ( x) si x στους κόμβους

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

ΜΕΜ251 Αριθμητική Ανάλυση

ΜΕΜ251 Αριθμητική Ανάλυση ΜΕΜ251 Αριθμητική Ανάλυση Διάλεξη 06, 26 Φεβρουαρίου 2018 Μιχάλης Πλεξουσάκης Τμήμα Μαθηματικών και Εφαρμοσμένων Μαθηματικών Περιεχόμενα 1. Η ανάλυση LU 2. Η ανάλυση LDM T και η ανάλυση LDL T 3. Συμμετρικοί

Διαβάστε περισσότερα

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

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

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 1. Εισαγωγή Η λειτουργία της CPU καθορίζεται από τις εντολές που εκτελεί, και που ονομάζονται εντολές μηχανής (machine instructions) ή εντολές υπολογιστή (computer

Διαβάστε περισσότερα

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Γραµµική Αλγεβρα Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΛΟΓΙΣΜΙΚΟ (software)

ΛΟΓΙΣΜΙΚΟ (software) ΛΟΓΙΣΜΙΚΟ (software) Το Λογισµικό του Ηλεκτρονικού Υπολογιστή Περιεχόµενα Ορισµός Λογισµικού Κατηγορίες Λογισµικό Συστήµατος Λογισµικό Εφαρµογών Το λογισµικό είναι: Το λογισµικό Το σύνολο των προγραµµάτων

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

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

Διαβάστε περισσότερα

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων Κεφ. : Επίλυση συστημάτων αλγεβρικών εξισώσεων. Επίλυση απλών εξισώσεων. Επίλυση συστημάτων με απευθείας μεθόδους.. Μέθοδοι Gauss, Gauss-Jorda.. Παραγοντοποίηση LU (ειδικές περιπτώσεις: Cholesky, Thomas)..

Διαβάστε περισσότερα

Διάλεξη 04: Παραδείγματα Ανάλυσης

Διάλεξη 04: Παραδείγματα Ανάλυσης Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Συστήματα Παράλληλης

Διαβάστε περισσότερα