ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΡΟΛΟΓΙΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

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

Download "ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΡΟΛΟΓΙΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ"

Transcript

1 ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

2 CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Κατανεμημένα Ρολόγια... 2 Εισαγωγή... 2 Φυσικά Ρολόγια... 2 Ακρίβεια ρολογιού... 2 Συγχρονισμός Φυσικού Ρολογιού... 2 Αλγόριθμος του Christian... 4 Αλγόριθμος του Berkeley... 5 Νέα εργαλεία στο MPI... 6 Η συνάρτηση MPI_WTIME()... 6 Η συνάρτηση sleep()... 7 Το tag MPI_ANY_SOURCE... 7 Εργαστηριακή Άσκηση Κατανεμημένα Ρολόγια... 8 Βήμα 1: Μετρώντας τον χρόνο... 8 Βήμα 2: Ο αλγόριθμος του Cristian 1 η Έκδοση... 9 Βήμα 3: Ο αλγόριθμος του Cristian 2 η Έκδοση Βήμα 4: Ο αλγόριθμος του Berkeley Δραστηριότητες Βιβλιογραφία ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 1

3 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΦΥΣΙΚΑ ΡΟΛΟΓΙΑ Πολλές φορές, όπως έχουμε ήδη διαπιστώσει, σε ένα κατανεμημένο σύστημα μας είναι πολύ χρήσιμο για να κάνουμε πιο εύκολη την ζωή μας, να έχουμε φυσικό ρολόι σε κάθε κόμβο με σκοπό να εξυπηρετούνται κάποιες λειτουργίες των αλγορίθμων μας όταν απαιτείται κάποια χρονική σειρά σε συγκεκριμένα γεγονότα. Τέτοιες περιπτώσεις είναι το πρόβλημα του συγχρονισμού, το πρόβλημα επικύρωσης δοσοληψιών, το πρόβλημα πιστoποίησης και άλλα. Γενικά το πρόβλημα στα φυσικά ρολόγια εντοπίζεται στο ότι δεν είναι πάντα διαθέσιμο ένα κεντρικοποιημένο ρολόι με το οποίο σχετικά εύκολα θα μπορούσαν να συγχρονιστούν όλοι μας οι κόμβοι (αν και η ύπαρξη τεχνολογιών όπως GPS δεν κάνει κάτι τέτοιο πλέον όνειρο). Συνεπώς με κάποιο τρόπο εμείς πρέπει να διασφαλίσουμε ότι το ρολόι κάθε κόμβου σε κάποια στιγμή κατά την διάρκεια της εκτέλεσης του συστήματος θα έχει την ίδια τιμή t. Ιδανικά αυτή η τιμή t θα πρέπει να είναι και ίση με την t (t=t ) όπου t η πραγματική ώρα, χωρίς αυτό όμως να επηρεάζει την λειτουργία του συστήματός μας καθώς το πρόβλημα δεν είναι να έχουμε την σωστή ώρα αλλά κάποια κοινή. Λαμβάνοντας τώρα υπόψη την ανακρίβεια του εκάστοτε hardware του ρολογιού βλέπουμε πως σε επίπεδο λογισμικού η ώρα την στιγμή t είναι: C(t) = H(t) α + β όπου H(t) είναι η τιμή του φυσικού ρολογιού, α η μονάδα μέτρησης του φυσικού ρολογιού και β η τιμή της ώρας 0, η διόρθωση δηλαδή που έχει γίνει στο ρολόι. Όπως ήδη είπαμε τα ρολόγια δεν είναι τέλεια, δηλαδή σχεδόν ποτέ δεν τυχαίνει να είναι C(t)=H(t). ΑΚΡΙΒΕΙΑ ΡΟΛΟΓΙΟΥ Όσον αφορά το επίπεδο του υλικού η ακρίβεια ενός ρολογιού μπορεί να δίνεται από δύο μετρικές τον ρυθμό απόκλισης και την διαφορά. Ο ρυθμός απόκλισης (drift) είναι ο ρυθμός με τον οποίο το ρολόι επιβραδύνει η επιταχύνει κατά την μέτρηση του χρόνου. Ένα ιδανικό ρολόι δεν θα αποκλίνει καθόλου. Κάθε άλλο θα πηγαίνει πιο γρήγορα ή πιο αργά, από πολύ έως λίγο. Αυτό μετράει ο ρυθμός απόκλισης. Η διαφορά (skew) δύο ρολογιών C1 και C2 ορίζεται σαν C1(t) C2(t) δηλαδή σαν την απόλυτη τιμή της διαφοράς των τιμών των δύο ρολογιών την χρονική στιγμή t. Αν θέλουμε να δούμε την διαφορά ενός ρολογιού από την πραγματική ώρα προφανώς παίρνουμε C(t) Η(t). ΣΥΓΧΡΟΝΙΣΜΟΣ ΦΥΣΙΚΟΥ ΡΟΛΟΓΙΟΥ Η ουσία του προβλήματος έγκειται στο πως θα καταφέρουμε στο κατανεμημένο μας σύστημα να διορθώσουμε την ώρα του ρολογιού του εκάστοτε κόμβου έτσι ώστε να είναι σωστή ή καλύτερα να συμβαδίζει με τις ώρες των άλλων κόμβων. Μία λύση θα ήταν ο κάθε κόμβος να λαμβάνει από κάποιον άλλον την ώρα και ανάλογα με τον χρησιμοποιούμενο αλγόριθμο να την διορθώνει κατάλληλα. Σε μία ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 2

4 τέτοια περίπτωση αν το ρολόι είχε θετικό ρυθμό απόκλισης τότε θα πρέπει να τοποθετήσει την ώρα του πίσω σε σχέση με αυτή που ήταν. Κάτι τέτοιο θα ήταν προβληματικό. Φανταστείτε ένα σύστημα για το οποίο ξέρουμε ότι έγινε κάποια ενέργεια την χρονική στιγμή Α και ξαφνικά η στιγμή αυτή αποτελεί πλέον το μέλλον. Συνεπώς λοιπόν πρέπει να είμαστε προσεκτικοί με το ποιο στοιχείο του ρολογιού θα πρέπει να αλλάξουμε. Δεν πρέπει λοιπόν αυτό να είναι η τιμή του ρολογιού αυτή καθαυτή αλλά ο ρυθμός του. Στο παραπάνω παράδειγμα με το ρολόι που επιταχύνει αν μικραίναμε το ρυθμό του κατάλληλα μέσα σε λίγο χρόνο θα είχε την σωστή ώρα χωρίς άλλα προβλήματα. Ο συγχρονισμός ρολογιών μπορεί να είναι εσωτερικός ή εξωτερικός. Εσωτερικός θεωρείται αν οι κόμβοι διεργασίες P i, i=1,..., n είναι συγχρονισμένες μεταξύ τους έτσι ώστε να εξασφαλίζεται για κάθε ζεύγος διεργασιών σε κάθε χρονική στιγμή t θα έχουμε C u(t) C v(t) δ με το δ να είναι η μέγιστη διαφορά των ρολογιών και δ 0. Προφανώς εδώ δεν υπάρχει εξωτερική πηγή ρολογιού και οι διεργασίες με βάση κάποιον αλγόριθμο συγχρονίζονται από μόνες τους, γι αυτό και εσωτερικός. Εξωτερικό συγχρονισμό έχουμε όταν οι διεργασίες συγχρονίζονται με ένα εξωτερικό ρολόι C global και συγχρονισμός επιτυγχάνεται όταν για κάθε ζεύγος διεργασιών και οποιαδήποτε χρονική στιγμή t ισχύει C u(t) C global(t) δ, με δ 0. Το δ έχει το ίδιο νόημα με πριν. Από τους ορισμούς των δύο ειδών συγχρονισμών προκύπτει άμεσα ότι αν σε ένα κατανεμημένο σύστημα έχουμε τις διεργασίες εξωτερικά συγχρονισμένες με διαφορά δ θα είναι ταυτόχρονα και εσωτερικά συγχρονισμένες με διαφορά 2δ. Κάτι αντίστροφο δεν ισχύει, δηλαδή αν γνωρίζουμε ότι οι διεργασίες είναι εσωτερικά συγχρονισμένες δεν μπορούμε να πούμε κάτι για τον εξωτερικό συγχρονισμό τους. Πρέπει να έχουμε υπόψη ότι επειδή τα ρολόγια που έχουμε στην διάθεσή μας δεν είναι τέλεια ακόμα και αν τα συγχρονίσουμε μια χρονική στιγμή t, μετά από κάποιο χρόνο, ο οποίος εξαρτάται από το πόσο επιβραδύνει η επιταχύνει το κάθε ρολόι, τα δύο ρολόγια και πάλι θα έχουν διαφορετική ώρα. Συνεπώς ο συγχρονισμός θα είναι μια επαναληπτική διαδικασία και συγκεκριμένα θα πρέπει να συγχρονίσουμε τα τοπικά ρολόγια περιοδικά το λιγότερο κάθε δ/2ρ με δ την μέγιστη διαφορά που θέλουμε να πετύχουμε και ρ την σταθερά ρυθμού απόκλισης των ρολογιών που έχουμε στην διάθεσή μας (την χειρότερη). Είπαμε το λιγότερο καθώς για τον συγχρονισμό των ρολογιών θα τρέχει ένας κατανεμημένος αλγόριθμος, ο οποίος θα περιλαμβάνει αποστολή και λήψη μηνυμάτων κάτι που θα αργεί την όλη διαδικασία. Εξ αιτίας αυτού προφανώς έχουμε και επιπλέον επιβάρυνση του συστήματος με μηνύματα ενώ σοβαρά πρέπει όπως πάντα να λαμβάνεται υπόψη ότι μηνύματα μπορεί να χαθούν άρα συνεπώς να μην επιτευχθεί συγχρονισμός του συστήματος σε κάποια φάση του αλγορίθμου όπου θα έπρεπε να υπήρχε. Όπως είπαμε και πριν ο εξωτερικός συγχρονισμός απαιτεί την ύπαρξη κάποιου ρολογιού με το οποίο μπορούμε να επικοινωνήσουμε και θα το θεωρούμε αξιόπιστη πηγή. Κάτι τέτοιο μπορεί να γίνει είτε με συστήματα παγκόσμιας γεωγραφικής θέσης (GPS) είτε με ραδιοφάρους. Με τα μεν πρώτα μπορούμε να πάρουμε την παγκόσμια ώρα και με τους ραδιοφάρους την τοπική. Αν στο σύστημά μας έχουμε δυνατότητα επικοινωνίας με τέτοιο ρολόι η κάτι παρεμφερές τότε ο εξωτερικός συγχρονισμός θα ήταν κάτι σχετικά εύκολο για τα τοπικά ρολόγια της κάθε διεργασίας. Σε αρκετές περιπτώσεις όμως κάτι τέτοιο δεν είναι εφικτό είτε λόγω κόστους είτε μεγάλης κατανάλωσης ενέργειας δυσανάλογης με τις συσκευές του κατανεμημένου μας συστήματος είτε λόγω μεγέθους. Ωστόσο κάτι λειτουργικό θα ήταν κάποιες από ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 3

5 τις συσκευές του συστήματός μας να είχαν αυτήν την δυνατότητα και οι υπόλοιπες να συγχρονίζονται με βάση αυτές. Κάτι τέτοιο γίνεται στον αλγόριθμο του Christian που ακολουθεί. ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ CHRISTIAN Ένα μέρος από τους κόμβους του συστήματος έχουν πρόσβαση σε πηγές ρολογιού που θεωρούνται αξιόπιστες (π.χ. GPS) και οι υπόλοιπες όχι. Αυτό κάνει το σύστημά μας ετερογενές. Υπάρχει τουλάχιστον 1 τέτοια διεργασία, έστω P server. 1. Όταν μία διεργασία P u βρίσκεται σε φάση συγχρονισμού στέλνει μήνυμα synch στην P server ρωτώντας την την ώρα. Ταυτόχρονα κρατάει στην μνήμη της την ώρα που έστειλε το μήνυμα (t send). 2. Όταν η διεργασία P server απαντήσει με το μήνυμα time(t) που περιέχει την ώρα της, η P u κρατάει την ώρα που έλαβε το μήνυμα (t rcv). Έτσι είναι σε θέση να υπολογίσει τον χρόνο που έκανε το μήνυμα να φτάσει από την στιγμή που έστειλε εκείνη το synch μήνυμα έστω T roundtrip = t rcv t send. O Τ roundtrip θεωρούμε ότι δεν έχει σημαντικό σφάλμα και πράγματι περιλαμβάνει τον ακριβή χρόνο καθυστέρησης. 3. Η διεργασία P u θέτει την τιμή του ρολογιού της σε t = T server+t roundtrip 2 Με αυτόν τον τρόπο επιτυγχάνεται ο συγχρονισμός για κάθε διεργασία. Επιπλέον, η διεργασία μπορεί να υπολογίσει ή ίσως να ξέρει το άνω όριο και το κάτω όριο για τον χρόνο μετάδοσης σε κάθε κανάλι, συνεπώς της είναι δυνατόν να ρυθμίζει τον ρυθμό μετάδοσης για τον συγχρονισμό στο t d = T min+t max. 2 Στην μέθοδο του Christian υπολογίζεται t d = T roundtrip 2 T min. Η παραπάνω ανάλυση της μεθόδου του Christian μπορεί να γίνει με χρήση της πιθανοτικής μεθόδου και με της T min, T max, T roundtrip να είναι τυχαίες μεταβλητές. Ανάλογα με την τοπολογία, την ταχύτητα και το πόσοι κόμβοι έχουν το πλεονέκτημα της σωστής ώρας ο αλγόριθμος δίνει διαφορετικά T min, T max, και T roundtrip για την κάθε διεργασία P u. Μία παράμετρος για την αποδοτικότητα του συστήματος είναι η διεργασία P server η οποία όπως γίνεται αντιληπτό θα έχει μεγάλο φόρτο εργασίας και σε κάποιες περιπτώσεις π.χ. σε ταυτόχρονες αιτήσεις θα καθυστερεί.. ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 4

6 ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ BERKELEY Ο αλγόριθμος του Berkeley ανήκει στην κατηγορία αλγορίθμων που δεν χρησιμοποιούν διακομιστή ώρας. Χρησιμοποιήθηκε στο συγχρονισμό των ρολογιών δικτύων συστημάτων Berkeley UNIX. Από το δίκτυο των υπολογιστών ένας ανακηρύσσεται αρχηγός (master) και αναλαμβάνει να συντονίσει το συγχρονισμό των ρολογιών. Ο αρχηγός περιοδικά ζητάει να μάθει από τους κόμβους (slaves) την τοπική ώρα. Ο αρχηγός γνωρίζοντας τις τοπικές τιμές ρολογιών και μια προσέγγιση των καθυστερήσεων δικτύου, εκτιμάει τις τοπικές ώρες (κατά αντιστοιχία με τον αλγόριθμο του Cristian), υπολογίζει τη μέση τιμή και ενημερώνει κάθε κόμβο για τη διόρθωση που πρέπει να κάνει. 1. Ο αρχηγός στέλνει τη δικιά του ώρα στους υπολοίπους κόμβους. 2. Οι άλλοι κόμβοι στέλνουν στον αρχηγό την απόκλιση της ώρας τους Δt i με βάση την ώρα του αρχηγού. 3. Ο αρχηγός υπολογίζει τη μέση απόκλιση 4. Ο αρχηγός θέτει την ώρα του και στέλνει τα ανάλογα μηνύματα στους υπολοίπους κόμβους (- Δt i + c) για να θέσουν και τη δικιά τους ώρα. Με αυτόν τον τρόπο επιτυγχάνεται ο συγχρονισμός για κάθε διεργασία. ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 5

7 ΝΕΑ ΕΡΓΑΛΕΙΑ ΣΤΟ MPI Για να κατανοήσουμε καλύτερα τα προγράμματα που θα παρουσιαστούν παρακάτω, χρειαζόμαστε κάποια νέα εργαλεία στο MPI. Η ΣΥΝΑΡΤΗΣΗ MPI_WTIME() Σύνταξη Σημασιολογία Παράδειγμα double MPI_Wtime(void) Η συνάρτηση MPI_Wtime() επιστρέφει τον χρόνο που έχει περάσει σε δευτερόλεπτα από μια τυχαία χρονική στιγμή στο παρελθόν Tpast. Είναι ευθύνη του προγραμματιστή να μετατρέψει την τιμή επιστροφής σε δευτερόλεπτα. H Tpast παραμένει double starttime, endtime; starttime = MPI_Wtime();... stuff to be timed... endtime = MPI_Wtime(); elapsed = endtime-starttime; printf("that took %f seconds\n", elapsed); ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 6

8 σταθερή για όσο χρόνο ζει η διεργασία. Η ΣΥΝΑΡΤΗΣΗ SLEEP() Σύνταξη Σημασιολογία Παράδειγμα void sleep(double time) Η συνάρτηση sleep(double time) αναστέλλει την λειτουργία της διεργασίας για time δευτερόλεπτα. Σε συστήματα linux εμπεριέχεται στην βιβλιοθήκη <unistd.h>. do stuff sleep(1.5); do stuff after 1.5 sec ΤΟ TAG MPI_ANY_SOURCE Σε πάρα πολλές περιπτώσεις μία διεργασία μπορεί να περιμένει ένα μήνυμα χωρίς όμως απαραίτητα να γνωρίζει τον αποστολέα του μηνύματος. Σε αυτή την περίπτωση, δεν μπορούμε να συμπληρώσουμε το πεδίο source στην συνάρτηση MPI_Recv. Για να λύσουμε αυτό το πρόβλημα, χρησιμοποιούμε το tag MPI_ANY_SOURCE. Έτσι, εάν χρησιμοποιήσουμε τον παρακάτω κώδικα μπορούμε (1) να λάβουμε μήνυμα από οποιοδήποτε αποστολέα και (2) να μάθουμε ποιος είναι αυτός ο αποστολέας, με το status.mpi_source. MPI_Status status; MPI_Recv(&req, 1, MPI_INT, MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &status); MPI_Send(&Cutc, 1, MPI_DOUBLE, status.mpi_source, 0, MPI_COMM_WORLD); ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 7

9 ΕΡΓΑΣΤΗΡΙΑΚΗ ΆΣΚΗΣΗ Σε αυτό το τμήμα της εργαστηριακής άσκησης θα δοκιμάσουμε να υλοποιήσουμε κάποιες εκδόσεις του αλγορίθμου του Cristian και να δοκιμάσουμε την επίδοσή τους. Κατά την διάρκεια εκτέλεσης του εργαστηριακού οδηγού θα πρέπει να συμπληρώνετε παράλληλα και την εργαστηριακή σας αναφορά, πρότυπο της οποίας μπορείτε να βρείτε στο openclass του μαθήματος. Η εργαστηριακή αναφορά θα πρέπει να έχει παραδοθεί την ημέρα πριν το επόμενο εργαστήριο, σύμφωνα με τις οδηγίες. Βήμα 1: Μετρώντας τον χρόνο Στο πρώτο βήμα της εργαστηριακής άσκησης θα προσπαθήσουμε να μετρήσουμε χρονικές διάρκειες χρησιμοποιώντας την συνάρτηση MPI_Wtime(). Για αυτό το λόγο: 1. Συνδεθείτε σε ένα λειτουργικό Linux (Ubuntu ή LUbuntu). 2. Ανοίξτε ένα terminal 3. Δημιουργήστε έναν φάκελο MPI_ABCD, όπου ABCD το μητρώο σας. Για να το πετύχετε αυτό, εκτελέστε την εντολή mkdir MPI_ABCD. Στην συνέχεια μπείτε στον φάκελο εκτελώντας την εντολή cd MPI_ABCD. 4. Δημιουργήστε το αρχείο time.c εκτελώντας την εντολή gedit time.c 5. Αντιγράψτε το παρακάτω πρόγραμμα στο αρχείο σας #include <mpi.h> #include <stdio.h> #include <unistd.h> #include <time.h> #include <limits.h> int main(int argc, char** argv) double t1, t2; MPI_Init(NULL, NULL); int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); t1 = MPI_Wtime(); sleep(5); t2 = MPI_Wtime(); printf("process %d needed %1.5f to execute sleep(5).\n", rank, t2-t1); fflush(stdout); MPI_Finalize(); return 0; ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 8

10 6. Αφού αποθηκεύσετε και κλείσετε το αρχείο, μεταγλωττίστε το εκτελώντας την εντολή mpicc time.c o time 7. Εάν δεν έγινε κάποιο λάθος, ο μεταγλωττιστής δεν θα πρέπει να βγάλει κανένα μήνυμα. Τότε, μπορείτε να εκτελέσετε το πρόγραμμα, τρέχοντας την εντολή mpirun np 10./time. Σε αυτή την εντολή, η παράμετρος np καθορίζει το πλήθος των διεργασιών που θα δημιουργηθούν στον «κόσμο» μας. 8. Αντιγράψτε την έξοδο του προγράμματος στην εργαστηριακή αναφορά σας. Τι παρατηρείτε; Βήμα 2: Ο αλγόριθμος του Cristian 1 η Έκδοση Σε αυτό το βήμα θα υλοποιήσουμε τον αλγόριθμο του Cristian, με τις εξής παραδοχές: a) Ο TimeServer θα είναι η διεργασία 0. b) Κάθε διεργασία θα ρωτήσει μία φορά τον TimeServer για την ώρα. c) Ο χρόνος επεξεργασίας δεν θα ληφθεί υπόψη. d) Κάθε διεργασία θα χρησιμοποιήσει την συνάρτηση MPI_Wtime() για να θέσει το ρολόι της. Αυτό θα μας δημιουργήσει πρόβλημα, μιας και όλες οι διεργασίες θα έχουν (σχεδόν) την ίδια ώρα. Για τον λόγο αυτό θα «ξεσυγχρονίσουμε» το ρολόι κάθε διεργασίας με έναν τυχαίο αριθμό. Συνεπώς: 1. Ανοίξτε ένα terminal 2. Μπείτε στον φάκελο εκτελώντας την εντολή cd MPI_ABCD. 3. Δημιουργήστε το αρχείο cristian1.c εκτελώντας την εντολή gedit cristian1.c 4. Αντιγράψτε το παρακάτω πρόγραμμα στο αρχείο σας #include <mpi.h> #include <stdio.h> #include <unistd.h> #include <time.h> #include <limits.h> int main(int argc, char** argv) double t0, t1, Cutc, correction, cf; int i, req = 1; MPI_Init(NULL, NULL); int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); srand(time(null) + rank); int rt = rand()% ;//random time from 1 to 300, for producing different clocks if (rank == 0) printf("\ntime server initializing\n"); ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 9

11 t1 = MPI_Wtime() + rt ; printf("my clock says: %1.5f\n", t1); for (i = 1; i < world_size; i++) MPI_Recv(&req, 1, MPI_INT, i, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); Cutc = MPI_Wtime() + rt ; MPI_Send(&Cutc, 1, MPI_DOUBLE, i, 0, MPI_COMM_WORLD); else t0 = MPI_Wtime() + rt ; MPI_Send(&req, 1, MPI_INT, 0, 0, MPI_COMM_WORLD); //sleep(1);//add network latency MPI_Recv(&Cutc, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); t1 = MPI_Wtime() + rt ; correction = Cutc + (t1 - t0) / 2; if (t1 > correction) printf("process %d has to slow down (wait) for %1.3f in order to catch up\n", rank, t1 - correction); else printf("process %d has to add %1.3f to the clock in order to catch up\n", rank, correction - t1); fflush(stdout); fflush(stdout); MPI_Finalize(); return 0; 5. Αφού αποθηκεύσετε και κλείσετε το αρχείο, μεταγλωττίστε το εκτελώντας την εντολή mpicc cristian1.c o cristian1 6. Εάν δεν έγινε κάποιο λάθος, ο μεταγλωττιστής δεν θα πρέπει να βγάλει κανένα μήνυμα. Τότε, μπορείτε να εκτελέσετε το πρόγραμμα, τρέχοντας την εντολή mpirun np 10./cristian1. Σε αυτή την εντολή, η παράμετρος np καθορίζει το πλήθος των διεργασιών που θα δημιουργηθούν στον «κόσμο» μας. 7. Αντιγράψτε την έξοδο του προγράμματος στην εργαστηριακή αναφορά σας. ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 10

12 Βήμα 3: Ο αλγόριθμος του Cristian 2 η Έκδοση Σε αυτό το βήμα θα τροποποιήσουμε το προηγούμενο πρόγραμμα, έτσι ώστε κάθε διεργασία να μην κάνει αίτημα μόνο μία φορά, αλλά να συγχρονίζει το ρολόι της όσες φορές θέλει. Έτσι, κάθε διεργασία «κοιμάται» για ένα τυχαίο χρονικό διάστημα και μετά εκτελεί τον συχρονισμό. 1. Ανοίξτε ένα terminal 2. Μπείτε στον φάκελο MPI_ABCD. 3. Δημιουργήστε το αρχείο gen_graph.c εκτελώντας την εντολή gedit cristian2.c 4. Αντιγράψτε το παρακάτω πρόγραμμα στο αρχείο σας #include <mpi.h> #include <stdio.h> #include <unistd.h> #include <time.h> #include <limits.h> int main(int argc, char** argv) double t0, t1, Cutc, correction, cf; int i, req = 1; MPI_Init(NULL, NULL); int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Status status; srand(time(null) + rank); int rt = rand()% ;//random time from 1 to 300, for producing different clocks if (rank == 0) printf("\ntime server initializing\n"); t1 = MPI_Wtime() + rt ; printf("my clock says: %1.5f\n", t1); while (1) MPI_Recv(&req, 1, MPI_INT, MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &status); Cutc = MPI_Wtime() + rt ; MPI_Send(&Cutc, 1, MPI_DOUBLE, status.mpi_source, 0, MPI_COMM_WORLD); else while (1) sleep(rand()%10 + 1); ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 11

13 t0 = MPI_Wtime() + rt ; MPI_Send(&req, 1, MPI_INT, 0, 0, MPI_COMM_WORLD); //sleep(1);//add network latency MPI_Recv(&Cutc, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); t1 = MPI_Wtime() + rt ; correction = Cutc + (t1 - t0) / 2; if (t1 > correction) printf("process %d has to slow down (wait) for %1.3f in order to catch up\n", rank, t1 - correction); else printf("process %d has to add %1.3f to the clock in order to catch up\n", rank, correction - t1); fflush(stdout); fflush(stdout); MPI_Finalize(); return 0; 5. Προσπαθήστε να προβλέψετε την έξοδο του προγράμματος 6. Αφού αποθηκεύσετε και κλείσετε το αρχείο, μεταγλωττίστε το εκτελώντας την εντολή mpicc cristian2.c o cristian2 7. Εάν δεν έγινε κάποιο λάθος, ο μεταγλωττιστής δεν θα πρέπει να βγάλει κανένα μήνυμα. Τότε, μπορείτε να εκτελέσετε το πρόγραμμα, τρέχοντας την εντολή mpirun np 10./cristian2 8. Αντιγράψτε την έξοδο του προγράμματος στην εργαστηριακή αναφορά σας. Βήμα 4: Ο αλγόριθμος του Berkeley Σε αυτό το βήμα υλοποιήσουμε τον αλγόριθμο του Berkeley. 1. Ανοίξτε ένα terminal 2. Μπείτε στον φάκελο MPI_ABCD. 3. Δημιουργήστε το αρχείο berkeley.c εκτελώντας την εντολή gedit berkeley.c 4. Αντιγράψτε το παρακάτω πρόγραμμα στο αρχείο σας #include <mpi.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <time.h> #include <limits.h> ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 12

14 int main(int argc, char** argv) double t0, t1, newtime, correction, meandev, dev, totaldev, tserver; int i, req = 1; MPI_Init(NULL, NULL); int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); srand(time(null) + rank); int rt = rand()% ;//random time from 1 to 300, for producing different clocks if (rank == 0) double* pt; pt = (double*)malloc(world_size * sizeof(double));; totaldev = 0; printf("\ntime server initializing\n"); t1 = MPI_Wtime() + rt ; printf("my clock says: %1.5f\n", t1); for (i = 1; i < world_size; i++) MPI_Send(&t1, 1, MPI_DOUBLE, i, 0, MPI_COMM_WORLD); MPI_Recv(&dev, 1, MPI_DOUBLE, i, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); pt[i] = dev; totaldev = totaldev + dev; meandev = totaldev / world_size; printf("\nmean DEVIATION = %1.2f\n", meandev); for (i = 1; i < world_size; i++) correction = meandev - pt[i]; MPI_Send(&correction, 1, MPI_DOUBLE, i, 0, MPI_COMM_WORLD); else ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 13

15 t0 = MPI_Wtime() + rt ; MPI_Recv(&tserver, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); dev = t0 - tserver; MPI_Send(&dev, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); MPI_Recv(&correction, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); printf("process %d received a correction of %1.2f, and now has time %1.2f\n", rank, correction, t0 + correction); fflush(stdout); fflush(stdout); MPI_Finalize(); return 0; 5. Προσπαθήστε να προβλέψετε την έξοδο του προγράμματος 6. Αφού αποθηκεύσετε και κλείσετε το αρχείο, μεταγλωττίστε το εκτελώντας την εντολή mpicc berkeley.c o berkeley 7. Εάν δεν έγινε κάποιο λάθος, ο μεταγλωττιστής δεν θα πρέπει να βγάλει κανένα μήνυμα. Τότε, μπορείτε να εκτελέσετε το πρόγραμμα, τρέχοντας την εντολή mpirun np 10./berkeley 8. Αντιγράψτε την έξοδο του προγράμματος στην εργαστηριακή αναφορά σας. ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 14

16 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ Προσπαθήστε να λύσετε τις παρακάτω δραστηριότητες. Οι απαντήσεις κάθε δραστηριότητας θα πρέπει να εμφανίζονται στην εργαστηριακή σας αναφορά. 1. Μετατρέψτε το παράδειγμα του βήματος 2, έτσι ώστε η διεργασία k να περιμένει k δευτερόλεπτα πριν στείλει το αίτημά της για συγχρονισμό του ρολογιού της. Με αυτόν τον τρόπο η διεργασία TimeServer δεν θα έχει ταυτόχρονα πολλές αιτήσεις. Τι παρατηρείτε; 2. Μετατρέψτε το παράδειγμα του βήματος 3, έτσι ώστε να λαμβάνετε υπόψη και τον χρόνο επεξεργασίας της διεργασίας TimeServer. 3. Μετατρέψτε το παράδειγμα του βήματος 3 έτσι ώστε να υπάρχουν 2 TimeServers. Κάθε διεργασία που επιθυμεί να συγχρονίσει το ρολόι της θα πρέπει να κάνει αίτημα και στους 2 TimeServers και ως ώρα θα χρησιμοποιεί τον μέσο όρο των απαντήσεων. 4. Προσθέστε σχόλια στον κώδικα του βήματος Τροποποιήστε τον κώδικα του βήματος 4, έτσι ώστε ο TimeServer να εκκινεί την διαδικασία και να ενημερώνει τα ρολόγια όλων των υπολοίπων διεργασιών κάθε 10 δευτερόλεπτα. ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 15

17 ΒΙΒΛΙΟΓΡΑΦΙΑ "MPI: The Complete Reference" by Snir, Otto, Huss-Lederman, Walker, and Dongarra, MIT Press (also in Postscript and html) "Using MPI: Portable Parallel Programming with the Message-Passing Interface, " by Gropp, Lusk and Skjellum, MIT Press Designing and Building Parallel Programs, by Ian Foster, Addison-Wesley, Parallel Programming with MPI, by Peter Pacheco, Morgan-Kaufmann, MPI θεωρία και Εφαρμογές, A. Μάργαρης, Εκδόσεις Τζιόλα, Homepage: ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 16

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΣ POLLING ΚΥΜΑΤΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΣ POLLING ΚΥΜΑΤΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Ο αλγόριθμος Polling... 2 Ο Κυματικός Αλγόριθμος...

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

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

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΚΛΟΓΗ ΑΡΧΗΓΟΥ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΚΛΟΓΗ ΑΡΧΗΓΟΥ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Εκλογή αρχηγού... 2 Εισαγωγή... 2 Ο Αλγόριθμος

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

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ TARRY ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ TARRY ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ TARRY ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Το πρωτόκολλο TARRY... 2 Εισαγωγή...

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

ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ECHO ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ECHO ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Το πρωτόκολλο ECHO... 2 Εισαγωγή... 2 Το πρωτόκολλο

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

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Εισαγωγή...

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

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

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

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

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

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

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

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π ( Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός

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

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017 Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Εισαγωγή στο MPI Εγκατάσταση του Message Passing Interface,

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

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

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

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

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

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

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

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΓΕΝΙΚΟΙ ΓΡΑΦΟΙ ΣΤΟ MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΓΕΝΙΚΟΙ ΓΡΑΦΟΙ ΣΤΟ MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΓΕΝΙΚΟΙ ΓΡΑΦΟΙ ΣΤΟ MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Γενικοί Γράφοι στο MPI... 2

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

Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1

Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1 Φυσικά και λογικά ρολόγια Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Τοπικά γεγονότα/συμβάντα Ορίζουμε ως γεγονός e i.x την x-οστή ενέργεια που έλαβε χώρα τοπικά στην διεργασία P i Το επίπεδο αφαίρεσης

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

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

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

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

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

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

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

«Συγχρονισμός ρολογιών υπό την παρουσία σφαλμάτων»

«Συγχρονισμός ρολογιών υπό την παρουσία σφαλμάτων» ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ II «υπό την παρουσία σφαλμάτων» Αντωνέλλης Δημήτριος Α.Μ. 2812 antonel@ceid.upatras.gr ΠΑΤΡΑ ΙΟΥΛΙΟΣ 2007 Outline Μέρος Α

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

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

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

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

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

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

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

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών Υπολογισμός με βάση το πέρασμα μηνυμάτων Προγραμματισμός με πέρασμα μηνυμάτων ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών που θα εκτελούνται σε διαφορετικούς υπολογιστές. 2.

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

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Αναδροµή Σηµείωση: Απαγορεύονται static και global µεταβλητές. Πριν ξεκινήσετε Πηγαίνετε στο φάκελο ce120 και κατασκευάστε µέσα

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

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

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, εκέµβριος 2002 Τι είναι το MPI; Είναι πρότυπο, όχι συγκεκριµένη υλοποίηση Βιβλιοθήκη ανταλλαγής

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

Προγραμματισμός συστημάτων UNIX/POSIX. Χρονομέτρηση

Προγραμματισμός συστημάτων UNIX/POSIX. Χρονομέτρηση Προγραμματισμός συστημάτων UNIX/POSIX Χρονομέτρηση Χρονομέτρηση (Ι) Πρώτα από όλα, τι ακριβώς θέλουμε να μετρήσουμε; Μας ενδιαφέρει ο χρόνος που ο επεξεργαστής αφιέρωσε σε ένα πρόγραμμα ή σε ένα συγκεκριμένο

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper. Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

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

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Αναδροµή Σηµείωση: Απαγορεύονται static και global µεταβλητές. Πριν ξεκινήσετε Πηγαίνετε στο φάκελο ce120 και κατασκευάστε µέσα

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

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017 Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Διαμοίραση (MPI_Scatter) και συλλογή δεδομένων (MPI_Gather)

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

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

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

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

Προγραµµατισµός µε ανταλλαγή µηνυµάτων Ι. Εισαγωγή στο MPI. Εφαρµογές Ανεξάρτητου Παραλληλισµού.

Προγραµµατισµός µε ανταλλαγή µηνυµάτων Ι. Εισαγωγή στο MPI. Εφαρµογές Ανεξάρτητου Παραλληλισµού. Προγραµµατισµός µε ανταλλαγή µηνυµάτων Ι. Εισαγωγή στο MPI. Εφαρµογές Ανεξάρτητου Παραλληλισµού. Λογισµικό & Προγραµµατισµός Συστηµάτων Υψηλής Επίδοσης Οµάδα Παράλληλων & Κατανεµηµένων Συστηµάτων http://pdsgroup.hpclab.ceid.upatras.gr/

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

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)

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

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2003 24/11/2003 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική

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

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 6/3/2016

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 6/3/2016 Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Εισαγωγή στο MPI Εγκατάσταση του Message Passing

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

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

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

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

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

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Φορµαρισµένη είσοδος και έξοδος Αριθµητική χαρακτήρων Δοµές ελέγχου Δοµές επανάληψης Πίνακες Πριν ξεκινήσετε Πηγαίνετε στο φάκελο

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

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

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2015-2016 Δεύτερη Προγραμματιστική Εργασία Γενική περιγραφή Στη δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε ένα διομότιμο σύστημα (Peer-to-

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

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Φορµαρισµένη είσοδος και έξοδος Αριθµητική χαρακτήρων Δοµές ελέγχου Δοµές επανάληψης Πίνακες Πριν ξεκινήσετε Πηγαίνετε στο φάκελο

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

Εκφωνήσεις ασκήσεων εργαστηρίου 1

Εκφωνήσεις ασκήσεων εργαστηρίου 1 Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Γκόγκος Χρήστος Εκφωνήσεις ασκήσεων εργαστηρίου

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

Επικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού

Επικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 Επικοινωνία Πολλάκατανεµηµένα συστήµατα υλοποιούνται πάνω από ένα απλό µοντέλο µηνυµάτων επικοινωνίας,

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσμία: Τετάρτη 23/11/2016, 21:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσμία: Τετάρτη 23/11/2016, 21:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016-2017 Προθεσμία: Τετάρτη 23/11/2016, 21:00 Διαβάστε πριν ξεκινήσετε Διαβάστε την εκφώνηση προσεκτικά και σχεδιάστε το πρόγραμμά σας στο

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

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Εισαγωγή στο MPI» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

Αρχιτεκτονική κοινής μνήμης

Αρχιτεκτονική κοινής μνήμης Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα

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

Παράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή

Παράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή Παράλληλα και Κατανεµηµένα Συστήµατα 1 Εισαγωγή Στόχος της περιγραφής που ακολουθεί, αποτελεί η παρουσίαση του περιβάλλοντος διεπαφής ανταλλαγής µηνυµάτων (message passing interface) MPI δια της χρήσεως

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

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη

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

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Στο εργαστήριο αυτό, θα εξοικειωθούμε με τους τύπους δεδομένων που μας παρέχει η γλώσσα C, θα χρησιμοποιήσουμε τις δομές επανάληψης (for, while, do...while),

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

Εργαστήριο 3 Εντολή for while, do while

Εργαστήριο 3 Εντολή for while, do while Εργαστήριο 3 Εντολή for while, do while Άσκηση 3.1 Εύρεση αθροίσματος ακεραίων με χρήση της εντολής for #include int main(int argc, char *argv[]) int num,sum; coutnum;

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

Συστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI)

Συστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI) Message Passing Interface (MPI) Αρχιτεκτονική κοινής µνήµης Οι επεξεργαστές έχουν κοινή µνήµη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών µνηµών Συνήθως η διασύνδεση γίνεται µέσω διαδρόµου µνήµης

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

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

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

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

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp Γκόγκος Χρήστος Παράδειγμα

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β 1. (10 μον.) Απαντήστε σωστό ή λάθος στις παρακάτω ερωτήσεις (αʹ) _2togo είναι έγκυρο όνομα μεταβλητής (βʹ) Αν p είναι δείκτης στο πρώτο στοιχείο

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

Εκφωνήσεις ασκήσεων εργαστηρίου 2 (pthreads)

Εκφωνήσεις ασκήσεων εργαστηρίου 2 (pthreads) Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Γκόγκος Χρήστος Εκφωνήσεις ασκήσεων εργαστηρίου

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Κεφάλαιο VIΙΙ Β. Δημακόπουλος

Κεφάλαιο VIΙΙ Β. Δημακόπουλος Μεταβίβαση μηνυμάτων Κεφάλαιο VIΙΙ Β. Δημακόπουλος Προγραμματίζοντας με μεταβίβαση μηνυμάτων Δεν υπάρχουν κοινές μεταβλητές διεργασίες και μηνύματα Θεωρείται το πιο δύσκολο Μπορεί, όμως, να γίνει πιο αποδοτικό

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

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

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

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

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

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 12: Διάχυση Μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Ορισμός Προσομοίωσης Τι θα δούμε σήμερα Προσομοίωση Υπηρεσίας Διάχυσης Μηνυμάτων Ιδιότητες Διάταξης Μηνυμάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι

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

Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών. Κοντοτάσιου Ιωάννα ΑΜ 3125 Μπέσσας Απόστολος ΑΜ 3171

Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών. Κοντοτάσιου Ιωάννα ΑΜ 3125 Μπέσσας Απόστολος ΑΜ 3171 Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών Κοντοτάσιου Ιωάννα ΑΜ 35 Μπέσσας Απόστολος ΑΜ 37 Το πρόβλημα των αναφορών Κάθε ερευνητική εργασία απαιτείται να αναφέρει τις βιβλιογραφικές αναφορές της. Ο

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ψευδοτυχαίοι Αριθμοί Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Ψευδοτυχαίοι Αριθμοί Μια γεννήτρια ψευδοτυχαίων αριθμών είναι

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

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών. Οδηγίες εργαστηρίου. Συστήματα Παράλληλης Επεξεργασίας 9 ο Εξάμηνο Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Οδηγίες εργαστηρίου 9 ο Εξάμηνο Λογαριασμοί Έχετε 2 accounts (και 2 διαφορετικά home directories!)

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

Σύστημα Διαχείρισης Σκεπτόμενων Συσκευών CASE STUDY

Σύστημα Διαχείρισης Σκεπτόμενων Συσκευών CASE STUDY CASE STUDY Fridge Kitchen Αναλύουμε τα Use Cases Εμφάνιση συσκευών Εμφάνιση τρέχοντων μετρήσεων όλων των συσκευών Εμφάνιση Ιστορικού Μετρήσεων μιας συσκευής Σύνδεση Συσκευής με Διαχειριστή-Συσκευών Έλεγχος

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

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου 2013 Θέµα 1 (α') Η απάντηση είναι λάθος. Αν χρησιµοποιήσουµε την µακροεντολή, για παράδειγµα, στην έκφραση 24/CUBE(2) η έκφραση

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Έκτη (6 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις) Προγραμματίζοντας με μεταβίβαση μηνυμάτων Δεν υπάρχουν κοινόχρηστες μεταβλητές διεργασίες και μηνύματα Θεωρείται

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση του περιβάλλοντος Dev C++ το οποίο θα χρησιμοποιηθεί για την υλοποίηση

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

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts) Κ Σ Ι Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS Παναγιώτα Παναγοπούλου 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts) Ο αλγόριθμος LCR είναι ένας αλγόριθμος εκλογής αρχηγού σε ένα

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

30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος

30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος Υ07 Παράλληλα Συστήματα 2011-12 30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος multicomputers, MPPs, clusters Πολυεπεξεργαστές κατανεμημένης μνήμης Ανεξάρτητοι

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

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

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

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

Εμπειρική αποτίμηση παράλληλων προγραμμάτων

Εμπειρική αποτίμηση παράλληλων προγραμμάτων . 2a.1 Εμπειρική αποτίμηση παράλληλων προγραμμάτων Κ.Γ. Μαργαρίτης προσαρμογή από το μάθημα του Barry Wilkinson ITCS 4145/5145 2006 Cluster Computing Univ. of North Carolina at Charlotte 2a.2 Οπτικοποίηση

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Εκλογή αρχηγού σε γενικά δίκτυα Προηγούμενη διάλεξη Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

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

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι. Κατανεμημένα Συστήματα Ι 1 Περίληψη Φροντιστηρίου 2 Το Περιβάλλον DAP Φροντιστήριο Ένα παράδειγμα υλοποίησης στο DAP Δευτέρα 14 Νοεμβρίου 2005 Γιάννης Κρομμύδας Το περιβάλλον DAP Τι είναι Το περιβάλλον

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

Εργαστήριο 5 fork(), exec(), signals

Εργαστήριο 5 fork(), exec(), signals Εργαστήριο 5 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων

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

MPI: Message Passing Interface

MPI: Message Passing Interface Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά Distributed Debugging Τσώτσος Θοδωρής Φωλίνας Νίκος Εισαγωγικά Επιθυµούµε να µπορούµε να παρατηρούµε την εκτέλεση του προγράµµατος κατά τη διάρκειά του. Έχουµε τη δυνατότητα να ελέγξουµε αν οι απαιτούµενες

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #6 εκτέλεση σε επανάληψη 1 Σπύρος Λάλης Εκτέλεση σε επανάληψη: while while () lexpr body true false Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται σε μια τιμή

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

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8 Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 1000 1001 1002 1003 1004 1005 12 9.8 9976 3 1010 26 1006 1007 1008 1009 1010 1011 16 125 1299 a 13 1298 Δήλωση Δήλωση Τύπος

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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