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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενσωματωμένα Συστήματα

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

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

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

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

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

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

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

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

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

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

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

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

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

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

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

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

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

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

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

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

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

Λογιστικές Εφαρμογές Εργαστήριο

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

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

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

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

{ int a = 5; { int b = 7; a = b + 3;

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

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

Θεωρία Πιθανοτήτων & Στατιστική

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

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

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

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

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

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

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

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

ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ(Visual Basic)

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

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

Ενσωματωμένα Συστήματα

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

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

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 6 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 1: Εισαγωγικό Μάθημα

Αυτοματοποιημένη χαρτογραφία

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

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

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

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

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

Οικονομικά Μαθηματικά

Ειδικά Θέματα Προγραμματισμού

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Λογισμός ΙΙ. Χρήστος Θ. Αναστασίου Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μαθηματική Ανάλυση ΙI

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 3: Πολλαπλή Παλινδρόμηση. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

9 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

ΜΑΘΗΜΑ: Ηλεκτρονικά Ισχύος

Transcript:

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

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

Περιεχόμενα 1. Μέτρηση χρόνου τοίχου κατά POSIX.. 4 3

1. Μέτρηση χρόνου τοίχου κατά POSIX Κατά τη διαδικασία βελτιστοποίησης μιας εφαρμογής, είναι πολύ σημαντικό ο προγραμματιστής να μπορεί να μετράει το χρόνο εκτέλεσης πριν και μετά τη βελτιστοποίηση, ώστε να διαπιστώσει κατά πόσο οι τροποποιήσεις που έχει κάνει έχουν επιδράσει θετικά ή αρνητικά στις επιδόσεις. Υπάρχουν διάφοροι τρόποι μέτρησης χρόνου. Ο καλύτερος τρόπος μέτρησης, είναι η μέτρηση του πραγματικού χρόνου. Για να μετρηθεί ο πραγματικός χρόνος (χρόνος ρολογιού, wall time) που απαιτήθηκε χρησιμοποιείται η POSIX συνάρτηση clock_gettime(). Για να χρησιμοποιηθεί αυτή η συνάρτηση πρέπει αρχικά να γίνει: #include <time.h> στη συνέχεια να δηλωθούν οι μεταβλητές χρόνου αρχικής και τελικής τιμής με struct timespec start, end; να τοποθετηθεί μια φορά η κλήση της συνάρτησης μέτρησης πριν από το κρίσιμο τμήμα του προγράμματος με clock_gettime (CLOCK_MONOTONIC, &start); και μια φορά η κλήση της συνάρτησης μετά το κρίσιμο τμήμα clock_gettime(clock_monotonic, &end); Αυτό θα έχει ως αποτέλεσμα να καταγράφει η τιμή των δευτερολέπτων και νανο-δευτερολέπτων στις αντίστοιχες μεταβλητές. Για να χρησιμοποιηθούν οι τιμές, θα πρέπει να γίνει η κατάλληλη αφαίρεση και η εκτύπωση των αποτελεσμάτων. const int DAS_NANO_SECONDS_IN_SEC = 1000000000; long timeelapsed_s = end.tv_sec - start.tv_sec; long timeelapsed_n = end.tv_nsec - start.tv_nsec; //If we have a negative number in timeelapsed_n, borrow a carry from seconds if ( timeelapsed_n < 0 ) {timeelapsed_n = DAS_NANO_SECONDS_IN_SEC + timeelapsed_n; timeelapsed_s--; printf("time: %ld.%09ld secs \n",timeelapsed_s,timeelapsed_n); Συνήθως, εκτελείται το πρόγραμμα αρκετές φορές (π.χ. 5-10 φορές) και σημειώνεται η μέση τιμή. Αυτό γίνεται, γιατί η εργασία σε πολυ-προγραμματιστικά περιβάλλοντα μερικές φορές, εισάγει μη προβλεπόμενες καθυστερήσεις. Η μέτρηση του χρόνου γίνεται στην κρίσιμη συνάρτηση και όχι σε όλο τον κώδικα. Για παράδειγμα στον παρακάτω ψευδοκώδικα ανίχνευσης κίνησης: motion_compensation(); snr(); 4

θα πρέπει να τοποθετηθούν οι συναρτήσεις μέτρησης χρόνου πριν την κρίσιμη συνάρτηση που είναι η ως εξής: clock_gettime(clock_monotonic, &start); clock_gettime(clock_monotonic, &end); motion_compensation(); snr(); Θα πρέπει να σημειωθεί ότι σε περίπτωση που χρησιμοποιούνται πολλαπλά νήματα ή πολλαπλές διεργασίες, τότε η μέτρηση του χρόνου θα πρέπει να γίνει από ένα μόνο νήμα. Για παράδειγμα, στη περίπτωση που χρησιμοποιείται openmp, τότε θα πρέπει να προσδιορίσουμε ότι μόνο ένα νήμα θα εκτελέσει τη μέτρηση, είτε με το #pragma omp master είτε με τη συνάρτηση omp_get_thread_num(), όπως φαίνεται στα παρακάτω παραδείγματα. (α τρόπος) #pragma omp parallel { #pragma omp master clock_gettime(clock_monotonic, &start); #pragma omp master clock_gettime(clock_monotonic, &end); (β τρόπος) #pragma omp parallel { if(omp_get_thread_num()==0){clock_gettime(clock_monotonic, &start); if(omp_get_thread_num()==0){clock_gettime(clock_monotonic, &end); 5