Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

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

Download "Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας"

Transcript

1 Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: Αρχές Παράλληλου Προγραμματισμού. Τεχνικές παραλληλοποίησης υπολογισμών. Δρ. Μηνάς Δασυγένης Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

4 Σκοπός της Ενότητας Η κατανόηση των βασικών αρχών και τεχνικών παραλληλοποίησης. Η κατανόηση της ανάθεσης εργασιών σε επεξεργαστές. 4

5 Διαδικασία Παραλληλοποίησης Προγράμματος (1/3) Η ανάπτυξη Αλγόριθμων γίνεται συνήθως με την επεξεργασία ενός υπάρχοντος σειριακού αλγόριθμου. Τα βήματα που ακολουθούνται είναι τα εξής: 1. Διάσπαση (decomposition) του αλγόριθμου σε εργασίες (tasks) οι οποίες μπορούν να εκτελεστούν σειριακά ή πιθανόν και παράλληλα. 2. Ανάθεση των εργασιών σε διεργασίες (processes). 3. Χρονοδρομολόγηση των διεργασιών σε επεξεργαστές: 1. Αντιστοίχηση κάθε διεργασίας με έναν επεξεργαστή. 2. Απόφαση για τον χρόνο που θα εκτελεστούν. 5

6 Διαδικασία Παραλληλοποίησης Προγράμματος (2/3) Ορολογία: Εργασία (task): το μικρότερο κομμάτι κώδικα που δε διασπάται σε μικρότερα τμήματα (αυθαίρετο). Χοντροκομμένη εργασία (coarse grain task): Όταν ο κώδικας που εμπεριέχεται στην εργασία είναι σχετικά μεγάλος. Ψιλοκομμένη εργασία (fine grain task): Όταν ο κώδικας που εμπεριέχεται στην εργασία είναι σχετικά μικρός. Διεργασία (process): σύνολο από εργασίες (ομάδα εργασιών) που εκτελούνται στον ίδιο επεξεργαστή. 6

7 Διαδικασία Παραλληλοποίησης Προγράμματος (3/3) Βήμα 1ο: Διάσπαση του αλγόριθμου σε εργασίες. Ο αλγόριθμος χωρίζεται σε εργασίες που θεωρούνται μη περαιτέρω διασπάσιμες. Κυριότερο Πρόβλημα: Να γίνει ανάθεση τμημάτων κώδικα σε ξεχωριστές εργασίες, ώστε να αποκαλυφθεί όσο το δυνατόν περισσότερος παραλληλισμός όσο το δυνατόν πιο ανεξάρτητες μεταξύ τους. 7

8 Βήμα 1ο: Διάσπαση του αλγόριθμου σε εργασίες: Παράδειγμα Μπορούμε να απεικονίσουμε την παρακάτω διαδικασία με έναν γράφο εξάρτησης (dependence graph), δηλαδή με ένα γράφημα που να δείχνει τις εξαρτήσεις μεταξύ των πράξεων. 8

9 Βήμα 1ο: Διάσπαση του αλγόριθμου σε εργασίες: Γράφος Εξάρτησης (1/2) Θεωρούμε ότι μια εντολή είναι και μια εργασία. Η πρώτη φάση εκτελείται τελείως παράλληλα, η δεύτερη μόνο σειριακά. Αν υποθέσουμε ότι μια πράξη f(x) απαιτεί χρόνο Τ όσο και μια πρόσθεση τότε η σειριακή εκτέλεση απαιτεί χρόνο Τσ = 12ΤΜέγιστο μονοπάτι γράφου: Τπ=7Τ Ο λόγος Τσ/Τπ φανερώνει τον παραλληλισμό, εδώ: 12/7 = 1.7 ᅢ 9

10 Βήμα 1ο: Διάσπαση του αλγόριθμου σε εργασίες: Γράφος Εξάρτησης (2/2) Εδώ στη δεύτερη φάση γίνεται μια ιεραρχική άθροιση των αποτελεσμάτων της 1ης φάσης ανά 2 και αυξάνεται ο παραλληλισμός. Καλύτερη απόδοση: Τσ/Τπ = 11/4 =

11 Βήμα 1ο: Διάσπαση του αλγόριθμου σε εργασίες Υπάρχουν 2 κύριοι τρόποι διάσπασης ενός αλγορίθμου σε εργασίες: 1. Domain Decomposition (Διάσπαση Πεδίου Ορισμού): Στην διάσπαση αυτή τα δεδομένα χωρίζονται σε τμήματα και κάθε εργασία ασχολείται με ένα από αυτά τα τμήματα. 2. Functional Decomposition (Λειτουργική Διάσπαση): Σε αυτόν τον τρόπο διάσπασης το πρόβλημα αποσυντίθεται με βάση τις εργασίες που πρέπει να γίνουν. 11

12 Διάσπαση Πεδίου Ορισμού (1/3) Μπορεί να εφαρμοσθεί εάν τα υποσύνολα των δεδομένων είναι πλήρως ανεξάρτητα μεταξύ τους, τότε το πρόβλημα χαρακτηρίζεται σαν embarrassingly parallel problem. 12

13 Πιθανές Διασπάσεις πεδίου ορισμού 13

14 Διάσπαση Πεδίου Ορισμού (2/3) Προσοχή: Πρέπει να αποκαλύπτεται όσο το δυνατόν περισσότερος παραλληλισμός. Πρέπει να ελαχιστοποιείται το κρίσιμο τμήμα. Παράδειγμα: Έστω θέλουμε να βρούμε το συνολικό άθροισμα των στοιχείων ενός διανύσματος. Ακολουθιακός κώδικας: for(k=0;k<ν;κ++) { sum=sum+a[k]; } 14

15 Διάσπαση Πεδίου Ορισμού (3/3) Μη αποδοτικός παράλληλος κώδικας για 2 νήματα με id=0 και id=1: for(k=id*n/2 + 1;k<(id+1)*N/2;i++) {mutex_lock(key);sum=sum+a[k];mutex_unlock(key)} Αποδοτικός παράλληλος κώδικας για 2 νήματα με id=0 και id=1: for(k=id*n/2 + 1;k<(id+1)*N/2;i++) {local_sum=local_sum+a[k];} mutex_lock(key); sum=sum+local_sum; mutex_unlock(key); 15

16 Λειτουργική Διάσπαση Μπορεί να εφαρμοσθεί σε περιπτώσεις όπου όλα ή περισσότερα από τα δεδομένα πρέπει να είναι διαθέσιμα για κάθε μια από τις διεργασίες. 16

17 Εύρεση Δυνατότητας Παραλληλισμού (1/2) Πριν επιλέξουμε κάποιον από τους δύο τρόπους διάσπασης ενός αλγορίθμου, θα πρέπει να ξεκινήσουμε με το εξής ερώτημα: Είναι το προς εξέταση πρόγραμμα Παραλληλοποιήσιμο; 17

18 Εύρεση Δυνατότητας Παραλληλισμού Παράδειγμα 1 ο Μόριο του μήνα (Μάρτιος 2009): Υδρογενάση, έχει την ιδιότητα να διασπά το νερό σε μοριακό Υδρογόνο. Παράδειγμα 1. Υπολογίστε την δυναμική ενέργεια μερικών χιλιάδων διαμορφώσεων του πρωτεϊνικού ορίου και εντοπίστε αυτό με την χαμηλότερη ενέργεια (global minimum) Είναι παραλληλοποιήσιμο γιατί κάθε διαμόρφωση του ορίου (γεωμετρία, ενέργεια) είναι ανεξάρτητη οντότητα από τις υπόλοιπες διαμορφώσεις. 18

19 Εύρεση Δυνατότητας Παραλληλισμού Παράδειγμα 2 ο (1/3) Βρείτε τον πληθυσμό των κουνελιών που θα παραχθούν στο τέλος ενός έτους εάν κάνουμε τις παρακάτω παραδοχές: A. Ξεκινήστε με ένα ζεύγος κουνελιών (1 αρσενικό και 1 θηλυκό) που γεννήθηκαν την 01/01. B. Υποθέτουμε ότι όλοι οι μήνες έχουν ίδιες ημέρες. C. Τα κουνέλια ενηλικιώνονται και αρχίζουν να ζευγαρώνουν 1 μήνα μετά την γέννησή τους και μπορούν να γεννούν κάθε 1 μήνα μετά την ενηλικίωση. D. Κάθε φορά που έχουμε γεννητούρια παράγονται 1 αρσενικό και 1 θηλυκό. E. Κανένα κουνέλι δεν πεθαίνει ή τρώγεται. F. Δεν υπάρχουν ηθικοί κανόνες περί αιμομιξίας. Πόσα κουνέλια θα υπάρχουν συνολικά μέχρι το τέλος του χρόνου (31/12); 19

20 Εύρεση Δυνατότητας Παραλληλισμού Παράδειγμα 2 ο (2/3) 20

21 Εύρεση Δυνατότητας Παραλληλισμού Παράδειγμα 2 ο (3/3) Λύση στο παραπάνω πρόβλημα έδωσε ο Leonardo da Pisa "son of Bonaccio", το 1202 και είναι η γνωστή ακολουθία Fibonacci: F(k+2) = F(k+1) + F(k) 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,... Μπορεί το παραπάνω πρόβλημα να παραλληλοποιηθεί; Θα προτείνατε σε έναν που εκτρέφει κουνέλια να έκανε μια επένδυση σε παράλληλη μηχανή ώστε να υπολογίζει τον πληθυσμό των κουνελιών με ακρίβεια ; Δεν είναι παραλληλοποιήσιμο πρόβλημα γιατί υπάρχει άμεση εξάρτηση του κάθε επόμενου όρου που πρόκειται να υπολογιστεί με τους 2 αμέσως προηγούμενους (καλύτερα ο εκτροφέας να τα επενδύσει σε περίφραξη!). 21

22 Εύρεση Δυνατότητας Παραλληλισμού (2/2) Αν το πρόβλημα είναι παραλληλοποιήσημο πρέπει να έχουμε σιγουρευτεί για τα παρακάτω: 1. Η σειριακή μορφή του προγράμματος (αν υπάρχει) παράγει αποτελέσματα. 2. Ο προτεινόμενος αλγόριθμος δεν περιέχει σφάλματα (λογικά, αριθμητικά bug free). Ο νέος παράλληλος αλγόριθμος πρέπει να είναι ισοδύναμος με τον αρχικό, δηλαδή η παράλληλη μορφή του προγράμματος πρέπει εν τέλει να παράγει τα ίδια αποτελέσματα με την σειριακή του μορφή. 22

23 1 ο Παράδειγμα Πρόβλημα: Να γραφεί ένα πρόγραμμα όπου από 4 στοιχεία ενός πίνακα να βρίσκει τα εξής: 1. Άθροισμα, 2. Γινόμενο, 3. Μέγιστο, 4. Ελάχιστο. 23

24 1 ο Παράδειγμα Σειριακού Προγράμματος #include <stdio.h> #define SIZE 4 #define SIZE 4 int main (int argc, char* argv[]) { int counter, sum, i; float sum, prod, a[size] = {1.0, 2.0, 3.0, 4.0}; sum = 0.0; prod = 1.0; max = a[0]; min = a[0]; for (i = 0; i < SIZE; i++) { sum = sum + a[i]; prod = prod * a[i]; if (max < a[i]) max = a[i]; if (max < a[i]) max = a[i]; if (min > a[i]) min = a[i]; } printf ( Sum= %d, Product= %d, Max= %f, Min= %f \n", sum, prod, max, min); return (0); } 24

25 Παράδειγμα Παραλληλοποίησης Προγράμματος με την μέθοδο: Functional Decomposition (1/2) Πρόβλημα: Να γραφεί μια παράλληλη μορφή του προηγούμενου προγράμματος όπου κάθε διεργασία (εκτός της διεργασίας 0) θα αναλάβει να εκτελέσει κάθε μια από τις πράξεις 1) Άθροισμα, 2) Γινόμενο, 3)Μέγιστο, 4) Ελάχιστο. Δεν υπάρχει κάποια εξάρτηση στα δεδομένα. Κάθε διεργασία μπορεί να ανατεθεί σε έναν επεξεργαστή. 25

26 Παράδειγμα Παραλληλοποίησης Προγράμματος με την μέθοδο: Functional Decomposition (2/2) Το πρόγραμμα αυτό μπορεί να γίνει με OpenMPI και με 5 ranks. Το πρώτο rank στέλνει τον πίνακα στα υπόλοιπα, ενώ τα rank (1 έως 4) έχουν αναλάβει να κάνουν μια συγκεκριμένη λειτουργία από τις: άθροισμα, γινόμενο, ελάχιστο, μέγιστο. 26

27 2 ο Παράδειγμα Σειριακού Προγράμματος Πρόβλημα: Να γραφεί ένα πρόγραμμα που να υπολογίζει το άθροισμα των στοιχείων ενός πίνακα. #include <stdio.h> #define SIZE main (int argc, char *argv[]) int i, sum, Tsum, data[size]; for (i=0; i < SIZE; i++) {data[i] = i+1; } Tsum = 0; for (i=0; i < SIZE; i++) { Tsum = Tsum + data[i]; } printf ("Total Sum %d \n", Tsum); return (0); } 27

28 Παράδειγμα Παραλληλοποίησης Προγράμματος με την μέθοδο: Domain Decomposition (1/2) Πρόβλημα: Να γραφεί μια παράλληλη μορφή του προηγούμενου προγράμματος, όπου κάθε διεργασία (εκτός της διεργασίας 0) θα αναλάβει να εκτελέσει ένα τμήμα του συνολικού αθροίσματος των στοιχείων του πίνακα. Το συνολικό αποτέλεσμα να προκύπτει από το άθροισμα των επιμέρους αθροισμάτων από την διεργασία 0. Δεν υπάρχει κάποια εξάρτηση στα δεδομένα. Κάθε διεργασία μπορεί να ανατεθεί σε έναν επεξεργαστή. Υπάρχει εξάρτηση στο συνολικό άθροισμα. 28

29 Παράδειγμα Παραλληλοποίησης Προγράμματος με την μέθοδο: Domain Decomposition (2/2) Το πρόγραμμα αυτό μπορεί να γίνει με OpenMPI στο οποίο υπολογίζονται ποια δεδομένα θα σταλούν σε κάθε rank (μπορεί να χρησιμοποιηθεί η συνάρτηση scatter). Το κάθε rank χρησιμοποιεί τα δεδομένα που του έχουν σταλεί και κάνει τον υπολογισμό. Στο τέλος στέλνει στο αρχικό rank το άθροισμα. Το αρχικό rank προσθέτει τα μερικά αθροίσματα και υπολογίζει το συνολικό. 29

30 Συνοψίζοντας Υπάρχουν 2 κύριοι τρόποι διάσπασης ενός αλγορίθμου σε εργασίες: Domain Decomposition (Διάσπαση Πεδίου Ορισμού). Functional Decomposition (Λειτουργική Διάσπαση). Μελετάμε το πρόβλημα αν όντως είναι παραλληλοποιήσημο: Ο γράφος εξάρτησης αποκαλύπτει σχέσεις εξάρτησης μεταξύ των εργασιών. Η ύπαρξη της σειριακής μορφής ενός προγράμματος βοηθά την ανάλυση για την κατασκευή της παράλληλης μορφής, καθώς επίσης και για επαλήθευση των αποτελεσμάτων. 30

31 Βήμα 2 ο : Ανάθεση εργασιών σε Διεργασίες Στο βήμα αυτό αναζητείται η βέλτιστη ομαδοποίηση των εργασιών, ώστε κάθε ομάδα που καλείται διεργασία να εκτελείται σε έναν και μόνο επεξεργαστή. Οι στόχοι της ανάθεσης είναι τρεις: 1. Η εξισορρόπηση του φόρτου εργασίας. 2. Η ελαχιστοποίηση της επικοινωνίας μεταξύ των διεργασιών. 3. Η μείωση του χρόνου που απαιτείται για τη διαχείριση της ανάθεσης. 31

32 Η εξισορρόπηση του φόρτου εργασίας (load balancing) (1/2) Η εξισορρόπηση αυτή σχετίζεται: A. Με το ποσοστό του κώδικα που εκτελεί κάθε διεργασία. B. Με τη χρήση της εισόδου και της εξόδου. C. Με την χρήση της μνήμης. D. Με την επικοινωνία μεταξύ των διεργασιών. Επιδιώκεται να ισοκατανέμεται ο φόρτος υπολογισμού, ώστε οι διεργασίες να έχουν όσο το δυνατόν μικρότερη διαφορά στους χρόνους περάτωσης. Η πιο αργή διεργασία καθορίζει και τον μέγιστο χρόνο εκτέλεσης του προγράμματος. 32

33 Η εξισορρόπηση του φόρτου εργασίας (load balancing) (2/2) Οι 4 εργασίες έχουν να εκτελέσουν κάποιο κομμάτι κώδικα και έχουν μεταξύ τους διαφορετικό χρόνο περάτωσης της δουλειάς που τους έχει ανατεθεί. Αποτέλεσμα: Η εργασία 3 είναι η πιο χρονοβόρα και καθυστερεί την ολοκλήρωση ολόκληρου του υπολογισμού. Επιπλέον: στην εργασία 1 έχει ανατεθεί συγκριτικά αρκετά μικρότερος όγκος υπολογισμού. 33

34 Η ελαχιστοποίηση της επικοινωνίας μεταξύ των διεργασιών (1/3) Η επικοινωνία μεταξύ διεργασιών συνεπάγεται τελικά επικοινωνία μεταξύ επεξεργαστών. Κοστίζει σε: Α) Χρήμα Β) Χρόνο. Χρήμα: Διότι ο σχεδιασμός συνεπάγεται και ένα κόστος σε εξοπλισμό. Μη συνετός σχεδιασμός==> Υψηλό κόστος χωρίς βέλτιστη απόδοση. Χρόνο: Λόγο της τοπολογίας του Δικτύου διασύνδεσης πολλές φορές η επικοινωνία απαιτεί πολλά βήματα. Επιπλέον η συχνή ανταλλαγή μηνυμάτων προκαλεί κυκλοφοριακή συμφόρηση (φαινόμενο bottleneck) και μειώνεται η συνολική απόδοση. Επομένως, η ανταλλαγή μηνυμάτων πρέπει να περιορίζεται σε όσο το δυνατόν χαμηλότερα επίπεδα. 34

35 Η ελαχιστοποίηση της επικοινωνίας μεταξύ των διεργασιών (2/3) Οι εργασίες που τροφοδοτούν η μια την άλλη με σειριακό τρόπο (δημιουργώντας μια αλυσίδα στον γράφο εξάρτησης) είναι προτιμότερο να ανήκουν στην ίδια διεργασία. Γιατί; Οι εργασίες εκτελούνται όλες στον ίδιο επεξεργαστή ==> Με αυτόν τον τρόπο η επικοινωνία είναι πιο γρήγορη και επιπλέον δεν φορτώνεται το δίκτυο. Παράδειγμα: 12 εργασίες που επικοινωνούν σε διάφορα σημεία, με τον παρακάτω γράφο εξάρτησης: 35

36 Η ελαχιστοποίηση της επικοινωνίας μεταξύ των διεργασιών (3/3) Δύο πιθανές ομαδοποιήσεις των διεργασιών σε ομάδες των 4 εργασιών: Κέρδος: Μόνο 3 γραμμές στον Β τρόπο επικοινωνίας, έναντι 12 στον Α. Γενικά επιδιώκεται να γίνεται επικοινωνία των εργασιών μέσα στην ίδια διεργασία (εσωτερική επικοινωνία). 36

37 Είδη Επικοινωνίας Από σημείο-προς-σημείο. Συλλογικές (broadcast, scatter, gather, reduction). 37

38 Η μείωση του χρόνου που απαιτείται για τη διαχείριση της ανάθεσης Η απόφαση της ανάθεσης εργασιών σε ομάδες - διεργασίες μπορεί να γίνει με 3 τρόπους: A. Στατικός Τρόπος: Όταν ο γράφος εξάρτησης είναι σχετικά απλός γιατί υπάρχουν ανεξάρτητες σειριακές αλυσίδες εργασιών και έτσι η ομαδοποίηση τους είναι εύκολη ==>Ταχεία διαδικασία ανάθεσης. B. Ημι-στατικός τρόπος: Οι εργασίες ομαδοποιούνται με κάποιον ευρηστικό αλγόριθμο, οι ομαδοποιήσεις δεν είναι πάντα οι βέλτιστες. Συνήθως οι ομαδοποιήσεις αναθεωρούνται ώστε να βρεθούν βέλτιστες. C. Δυναμικός τρόπος ανάθεσης: Χρησιμοποιείται όταν η εξέλιξη των εργασιών είναι απρόβλεπτη (π.χ. κάποια μνήμη κάνει πιο συχνά swap στον δίσκο). 38

39 Χρονοδρομολόγηση των διεργασιών σε επεξεργαστές (1/4) Στο βήμα αυτό το σύνολο των διεργασιών που έχουν παραχθεί στα βήματα 1 και 2 πρέπει να ανατεθούν προς εκτέλεση σε κάποιους επεξεργαστές. Επομένως εδώ πρέπει να δοθεί μια απάντηση στα εξής ερωτήματα: A. Πού θα τρέξω την εφαρμογή; (Σε ποιους επεξεργαστές). B. Πότε θα τρέξω την εφαρμογή; (Σε ποια χρονική στιγμή). Η απάντηση στις 2 παραπάνω ερωτήσεις δίνεται από αλγόριθμους που αναλαμβάνουν την κατάρτιση χρονοδιαγράμματος εκτέλεσης των εργασιών που λέγεται χρονοδρομολόγηση (scheduling). 39

40 Χρονοδρομολόγηση των διεργασιών σε επεξεργαστές (2/4) Σημαντικό: Να ανατεθούν οι διεργασίες στους κατάλληλους επεξεργαστές ώστε να ελαχιστοποιηθεί ο συνολικός χρόνος εκτέλεσης της εφαρμογής. Οι μέθοδοι χρονοδρομολόγησης διακρίνονται σε 2 κατηγορίες: A. Ντετερμινιστικές μέθοδοι χρονοδρομολόγησης (σε γενικές γραμμές ο χρόνος εκτέλεσης είναι σταθερός). B. Μη ντετερμινιστικές μέθοδοι χρονοδρομολόγησης (ο χρόνος εκτέλεσης δεν είναι σταθερός). 40

41 Χρονοδρομολόγηση των διεργασιών σε επεξεργαστές (3/4) Οι μέθοδοι χρονοδρομολόγησης κατηγοριοποιούνται επίσης και με την δυναμική ή όχι ανάθεση των διεργασιών: A. Στατικές μέθοδοι χρονοδρομολόγησης Αποφασίζεται εξαρχής σε ποιόν επεξεργαστή θα εκτελεστεί η κάθε διεργασία. Εφόσον γίνει αυτή η ανάθεση, η διεργασία εκτελείται στον ίδιο επεξεργαστή κάθε φορά που ζητείται η εκτέλεσή της ανεξάρτητα από τον φόρτο εργασίας. B. Δυναμικές μέθοδοι χρονοδρομολόγησης Η ανάθεση σε κάποιον επεξεργαστή αποφασίζεται κατά την ώρα εκτέλεσης του προγράμματος λαμβάνοντας υπόψιν τον φόρτο εργασίας κάθε επεξεργαστή. 41

42 Χρονοδρομολόγηση των διεργασιών σε επεξεργαστές (4/4) Πλεονέκτημα των στατικών μεθόδων δρομολόγησης: Η ταχύτητα απόφασης είναι μεγάλη αφού η ανάθεση έχει προαποφασιστεί και δεν αλλάζει. Πλεονέκτημα των δυναμικών μεθόδων: Κάνουν καλύτερη διαχείριση του συστήματος αφού η ευελιξία τους στην ανάθεση διεργασιών εξισορροπεί το φόρτο λειτουργίας των επεξεργαστών και διευκολύνει την καλύτερη απόδοση του συστήματος. Μειονέκτημα των στατικών μεθόδων είναι η μη εξισορρόπηση του φόρτου λειτουργίας των επεξεργαστών. Μειονέκτημα των δυναμικών μεθόδων: σπαταλούν χρόνο εκτέλεσης για να αποφασίσουν εκείνη τη στιγμή τις αναθέσεις. 42

43 Ντετερμινιστικό Μοντέλο με μηδενικό χρόνο επικοινωνίας 43

44 Ντετερμινιστικές Μέθοδοι Χρονοδρομολόγησης Στις ντετερμινιστικές μεθόδους χρονοδρομολόγησης θεωρείται ότι οι σχέσεις μεταξύ των εργασιών και ο χρόνος εκτέλεσης είναι σταθερός και γνωστός εκ των προτέρων. Στην πράξη δεν ισχύει πάντα, π.χ. περιπτώσεις όπου υπάρχουν άλματα στον αλγόριθμο υπό συνθήκη ή καθυστερήσεις λόγο εμφάνισης swaps στον δίσκο. 44

45 Ντετερμινιστικό Μοντέλο με μηδενικό χρόνο επικοινωνίας (1/5) Κάνουμε τις εξής δύο προσεγγίσεις: A. Οι χρόνοι εκτέλεσης των εργασιών είναι εκ των προτέρων γνωστοί και δεν εξαρτώνται από αστάθμητους παράγοντες, όπως αποτυχίες της cache, disk swaps, κλπ. (ντετερμινιστικό μοντέλο - δηλαδή δεν υπεισέρχεται ο παράγων τύχη). B. Ο χρόνος επικοινωνίας μεταξύ των επεξεργαστών είναι μηδενικός. Για να καταλάβουμε τη σημασία του συνδυασμού ανάθεσης και χρονοδρομολόγησης ακόμη και στην απλή αυτή περίπτωση ας θεωρήσουμε τον αλγόριθμο που περιγράφεται από τον παρακάτω ντετερμινιστικό Γράφο Εξάρτησης. 45

46 Ντετερμινιστικό Μοντέλο με μηδενικό χρόνο επικοινωνίας (2/5) Κάθε κόμβος του γράφου είναι και μια διαφορετική εργασία (task) η οποία μπορεί να εξαρτάται από τα αποτελέσματα κάποιων άλλων εργασιών ενώ ταυτόχρονα μπορεί να τροφοδοτεί άλλες εργασίες με τα δικά της αποτελέσματα. Δίπλα σε κάθε εργασία αναγράφεται και ο χρόνος εκτέλεσής της σε υποθετικές μονάδες χρόνου (π.χ. nsec, ή κύκλοι επεξεργαστή). Παράδειγμα αλγόριθμου με ντετερμινιστικό Γράφο Εξάρτησης: 46

47 Ντετερμινιστικό Μοντέλο με μηδενικό χρόνο επικοινωνίας (3/5) Δίνονται δύο διαφορετικές αναθέσεις και χρονοδιαγράμματα εκτέλεσης σε ένα σύστημα με τρεις επεξεργαστές: P1, P2, P3, με βάση τις παραπάνω παραδοχές. Ανάθεση 1: 47

48 Ντετερμινιστικό Μοντέλο με μηδενικό χρόνο επικοινωνίας (4/5) Χαρακτηριστικά 1ης ανάθεσης: Οι εργασίες Ε1, Ε2, Ε3, Ε6 αποτελούν την πρώτη διεργασία, η οποία εκτελείται στον επεξεργαστή P1. Η εργασία Ε4 αποτελεί τη δεύτερη διεργασία που εκτελείται στον P2. Η εργασία Ε5 αποτελεί την τρίτη διεργασία που εκτελείται στον P3. 48

49 Ντετερμινιστικό Μοντέλο με μηδενικό χρόνο επικοινωνίας (5/5) 2η ανάθεση: Οι εργασίες Ε1, Ε2, Ε4, Ε6 αποτελούν την πρώτη διεργασία η οποία εκτελείται στον επεξεργαστή P1. Η εργασία Ε5 αποτελεί τη δεύτερη διεργασία που εκτελείται στον P2. Η εργασία Ε3 αποτελεί την τρίτη διεργασία που εκτελείται στον P3. 49

50 Συμπεράσματα αναθέσεων Από τα παραπάνω φαίνεται ότι οι διαφορετικές αναθέσεις σε συνδυασμό με τα διαφορετικά χρονοδιαγράμματα δίνουν διαφορετικά αποτελέσματα ως προς το συνολικό χρόνο εκτέλεσης Τ του αλγορίθμου. Ο πρώτος τρόπος χρονοδρομολόγησης δίνει Τ=700, ενώ ο δεύτερος δίνει Τ=600. Επομένως, έχοντας σαν δεδομένα: A. το γράφο εξάρτησης των εργασιών. B. τους χρόνους εκτέλεσης της κάθε εργασίας. C. το πλήθος των διαθέσιμων επεξεργαστών. Πώς μπορούμε να βρούμε την καλύτερη ανάθεση και το καλύτερο χρονοδιάγραμμα; Απάντηση: Δεν υπάρχουν βέλτιστες λύσεις γενικής μορφής, αλλά κατά περίπτωση. 50

51 Περίπτωση όπου ο γράφος εξάρτησης των εργασιών είναι δάσος εισόδου (1/5) Ορισμός: Ένας γράφος εξάρτησης (ΓΕ) καλείται δάσος εισόδου όταν κάθε κόμβος έχει μόνο μια ακμή εξόδου. Αντίστοιχα καλείται δάσος εξόδου αν κάθε κόμβος έχει μόνο μια ακμή εισόδου. Παράδειγμα: Ο παρακάτω ΓΕ είναι ένα δάσος εισόδου (διότι κάθε κόμβος έχει μια μόνο έξοδο ενώ οι είσοδοι κάθε κόμβου αποτελούν ένα "δάσος"). 51

52 Περίπτωση όπου ο γράφος εξάρτησης των εργασιών είναι δάσος εισόδου (2/5) Στην συγκεκριμένη περίπτωση χρησιμοποιώντας την έννοια της προτεραιότητας μπορούμε να κάνουμε βέλτιστη ανάθεση και βέλτιστη χρονοδρομολόγηση. Διαδικασία: Δίνουμε μεγαλύτερη προτεραιότητα στους κόμβους ανάλογα με την απόστασή τους από τον τελευταίο κόμβο του γράφου. Ο κόμβος Ν είναι τελευταίος=> παίρνει προτεραιότητα 1. Οι κόμβοι Λ, Μ, του αμέσως προηγούμενου επιπέδου παίρνουν προτεραιότητα 2. Οι κόμβοι Θ, Ι, Κ, του πιο πάνω επιπέδου παίρνουν προτεραιότητα 3. κ.ο.κ. Με τον τρόπο αυτό προκύπτει ο παρακάτω πίνακας όλων των προτεραιοτήτων. 52

53 Περίπτωση όπου ο γράφος εξάρτησης των εργασιών είναι δάσος εισόδου (3/5) Πίνακας όλων των προτεραιοτήτων που προκύπτουν από τον ΓΕ. Στη συνέχεια αναθέτουμε την εκτέλεση των εργασιών με σειρά προτεραιότητας στους διαθέσιμους επεξεργαστές λαμβάνοντας υπόψιν τις ακμές εξάρτησης. Αν για παράδειγμα έχουμε 3 επεξεργαστές P1, P2, P3, τότε ο πίνακας χρονισμού έχει ως εξής: 53

54 Περίπτωση όπου ο γράφος εξάρτησης των εργασιών είναι δάσος εισόδου (4/5) Ο εκθέτης που αναγράφεται σε κάθε εργασία αντιστοιχεί στην προτεραιότητά της. Τα γκρίζα βελάκια αντιστοιχούν στις εξαρτήσεις μεταξύ των εργασιών (σύμφωνα με το γράφο εξάρτησης). Η χρονοδρομολόγηση γίνεται, αναθέτοντας πρώτα τις εργασίες με τη μεγαλύτερη προτεραιότητα στους επεξεργαστές που είναι διαθέσιμοι και κατόπιν τις εργασίες με τη μικρότερη προτεραιότητα. 54

55 Περίπτωση όπου ο γράφος εξάρτησης των εργασιών είναι δάσος εισόδου (5/5) Αναθέτουμε πρώτα τις τρεις εργασίες Α, Β, Γ με τη μεγαλύτερη προτεραιότητα στους τρεις επεξεργαστές για κύκλο t=1. Έπειτα αναθέτουμε τις εργασίες Δ, Ε, Ζ, κατά τον κύκλο t=2. Στον κύκλο t=3 αναθέτουμε μόνο τις εργασίες Η, Θ, Κ, και όχι την εργασία Ι διότι πρέπει να προηγείται η Η από τη Ι. Στον κύκλο 4 δε μπορούμε να εκτελέσουμε την Λ διότι εξαρτάται από την Ι. Στον κύκλο 5 δεν μπορούμε να εκτελέσουμε τη Ν διότι εξαρτάται από τη Λ. Έτσι ο πίνακας χρονισμού που προκύπτει είναι ο καλύτερος δυνατός όσον αφορά το συνολικό χρόνο εκτέλεσης του αλγορίθμου. 55

56 Ειδική περίπτωση: Εάν υπάρχουν μόνο 2 επεξεργαστές (1/6) Ποιος είναι ο αλγόριθμος ανάθεσης και χρονοδρομολόγησης; Όποια και εδώ η βασική ιδέα είναι η ανάθεση προτεραιότητας στους κόμβους. Παράδειγμα: Έστω ο γράφος εξάρτησης: 56

57 Ειδική περίπτωση: Εάν υπάρχουν μόνο 2 επεξεργαστές (2/6) Βήμα 1. Δίνουμε αυθαίρετα προτεραιότητες 1, 2,..., Μ στα φύλλα του γράφου, δηλαδή στους κόμβους που δεν έχουν παιδιά. Στη συγκεκριμένη περίπτωση οι κόμβοι αυτοί είναι δύο: Ι, Κ. Χρωματίζουμε τους κόμβους αυτούς γκρι. 57

58 Ειδική περίπτωση: Εάν υπάρχουν μόνο 2 επεξεργαστές (3/6) Βήμα 2. Βρίσκουμε όλους τους κόμβους που έχουν όλα τους τα παιδιά γκρι. Δηλαδή οι κόμβοι: Ζ, Η, Θ. Τους κόμβους αυτούς τους κατατάσσουμε σε σειρά ανάλογα με τη μεγαλύτερη προτεραιότητα των παιδιών τους=> Ο Θ έχει μεγαλύτερη προτεραιότητα από τους Ζ, Η, διότι το παιδί του Θ, το Κ, έχει προτεραιότητα 2 ενώ τα παιδιά των Ζ, Η, έχουν προτεραιότητα 1. Δίνουμε στους κόμβους αυτούς προτεραιότητες Μ+1,..., Μ', δηλαδή, Ζ=3, Η=4, Θ=5 Χρωματίζουμε τους κόμβους Ζ, Η, Θ, γκρι. 58

59 Ειδική περίπτωση: Εάν υπάρχουν μόνο 2 επεξεργαστές (4/6) 59

60 Ειδική περίπτωση: Εάν υπάρχουν μόνο 2 επεξεργαστές (5/6) Βήμα 3. Επαναλαμβάνουμε το Βήμα 2 μέχρι όλοι οι κόμβοι να χρωματιστούν γκρι οπότε έχουν όλοι και μια διαφορετική προτεραιότητα. Έτσι τελικά παίρνουμε τις παρακάτω προτεραιότητες: 60

61 Ειδική περίπτωση: Εάν υπάρχουν μόνο 2 επεξεργαστές (6/6) Βήμα 4. Αναθέτουμε τις εργασίες με σειρά προτεραιότητας (μεγαλύτερη προτεραιότητα πρώτα) στον πρώτο επεξεργαστή που είναι ελεύθερος. Έτσι παίρνουμε το χρονοδιάγραμμα του παρακάτω πίνακα: 61

62 Ντετερμινιστικό Μοντέλο με μη μηδενικό χρόνο επικοινωνίας 62

63 Ντετερμινιστικό Μοντέλο με μη μηδενικό χρόνο επικοινωνίας (1/7) Στην περίπτωση αυτή υποθέτουμε ότι ο χρόνος εκτέλεσης κάθε εργασίας είναι πάλι γνωστός και δεν εξαρτάται από τυχαίες παραμέτρους, αλλά το κόστος (δηλ. ο χρόνος) επικοινωνίας μεταξύ των διεργασιών δεν είναι αμελητέο. Ο χρόνος επικοινωνίας μεταξύ διεργασιών είναι ουσιαστικά ο χρόνος που απαιτείται για την ανταλλαγή δεδομένων μεταξύ των επεξεργαστών που απαιτείται για την ανταλλαγή δεδομένων μεταξύ των επεξεργαστών που εκτελούν αυτές τις εργασίες. Αν οι εργασίες Α, Β δεν ανταλλάσσουν δεδομένα ή αν εκτελούνται στον ίδιο επεξεργαστή τότε θεωρούμε ότι ο χρόνος επικοινωνίας Α`Β είναι μηδενικός. Αν υπάρχει ακμή που ενώνει τον κόμβο Α με τον κόμβο Β του ΓΕ τότε οι εργασίες Α, Β ανταλλάσσουν δεδομένα μεταξύ τους. Στην περίπτωση αυτή υπάρχει μη μηδενικό κόστος επικοινωνίας Α`Β αν και μόνο αν οι εργασίες Α, Β εκτελούνται σε διαφορετικούς επεξεργαστές. 63

64 Ντετερμινιστικό Μοντέλο με μη μηδενικό χρόνο επικοινωνίας (2/7) Όταν λοιπόν κάνουμε ανάθεση και δρομολόγηση εργασιών προσπαθούμε να βάλουμε τις χρονοβόρες ακμές μέσα στην ίδια διεργασία έτσι ώστε να εκτελεστούν από τον ίδιο επεξεργαστή και να μηδενιστεί το κόστος επικοινωνίας. Η χρονοδρομολόγηση γίνεται τώρα πιο πολύπλοκη απ' ότι στην περίπτωση όπου δε λαμβάνουμε υπ' όψη ας το κόστος επικοινωνίας (μοντέλο Α) Παρ' όπου δε λαμβάνουμε υπ' όψη ας το κόστος επικοινωνίας (μοντέλο Α) Παρ' όλ' αυτά το μοντέλο αυτό είναι πιο ρεαλιστικό από το μοντέλο Α. Η εύρεση της βέλτιστης ανάθεσης και της βέλτιστης χρονοδρομολόγησης είναι δύσκολη. Στην περίπτωση αυτή χρησιμοποιούνται ευρηστικές μέθοδοι (heuristics) οι οποίες προσπαθούν να καλύψουν το κόστος επικοινωνίας και να αναθέσουν τις εργασίες στους διάφορους επεξεργαστές. 64

65 Ντετερμινιστικό Μοντέλο με μη μηδενικό χρόνο επικοινωνίας (3/7) Έστω ότι έχουμε τον παρακάτω γράφο εξάρτησης όπου δίπλα σε κάθε κόμβο αναγράφεται ο χρόνος εκτέλεσης κάθε εργασίας και δίπλα σε κάθε ακμή αναγράφεται ο χρόνος επικοινωνίας αν η ακμή αυτή μεταφέρει δεδομένα ανάμεσα σε δύο διαφορετικούς επεξεργαστές. 65

66 Ντετερμινιστικό Μοντέλο με μη μηδενικό χρόνο επικοινωνίας (4/7) Γενικά, είναι προτιμότερο να αναθέτουμε τους κόμβους που συνδέουν ακμές με μεγάλο κόστος επικοινωνίας, όπως η ακμή Α`Γ, στην ίδια διεργασία έτσι ώστε οι κόμβοι Α και Γ να εκτελεστούν τελικά στον ίδιο επεξεργαστή και να μην πληρώσουμε το κόστος επικοινωνίας Α`Γ. Υποθέτουμε ότι ο χρόνος που χρειάζεται ένας επεξεργαστής για να επικοινωνήσει με τον εαυτό του είναι μηδενικός. 66

67 Ντετερμινιστικό Μοντέλο με μη μηδενικό χρόνο επικοινωνίας (5/7) Έστω για παράδειγμα ότι έχουμε δύο επεξεργαστές P1, P2. Δύο πιθανές αναθέσεις με τα αντίστοιχα χρονοδιαγράμματα έχουν ως εξής: Προφανώς το χρονοδιάγραμμα 2 είναι καλύτερο διότι αναθέτουμε τις εργασίες Α, Γ οι οποίες έχουν πολύ μεγάλο κόστος επικοινωνίας στον ίδιο επεξεργαστή και έτσι το κόστος επικοινωνίας μεταξύ τους μηδενίζεται. 67

68 Ντετερμινιστικό Μοντέλο με μη μηδενικό χρόνο επικοινωνίας (6/7) Μια άλλη μέθοδος για την μείωση του χρόνου επικοινωνίας είναι η διπλή εκτέλεση μιας διεργασίας σε δύο διαφορετικούς επεξεργαστές. Η εφαρμογή της μεθόδου αυτής γίνεται φανερή με το παρακάτω χρονοδιάγραμμα που αναφέρεται στον ίδιο γράφο εξάρτησης. 68

69 Ντετερμινιστικό Μοντέλο με μη μηδενικό χρόνο επικοινωνίας (7/7) Το χρονοδιάγραμμα αυτό έχει συνολικό χρόνο εκτέλεσης Τ=30 σε αντίθεση με το χρον/μα 1 που έχει Τ=50, και το χρον/μα 2 που έχει Τ=35. Αυτό επετεύχθη εκτελώντας την εργασία Α δύο φορές, μια στον επεξεργαστή P1, και μια στον P2. Έτσι αποφεύγουμε τελείως και το κόστος επικοινωνίας Α-Γ, και το κόστος επικοινωνίας Α-Β, αφού οι Α, Γ εκτελούνται στον ίδιο επεξεργαστή P1 ενώ οι Α, Β, εκτελούνται στον ίδιο επεξεργαστή P2. 69

70 Ευρηστικοί Αλγόριθμοι σε μη μηδενικό χρόνο επικοινωνίας (1/3) A. Δρομολόγηση με λίστα προτεραιότητας (list scheduling). Κάθε κόμβος του γράφου παίρνει μια τιμή προτεραιότητας. Δημιουργείται μια ουρά με εργασίες έτοιμες προς εκτέλεση οι οποίες κατατάσσονται με σειρά προτεραιότητας. Μια εργασία λέγεται έτοιμη προς εκτέλεση αν έχουν εκτελεστεί όλες οι εργασίες από τις οποίες λαμβάνει είσοδο. 70

71 Ευρηστικοί Αλγόριθμοι σε μη μηδενικό χρόνο επικοινωνίας (2/3) Για όσο η ουρά δεν είναι άδεια κάνε τα εξής (βήματα): 1. Πάρε την εργασία που βρίσκεται στην κορυφή της ουράς. 2. Επέλεξε ένα επεξεργαστή που τώρα δεν εργάζεται και ανάθεσε την εργασία σ αυτόν. 3. Πρόσθεσε μια εργασία στην ουρά όταν είναι έτοιμη, δηλαδή όταν έχουν εκτελεστεί όλες οι εργασίες που την τροφοδοτούν με αποτελέσματα. 71

72 Ευρηστικοί Αλγόριθμοι σε μη μηδενικό χρόνο επικοινωνίας (3/3) B. Δρομολόγηση με ομαδοποίηση (clustering): Βήμα 1: Ανάθεση. Ομαλοποίησε τις εργασίες με κάποιο κριτήριο ελαχιστοποίησης των ακμών επικοινωνίας μεταξύ των ομάδων. Οι ακμές αυτές αντιστοιχούν σε επικοινωνία μεταξύ επεξεργαστών η οποία κοστίζει πολύ σε χρόνο. Βήμα 2: Απεικόνιση των ομάδων σε N επεξεργαστές. Αν υπάρχουν περισσότερες από Ν ομάδες (clusters) ένωσε κάποιες ομάδες μεταξύ τους ώστε να φτιαχτούν Ν ομάδες. Αντιστοίχησε κάθε ομάδα σε ένα διαφορετικό επεξεργαστή. Βήμα 3: Χρονοδρομολόγηση. Για κάθε επεξεργαστή όρισε μια σειρά εκτέλεσης των εργασιών έτσι ώστε να γίνονται σεβαστές οι ακμές εξάρτησης. 72

73 Μη Ντετερμινιστικές Μέθοδοι Χρονοδρομολόγησης (1/2) Εφαρμόζονται όταν ο χρόνος εκτέλεσης δεν είναι σταθερός και γνωστός εκ των προτέρων γιατί κάποιες πληροφορίες μπορεί να μην είναι γνωστές πριν την έναρξη της εκτέλεσης ενός προγράμματος. Π.χ. σε περιπτώσεις βρόγχων και διακλαδώσεις επιλογής (loop, if). Μπορεί δηλαδή ολόκληρα υποπρογράμματα να μην εκτελούνται. Όλα αυτά αυξάνουν την πολυπλοκότητα στην διαδικασία χρονοδρομολόγησης. Η διαδικασία χρονοδρομολόγησης γίνεται δυναμικά (on the fly). 73

74 Μη Ντετερινιστικές Μέθοδοι Χρονοδρομολόγησης (2/2) Μειονεκτήματα: μεγάλοι χρόνοι επικοινωνίας, μεγάλοι χρόνοι χρονοδρομολόγησης, ίσως συνεχής μετακίνηση εργασιών μεταξύ επεξεργαστών (task thrashing). Τελικά όμως, ο χρόνος συνολικής εκτέλεσης να είναι ικανοποιητικός, παρά τις καθυστερήσεις (όχι πάντα). 74

75 Βασικές Τεχνικές Σχεδιασμού Παράλληλων Αλγορίθμων Ισοζυγισμένα Δένδρα. Διπλασιασμός Δεικτών. Διαδρομή Euler. Διαμέριση. 75

76 Ισοζυγισμένα Δένδρα (1/2) Η δενδρική δομή είναι βασική δομή παράλληλου υπολογισμού. Δεν είναι μόνο δομή δεδομένων, αλλά δομή υπολογισμού. Δημιουργούμε ένα ισοζυγισμένο δένδρο. Υπολογίζονται οι εσωτερικοί κόμβοι από τα δεδομένα εισόδου. Χρησιμοποιούνται οι εσωτερικοί κόμβοι για τον υπολογισμό των επόμενων εσωτερικών κόμβων (που θα είναι λιγότεροι σε αριθμό) κ.ο.κ. Παράδειγμα: άθροιση στοιχείων ενός πίνακα. 76

77 Ισοζυγισμένα Δένδρα (2/2) π.χ. α1,α2,α3,α4,α5,α6,α7,α8. Υπολογίζουμε ενδιάμεσους κόμβους (α1,α2) (α3,α4) (α5,α6),(α7,α8). Από αυτούς τους ενδιάμεσους κόμβους υπολογίζουμε τους επόμενους ενδιάμεσους κόμβους β1,β2. Από αυτούς τους κόμβους υπολογίζουμε το τελικό αποτέλεσμα. Υπολογίζεται λοιπόν αντί για χρόνο T(n)=O(n) σε χρόνο T(n)=O(logn). 77

78 Η τεχνική του διπλασιασμού των δεικτών (1/8) Χρήσιμη τεχνική σχεδιασμού. Χρησιμοποιείται σε συνδεσμικές λίστες ή σε δενδρικές δομές. Έστω μια λίστα n κόμβων και ζητείται η ετικέτα του τελευταίου κόμβου στη λίστα. Σε κάθε βήμα του υπολογισμού, κάθε κόμβος αντικαθιστά το δείκτη του με τον δείκτη του επόμενου κόμβου στη λίστα (ή του πατέρα του). Μετά από logn βήματα κάθε κόμβος της λίστας ή του δένδρου δείχνει στον ίδιο κόμβο, δηλαδή στον τελευταίο κόμβο (ή στη ρίζα). 78

79 Η τεχνική του διπλασιασμού των δεικτών (2/8) Παράδειγμα: Έστω το πρόβλημα του υπολογισμού της τάξης (rank) κάθε κόμβου k μιας συνδεσμικής λίστας L (list ranking). Έστω L η λίστα. Για κάθε κόμβο i, 1<=i<=n το στοιχείο NEXT[i] περιέχει ένα δείκτη στον κόμβο, ο οποίος ακολουθεί τον κόμβο i. Ένας ακολουθιακός αλγόριθμος θα απαιτούσε γραμμικό χρόνο (T(n)=O(n)). Ο χρόνος που απαιτεί είναι T(n)=O(logn). 79

80 Η τεχνική του διπλασιασμού των δεικτών (3/8) 80

81 Η τεχνική του διπλασιασμού των δεικτών (4/8) Έστω ότι έχουμε τη λίστα L. Δηλαδή, το Α έχει επόμενο αυτό που είναι στη 2 θέση, δηλαδή το Β, κ.ο.κ. 81

82 Η τεχνική του διπλασιασμού των δεικτών (5/8) Κατά το βήμα 1 ενημερώνονται τα διανύσματα M και DIST. Μετά το τέλος λοιπόν του βήματος 1 έχουμε τα παρακάτω: 82

83 Η τεχνική του διπλασιασμού των δεικτών (6/8) Στο βήμα 2 ενημερώνονται τα M και DIST κατάλληλα. Μετά το τέλος της χρονικής μονάδας 8 κάθε κόμβος γνωρίζει την απόσταση DIST. 83

84 Η τεχνική του διπλασιασμού των δεικτών (7/8) 84

85 Η τεχνική του διπλασιασμού των δεικτών (8/8) 85

86 Η τεχνική της διαδρομής του Euler (1/8) Ένα πρόβλημα είναι η κατασκευή ενός εντεινόμενου δένδρου (spanning tree) και ο υπολογισμός απλών συναρτήσεων σε αυτό το δένδρο, όπως της προδιαταγμένης και μεταδιαταγμένης αρίθμησης (preorder/postorder numbering). Δοθέντος ενός δένδρου χωρίς ρίζα T=(V,E) ο κατευθυνόμενος γράφος T'=(V,E'), που προκύπτει αν κάθε ακμή {u,v} αντικατασταθεί από δύο κατευθυνόμενες ακμές (u,v) και (v,u) με την ιδιότητα: ο εσωτερικός βαθμός (indegree) κάθε κόμβου ισούται με τον έξω βαθμό (outdegree). 86

87 Η τεχνική της διαδρομής του Euler (2/8) Η προηγούμενη ιδιότητα συνεπάγεται ότι ο γράφος είναι Euler δηλαδή, υπάρχει κάποιο κατευθυνόμενο κύκλωμα (directed circuit) που: Περνάει από όλους τους κόμβους T. Περνάει από κάθε ακμή ακριβώς μια φορά. Καταλήγει στον κόμβο από τον οποίο ξεκίνησε. 87

88 Η τεχνική της διαδρομής του Euler (3/8) Έστω το δένδρο T=(V,E) 88

89 Η τεχνική της διαδρομής του Euler (4/8) Αντικαθιστούμε κάθε ακμή με δύο κατευθυνόμενες ακμές. 89

90 Η τεχνική της διαδρομής του Euler (5/8) Προσδιορίζουμε την επόμενη ή διάδοχο: Για κάθε κόμβο v καθορίζουμε μια συγκεκριμένη διάταξη που πρόσκεινται στο v. Για να καθοριστεί η διάταξη, χρησιμοποιούμε τις λίστες γειτνίασης των κόμβων.. Αν d είναι ο βαθμός ενός κόμβου u και v0,v1,...είναι οι γείτονες με τη σειρά που εμφανίζονται στη λίστα γειτνασης u τότε η επόμενη ακμή στο κύκλωμα του Euler είναι η ακμή (u,v(i+1)modd), i=0,1,...,d-1. 90

91 Η τεχνική της διαδρομής του Euler (6/8) 91

92 Η τεχνική της διαδρομής του Euler (7/8) 92

93 Η τεχνική της διαδρομής του Euler (8/8) 93

94 Τέλος Ενότητας 94

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: Αρχές Παράλληλου Προγραμματισμού. Τεχνικές παραλληλοποίησης υπολογισμών. Δρ. Μηνάς Δασυγένης

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 7β: Όρια Αλγόριθμων Ταξινόμησης Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos.

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 10β: Αλγόριθμοι Γραφημάτων-Γραφήματα- Αναπαράσταση Γραφημάτων- Διερεύνηση Πρώτα σε Πλάτος (BFS) Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 2: Γραφήματα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 12: Σύνοψη Θεμάτων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 11: Minimum Spanning Trees Αλγόριθμος Prim Αλγόριθμος Kruskal Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων) Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 4(β): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: MPI_Get_count, non blocking send/recv, εμφάνιση και αποφυγή αδιεξόδων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org

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

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος Αναζήτηση Κατά Πλάτος ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 9: Ελαχιστοποίηση και Κωδικοποίηση Καταστάσεων, Σχεδίαση με D flip-flop, Σχεδίαση με JK flip-flop, Σχεδίαση με T flip-flop Δρ. Μηνάς

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

ιαµέριση - Partitioning

ιαµέριση - Partitioning ιαµέριση - Partitioning ιαµέριση ιαµέριση είναι η διαµοίραση αντικειµένων σε οµάδες µε στόχο την βελτιστοποίηση κάποιας συνάρτησης. Στην σύνθεση η διαµέριση χρησιµοποιείται ως εξής: Οµαδοποίηση µεταβλητών

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

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

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

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

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 5: Παραδείγματα. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 5: Παραδείγματα. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 5: Παραδείγματα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας

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

6 η ΕΝΟΤΗΤΑ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

6 η ΕΝΟΤΗΤΑ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΕΙΣΑΓΩΓΗ ΣΤΗN ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ 6 η ΕΝΟΤΗΤΑ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μ. Καρλαύτης Ν. Λαγαρός Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 7: Σχέσεις και Συναρτήσεις

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 7: Σχέσεις και Συναρτήσεις Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 7: Σχέσεις και Συναρτήσεις Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

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

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Μαθηματικά Ενότητα 7: Μη Πεπερασμένα Όρια Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 24: Ειδικές Περιπτώσεις του Προβλήματος Ροής Ελαχίστου Κόστους Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 5: Εντολές αλλαγής ροής. Διακλάδωση χωρίς συνθήκη. Διακλάδωση με συνθήκη. Δρ. Μηνάς Δασυγένης

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα 8: Ψηφιακή Αριθμητική Βασίλης Παλιουράς Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Γιατί μας ενδιαφέρει το δυαδικό Αριθμητικές

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

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

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

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 6: inc, dec, loop, jcxz, dup, displacement Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http:

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

Εφαρμοσμένη Βελτιστοποίηση

Εφαρμοσμένη Βελτιστοποίηση Εφαρμοσμένη Βελτιστοποίηση Ενότητα 1: Το πρόβλημα της βελτιστοποίησης Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το

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

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Μοντελοποίηση Λογικών Κυκλωμάτων

Μοντελοποίηση Λογικών Κυκλωμάτων Μοντελοποίηση Λογικών Κυκλωμάτων Ενότητα 7: Η γλώσσα VHDL, Μοντελοποίηση, διαχείριση χρόνου Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Έλενα Ρόκου Μεταδιδακτορική Ερευνήτρια ΕΜΠ Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Ελάχιστο Συνδετικό έντρο

Ελάχιστο Συνδετικό έντρο Ελάχιστο Συνδετικό έντρο ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Συστήματα Αναμονής Ενότητα 1: Εισαγωγή Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 5(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

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

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

Διαχείριση Χρόνου & Δίκτυα στη Διοίκηση Έργων. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

Διαχείριση Χρόνου & Δίκτυα στη Διοίκηση Έργων. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Διαχείριση Χρόνου & Δίκτυα στη Διοίκηση Έργων Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

Η πολυνηματική γλώσσα προγραμματισμού Cilk

Η πολυνηματική γλώσσα προγραμματισμού Cilk Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009

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

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ Ενότητα: Αναγνώριση Διεργασίας - Προσαρμοστικός Έλεγχος (Process Identification) Αλαφοδήμος Κωνσταντίνος

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 7 η : Δείκτες Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Εισαγωγή στους Αλγορίθμους Ενότητα 7η Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 5(α): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΕΙΣΑΓΩΓΗ ΣΤΗN ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ 2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μ. Καρλαύτης Ν. Λαγαρός Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative

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

Ειδικά Θέματα Δικτύων ΙΙ

Ειδικά Θέματα Δικτύων ΙΙ Ειδικά Θέματα Δικτύων ΙΙ Ενότητα 9: Shortest Path First - SPF Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

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

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http:

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα: 11Η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Δρ. ΠΑΝΤΕΛΗΣ ΑΓΓΕΛΙΔΗΣ Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

2 n N: 0, 1,..., n A n + 1 A

2 n N: 0, 1,..., n A n + 1 A Θεωρία Υπολογισμού Ενότητα 5: Τεχνικές απόδειξης & Κλειστότητα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων Κατ οίκον Εργασία 5 Σκελετοί Λύσεων Άσκηση 1 Χρησιμοποιούμε τις δομές: struct hashtable { struct node array[maxsize]; int maxsize; int size; struct node{ int data; int status; Στο πεδίο status σημειώνουμε

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

Μέθοδοι Βελτιστοποίησης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Μέθοδοι Βελτιστοποίησης Ενότητα # : Επιχειρησιακή έρευνα Αθανάσιος Σπυριδάκος Καθηγητής Τμήμα Διοίκησης Επιχειρήσεων Άδειες Χρήσης

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

ΘΕΩΡΙΑ ΠΑΙΓΝΙΩΝ. Ενότητα 7: Τέλεια ισορροπία Nash για υποπαίγνια. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΘΕΩΡΙΑ ΠΑΙΓΝΙΩΝ. Ενότητα 7: Τέλεια ισορροπία Nash για υποπαίγνια. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 7: Τέλεια ισορροπία Nash για υποπαίγνια Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 2) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 2) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Ειδικά Θέματα Δικτύων ΙΙ Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 2) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Διακριτά Μαθηματικά Ι Ενότητα 2: Γεννήτριες Συναρτήσεις Μέρος 1 Διδάσκων: Χ. Μπούρας (bouras@cti.gr) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Δυναμικός Προγραμματισμός Δυναμικός Προγραμματισμός 1 Περίληψη

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

Ειδικά Θέματα Δικτύων Ι

Ειδικά Θέματα Δικτύων Ι Ειδικά Θέματα Δικτύων Ι Ενότητα 7: Δρομολόγηση (Μέρος 3) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πολυδιάστατοι Πίνακες Πολυδιάστατοι πίνακες

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

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem) Το πρόβλημα μονοδρόμησης (The One-Way Street Problem) Το πρόβλημα Σχετίζεται με τη διαχείριση της κίνησης οχημάτων στους δρόμους Αν δεν υπήρχαν καθυστερήσεις στην κίνηση στις πόλεις Αποφυγή σπατάλης ενέργειας

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6β: Ταξινόμηση με εισαγωγή και επιλογή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creatve

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:14 - ADVISOR Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών

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

Σχεδίαση Δικτύων Υπολογιστών

Σχεδίαση Δικτύων Υπολογιστών Σχεδίαση Δικτύων Υπολογιστών Ενότητα 6: Δρομολόγηση κατάστασης ζεύξης Άγγελος Μιχάλας Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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