ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

Σχετικά έγγραφα
Θέματα Μεταγλωττιστών

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

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

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

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

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

Μέθοδοι Βελτιστοποίησης

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

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Η γλώσσα προγραμματισμού C

διανύσματα - Πίνακες - Struct Στατικό διάνυσμα Είσοδος Έξοδος δεδομένων Συναρτήσεις Χειρισμός σφαλμάτων ΤΕΤΑΡΤΗ ΔΙΑΛΕΞΗ

ΘΕΜΑ 1 ο. Στήλη Β Προτάσεις. β. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής. όταν η συνθήκη είναι ψευδής.

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

2. Δήλωση μεταβλητών. #include <avr/io.h> #include <util/delay.h> unsigned char i=0xa0; register unsigned char i asm("r3");

Γ ΤΑΞΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ÑÏÌÂÏÓ

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Προγραμματισμός Ι (ΗΥ120)

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Ακέραιος Γραμμικός Προγραμματισμός

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

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

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

Εφαρμογές μικροελεγκτών

Διαδικασιακός Προγραμματισμός

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

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

Ακέραιος Γραµµικός Προγραµµατισµός

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

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

Μοντελοποίηση προβληµάτων

Στήλη Β Προτάσεις. 1. Όσο συνθήκη επανάλαβε εντολές Τέλος_επανάληψης 2. Αρχή_επανάληψης εντολές Μέχρις_ότου συνθήκη

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ακέραιος Γραµµικός Προγραµµατισµός

Ακέραιος Γραμμικός Προγραμματισμός

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

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

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

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

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Κεφάλαιο 5: Στρατηγική χωροταξικής διάταξης

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 5 Ανάπτυξη Προγράμματος σε Γλώσσα Λίστας Εντολών

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Κεφάλαιο 7: Υπορουτίνες

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

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

8 FORTRAN 77/90/95/2003

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 10/04/2018

Προγραμματισμός & Έλεγχος Παραγωγής. Κεφ. 7 Χρονικός Προγραμματισμός Συμπληρωματικές Σημειώσεις

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

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

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

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 4 TΟ ΡΟΜΠΟΤΙΚΟ ΟΧΗΜΑ ROGUE BLUE

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

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

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

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

Συναρτήσεις. Υποπρόγραμμα

Εντολές γλώσσας μηχανής

Εισαγωγή στο Γραμμικό Προγραμματισμό

Προγραμματιστικές τεχνικές

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αναφορές, είκτες και Αλφαριθμητικά

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

Transcript:

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

Γιατί χρησιμοποιείται μοντελοποίηση των περιορισμών με ακεραίους? Υπάρχουν ήδη εργαλεία για τον υπολογισμό και την χρήση ακεραίων Μοντελοποιεί καλά μεγέθη όπως: τον αριθμό των register, τα επίπεδα τάσης, το μέγεθος του κώδικα, τον αριθμό των κύκλων ρολογιού. Εξασφαλίζεται χαμηλό υπολογιστικό κόστος Ο γραμμικός προγραμματισμός ακεραίων εγγυάται βέλτιστη λύση αντίθετα με ευριστικές μεθόδους

Παραδείγματα Παρουσιάζονται παρακάτω 4 αναλύσεις 1. Χρόνο-προγραμματισμός εκτέλεσης εντολών 2. Αποτελεσματικότητας χρήσης ενέργειας 3. Ελαχιστοποίησης μεγέθους κώδικα 4. Δέσμευσης καταχωρητών

Για τις ακόλουθες αναλύσεις ορίζουμε τα παρακάτω μεγέθη Χαρακτηριστικός αριθμός επεξεργαστή Source program:πληροφορίες για το πρόγραμμα είσοδο που θα μεταγλωττιστεί Target program:το απαιτούμενο format του προγράμματος το οποίο θα δημιουργηθεί Πρόβλημα: ο ορισμός της συνάρτησης (προβλήματος) που θα βελτιστοποιηθεί Μεταβλητές 0-1 :και οι 4 προαναφερθείσες αναλύσεις είναι τέτοιου τύπου μεταβλητές

Περιορισμοί: π.χ. Όπου V είναι μεταβλητές με τιμή 0ή1 και C σταθερές ακεραίων Objective function:η ανάλυση προσπαθεί να ελαχιστοποιήσει την συνάρτηση αυτή Code generation:η ανάλυση αυτή οδηγεί στην δημιουργία κώδικα

Μοντελοποίηση προγράμματος Έχουμε ένα σύνολο από εντολές s1,s2,..,sn P είναι το σύνολο των σημείων που μπορεί να βρίσκεται το πρόγραμμα Κάθε σημείο βρίσκεται ανάμεσα σε δύο εντολές ή προηγείται της s1 ή ακολουθεί την sn είναι ένα σύνολο από δύο σημεία Επιπλέον succ Όπου pi είναι σημεία του προγράμματος

Προγραμματισμός εντολών Ο επεξεργαστής έστω μπορεί να προγραμματίζει την εκτέλεση R εντολών ταυτόχρονα Ορίζουμε από 5 τιμές τέτοιο ώστε οι εντολές που βρίσκονται ανάμεσα στα δύο δεύτερα σημεία (p3,p4) δεν μπορούν να αρχίσουν να εκτελούνται νωρίτερα από W κύκλους από τότε που θα τελειώσει η εκτέλεση των εντολών που βρίσκονται ανάμεσα στα δύο πρώτα σημεία (p1,p2)

Ο στόχος που έχουμε είναι η δημιουργία ενός group από το πολύ R εντολές οι οποίες προγραμματίζονται ταυτόχρονα. Ο αριθμός των group αυτών ονομάζεται μήκος προγραμματισμού. Η επιθυμητή λύση του προβλήματος είναι η ελαχιστοποίηση του αριθμού των group για την εκτέλεση όσο το δυνατόν περισσότερων εντολών παράλληλα. 0-1 μεταβλητές ορίζονται τέτοιες ώστε για κάθε ζευγάρι σημείων και για κάθε κύκλο ρολογιού η μεταβλητή x είναι 1 αν η εντολή είναι προγραμματισμένο να εκτελεστεί σε αυτόν τον κύκλο.

Κάθε εντολή πρέπει να προγραμματιστεί σε ακριβώς έναν από M κύκλους και το πολύ R εντολές πρέπει να εκτελούνται παράλληλα. Έτσι προκύπτουν οι σχέσεις: Για κάθε ζευγάρι ο κύκλος στον οποίο θα εκτελεστεί μία εντολή δίνεται από την σχέση

Η εξασφάλιση του περιορισμού του Depn επιτυγχάνεται από την διατήρηση της ακόλουθης ανισότητας: Δημιουργείται λοιπόν το επιθυμητό πρόγραμμα και κάθε εντολή αν π.χ. ανήκει στο ζευγάρι (p1,p2) και τότε προγραμματίζεται στο i group του προγράμματος που δημιουργείται

Αποτελεσματική διαχείριση ενέργειας Ο επεξεργαστής έχει Ν επίπεδα τάσης Η αρχική πληροφορία είναι η ενέργεια που καταναλώνεται κατά την εκτέλεση ενός κομματιού κώδικα (ζεύγους σημείων) το οποίο εκτελείται σε επίπεδο τάσης Ε. Το πρόγραμμα που δημιουργείται διαφέρει από το αρχικό στο ότι έχει την επιπλέον εντολή slv i (set voltage level). O στόχος είναι η δημιουργία ενός προγράμματος που θα καταναλώνει την ελάχιστη ενέργεια.

Έχουμε την μεταβλητή VLVal( voltage level value) και υπάρχει μία για κάθε ζεύγος και κάθε επίπεδο τάσης. Είναι 1 όταν το επίπεδο τάσης που επιλέγεται για την εκτέλεση του συγκεκριμένου ζεύγους είναι αυτό που αυτή εκφράζει. Η SETVL(pi) είναι 1 αν το επίπεδο τάσης αλλάζει στο pi Ακριβώς ένα voltage level επιλέγεται για την εκτέλεση κάθε εντολής. Δηλαδή:

Καθώς ο συνολικός χρόνος εκτέλεσης δεν πρέπει να ξεπερνά το D έχουμε: όπου Ct είναι ο χρόνος εκτέλεσης Ο στόχος είναι η ελαχιστοποίηση της ακόλουθης συνάρτησης συνάρτησης που εκφράζει την κατανάλωση ενέργεια της εκτέλεσης του προγράμματος:

Ελαχιστοποίηση μεγέθους κώδικα Ο επεξεργαστής έχει Ν τράπεζες και η κάθε μία έχει Μ καταχωρητές επιπλέον ένας register pointer (RP) δείχνει την τράπεζα που χρησιμοποιείται. Το πρόγραμμα που δημιουργείται διαφέρει από το αρχικό καθώς έχει την εντολή srb b (set register bank) ακόμα για την ονομασία κάθε register χρησιμοποιείται και η τράπεζα στην οποία βρίσκεται Στόχος είναι η δημιουργία προγράμματος που θα καταλαμβάνει τον ελάχιστο δυνατό χώρο.

Η μεταβλητή r υπάρχει για κάθε μεταβλητή και κάθε τράπεζα και είναι 1 αν η μεταβλητή προγράμματος που η r περιγράφει βρίσκεται στην τράπεζα που η r αναφέρεται. H RPVal είναι 1 αν η τράπεζα που χρησιμοποιείται για την εκτέλεση του ζεύγους (pi, pj) είναι αυτή στην οποία αναφέρεται. H μεταβλητή είναι 1 αν ο RP κατά την διάρκεια εκτέλεσης του ζεύγους (p1,p2) είναι διαφορετικός από αυτόν στον οποίο αναφέρεται η u H μεταβλητή είναι 1 αν ο RP κατά την διάρκεια εκτέλεσης του ζεύγους (p1,p2) είναι διαφορετικός από μία τουλάχιστον από το σύνολο των μεταβλητών στις οποίες αναφέρεται.

Οι περιορισμοί είναι οι ακόλουθοι: Ο στόχος είναι η ελαχιστοποίηση της συνάρτησης: με τοποθέτηση των μεταβλητών στα διάφορα register banks

Δέσμευση register O επεξεργαστής περιέχει Κ registers Δημιουργούνται επιπλέον εντολές οι οποίες διαβάζουν από registers και γράφουν σε θέσεις μνήμης ή το αντίστροφο το κόστος διαβάσματος είναι Cl και το κόστος γραψίματος Cs ενώ το κόστος fetching και decodig μιάς εντολής είναι Ci Οι μεταβλητές που χρησιμοποιούνται είναι οι ακόλουθες:

Για την ελαχιστοποίηση του χρόνου εκτέλεσης του προγράμματος πρέπει να ελαχιστοποιηθεί η ακόλουθη συνάρτηση:

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

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