[Advcomparch] Το run-sniper δεν αναγνωρίζει το εκτελέσιμο

Nikos Anastopoulos anastop at cslab.ece.ntua.gr
Wed Jun 26 13:43:27 EEST 2013


On 06/26/2013 10:39 AM, Lambros Flokas wrote:
> Και εγώ κάτι τέτοιο περίμενα για τον έλεγχο των lock.Πρακτικά δεδομένου
> ότι δεν έχω deadlock το μόνο που μου μένει είναι να ελέγξω είναι αν το
> κρίσιμο τμήμα της κάθε συνάρτησης που φτιάχνω εκτελείται ατομικά έτσι
> δεν είναι;Τυπικά νομίζω ότι το κάνω αυτό αλλά επειδή πρώτη φορά
> αντιμετωπίζω κάτι τέτοιο δεν είμαι πολύ σίγουρος.Βέβαια δεν δοκίμασα
> αυτό που λέτε με την εκτέλεση γιατί δεν είχα διαθέσιμο κάποιο
> πρόγραμμα.Βλέπω όμως στο locks scalability ότι υπάρχει το compile time
> directive debug.Μπορεί να μας βοηθήσει αυτό για να βρούμε τα πιθανά λάθη ;
Και αυτό το directive είναι user-specified, δηλαδή δεν κάνει τίποτε άλλο 
από το να συμπεριλαμβάνει στην μεταγλώττιση τον κώδικα που εσωκλείει, 
εφόσον ορίζεται το -DDEBUG στο command line του gcc. Θα μπορούσες 
επομένως να βάλεις ό,τι κώδικα θες μέσα σε τέτοια if blocks προκειμένου 
να τον μεταγλωττίσεις για έλεγχο της ορθότητας, και όταν κάνεις τα 
performance tests απλά να απενεργοποιήσεις τα κομμάτια αυτά 
(μεταγλωττίζοντας χωρίς το αντίστοιχο flag).

Θυμίζω και πάλι ότι ένα καλό σενάριο που ενδεχομένως να αναδείξει θέματα 
στην ορθότητα είναι εξής απλό:

spin_lock(lock);
x++;				
spin_unlock(lock);

χωρίς άλλες λειτουργίες (π.χ. dummy work) μέσα στην κρίσιμη περιοχή. Όσο 
πιο aggressive είναι η εκτέλεση της περιοχής (πολλά νήματα, πολλές 
επαναλήψεις, εκτέλεση σε πραγματικό σύστημα), τόσο πιθανότερο είναι να 
πάει κάτι στραβά στο update του x όταν η υλοποίηση των locks είναι 
σημασιολογικά λάθος.

> Θα ήθελα να ρωτήσω και κάτι ακόμα για τα προγράμματα που θα εκτελέσουμε
> στο vm
> Πρώτον δεν καταλαβαίνω στην εντολή που προτείνεται ποιο είναι το
> πρόγραμμα που μεταγλωττίζουμε γιατί βλέπω μόνο ένα lock.tas και όχι το
> lockscalability.c και μου φαίνεται περίεργο.
Ναι, το source file είναι το lock_scalability.c (έχει απαντηθεί και σε 
προηγούμενο mail).

> Δεύτερον από ότι καταλαβαίνω το εκτελέσιμο που θα βγει θα το εκτελέσουμε
> από το terminal χωρίς τον sniper έτσι δεν είναι;
Σωστά.

> Τρίτον το ίδιο το εκτελέσιμο θα μας δώσει το χρόνο στην ROI από μόνου
> του στο terminal και εμείς απλά θα το αντιγράφουμε για τα στατιστικά μας
> ή πρέπει να κάνουμε και κάτι άλλο;
Το πρόγραμμα εκτυπώνει το χρόνο εκτέλεσης όπως τον μέτρησε το thread 0, 
χρησιμοποιώντας την gettimeofday (δες τον κώδικα που εσωκλείεται με τo 
directive REAL για να καταλάβεις ακριβώς).

Ν.


> Ευχαριστώ και πάλι για την βοήθεια.
>
>
> 2013/6/26 Nikos Anastopoulos <anastop at cslab.ece.ntua.gr
> <mailto:anastop at cslab.ece.ntua.gr>>
>
>     Καλησπέρα,
>
>
>     On 06/25/2013 06:26 PM, Lambros Flokas wrote:
>
>         Αυτό που βλέπω όμως στο TAS είναι αρκετά διαφορετικό.Όταν
>         φτάνουμε στους
>         32 πυρήνες ο χρόνος προσομοίωσης γίνεται πολύ μεγαλύτερος,φτάνει
>         μέχρι
>         και τα 2600 δευτερόλεπτα .Θεωρητικά καταλαβαίνω ότι αναμένουμε μια
>         τέτοια τάση απλά η τάξη μεγέθους με προβληματίζει μήπως δεν έχω
>         γράψει
>         σωστά τις συναρτήσεις.
>
>     Όπως εξήγησα και στο προηγούμενο mail, αφενός ο χρόνος αυτός δεν
>     είναι "παράλογος", αφετέρου δεν είναι αναγκαστικό ότι ο χρόνος
>     προσομοίωσης θα αυξάνεται γραμμικά με τον αριθμό των threads, αλλά
>     ενίοτε χειρότερα από αυτό.
>
>
>         Καταλαβαίνω ότι αν είχα κάνει κάποιο λάθος τότε είτε θα τέλειωνε
>         πολύ
>         γρήγορα γιατί θα έπαιρναν πάνω από ένας το κλειδί είτε δεν θα
>         τέλειωνε
>         ποτέ γιατί κανείς δεν παίρνει το κλειδί ή κανείς δεν το
>         απελευθερώνει
>         απλά δεν περίμενα τόσο μεγάλη κλιμάκωση και για αυτό αναρωτιέμαι
>         αν έχω
>         κάνει λάθος .
>
>     Αν η εκτέλεσή σου δεν τελείωνε ποτέ, και δεν έφταιγε τιποτε άλλο
>     πέρα από την υλοποίηση των locks, τότε σιγουρα υπάρχει λάθος στην
>     υλοποίηση που οδηγεί σε deadlock, δηλαδη γενικό μπλοκάρισμα της
>     εκτέλεσης.
>
>     Αν η υλοποίηση ήταν λάθος χωρις όμως να οδηγεί σε deadlock, τότε
>     αυτό δε σημαινει ότι η εκτέλεση θα τελείωνε πολύ γρήγορα, για την
>     αιτία που αναφέρεις. Σε μια λάθος υλοποίηση θα μπορούσε καλλιστα ο
>     συνολικός αριθμός των διαφορετικών λειτουργιών πάνω στη lock
>     μεταβλητή να ειναι περιπου ιδιος με τον αντιστοιχο αριθμό μιας
>     σωστής υλοποίησης, πράγμα που εμμεσως θα σήμαινε και παραπλήσιο
>     χρονο εκτέλεσης.
>
>     Ο έλεγχος ορθότητας μιας υλοποίησης locks δεν ειναι απλή υπόθεση. Η
>     τυπικη διαδικασία είναι να ελέγχετε βήμα-προς-βήμα τις επιμερους
>     στοιχειωδεις λειτουργίες που απαρτιζουν μια υλοποίηση lock ή unlock,
>     ώστε να εντοπίσετε περιπτώσεις και σενάρια παράλληλης εκτέλεσης που
>     οδηγούν σε ανεπιθύμητες συμπεριφορές, όπως deadlock ή ταυτόχρονη
>     είσοδο στην κρισιμη περιοχη απο 2 ή περισσότερα νήματα.
>     Ένας άλλος τρόπος, που ναι μεν δεν εγγυάται πλήρως την ορθότητα,
>     απλά αποτελεί μια *ένδειξη* αυτής, είναι ο εμπειρικός. Π.χ.,
>     θεωρείτε ότι στην κρισιμη περιοχή γινεται η αύξηση μιας μεταβλητής
>     κοινής για ολα τα threads (x++). Αν το αποτέλεσμα που παιρνετε
>     τελικα για το x δεν ειναι αυτο που αναμένετε θεωρητικά, τότε σίγουρα
>     υπαρχει λάθος στην υλοποιηση των locks. Διαφορετικά, τότε *ίσως* η
>     υλοποίησή σας είναι σωστή. Γενικά, σε τετοιες περιπτωσεις καλο ειναι
>     να χρησιμοποιειτε σενάρια εκτέλεσης που "στρεσσάρουν" την είσοδο
>     στην κρισιμη περιοχή, όπως αρκετά μεγάλο αριθμό νηματων, μεγάλο
>     αριθμό επαναλήψεων και εκτέλεση σε πραγματικό συστημα.
>
>     Ν.
>
>
>
>         2013/6/25 Nikos Anastopoulos <anastop at cslab.ece.ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>
>         <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>>
>
>              On 06/25/2013 04:47 PM, Lambros Flokas wrote:
>
>                  Ναι αυτό φαίνεται να ήταν το πρόβλημα.Αυτό που παρατηρώ
>         είναι ότι
>                  τουλάχιστον στο mutex που ξεκίνησα είναι πολύ γρήγορες οι
>                  προσομοιώσεις
>                     από  20 δευτερόλεπτα μέχρι 120.Φυσιολογικό δεν είναι
>         αυτό;
>
>
>              Είναι φυσιολογικό να διαρκούν τόσο χρόνο, καθώς το πλήθος των
>              επαναλήψεων (1000) είναι αρκετά μικρό ώστε να ολοκληρώνεται
>         σχετικά
>              γρήγορα η εκτέλεση, και από την άλλη αρκετά μεγάλο ώστε να
>         βγαίνουν
>              ασφαλή συμπεράσματα από την προσομοίωση μιας επαναληπτικής
>              διαδικασίας. Φυσικά, καθώς μεγαλώνει ο αριθμός των threads ή το
>              μέγεθος της κρίσιμης περιοχής (grain size), θα μεγαλώνει και ο
>              χρόνος προσομοίωσης.
>
>              Ν.
>
>
>
>                  2013/6/25 Nikos Anastopoulos <anastop at cslab.ece.ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>
>                  <mailto:anastop at cslab.ece.
>         <mailto:anastop at cslab.ece.>__nt__ua.gr <http://ntua.gr>
>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>>>
>
>
>                       On 06/25/2013 03:27 PM, Lambros Flokas wrote:
>
>                           Τώρα απλά μου εμφανίζει το usage χωρίς το not
>                  recognised που
>                           είχε πριν.
>                           Εμπλούτισα την εντολή με directory για τα
>         αποτελέσματα
>                  αλλά τίποτα
>                           #!/bin/bash
>
>           BENCHMARKS_ROOT="$HOME/______advcomparch/benchmarks"
>                           GRAPHITE_ROOT="$HOME/______advcomparch/sniper"
>                           conf=$GRAPHITE_ROOT/config/______ask3.cfg
>                           $BENCHMARKS_ROOT/run-sniper -c $conf -n 1 -d
>                           $BENCHMARKS_ROOT/mutex.sim
>                           -- $BENCHMARKS_ROOT/locks_mutex 1 1000 1
>
>
>                       Θα πρέπει να χρησιμοποιήσεις το εκτελέσιμο
>         run-sniper που
>                  υπάρχει
>                       στον κατάλογο $GRAPHITE_ROOT.
>                       Δηλαδή αλλάζεις την τελευταία εντολή παραπάνω σε:
>                       $GRAPHITE_ROOT/run-sniper -c $conf -n 1 -d
>                  $BENCHMARKS_ROOT/mutex.sim
>
>                         -- $BENCHMARKS_ROOT/locks_mutex 1 1000 1
>
>                       Γενικά, εφόσον δεν χρησιμοποιείτε κάποιο από τα έτοιμα
>                  benchmarks
>                       που έχει ο sniper, δεν υπάρχει λόγος χρήσης του
>         directory
>                       $BENCHMARKS_ROOT, τόσο για την αποθήκευση των
>         εκτελέσιμων
>                  όσο και
>                       του simulation output. Θα πρότεινα επομένως να
>         χρησιμοποιήσετε
>                       κάποιο δικό σας, ξεχωριστό directory.
>
>                       Ν.
>
>
>
>
>
>                           2013/6/25 Nikos Anastopoulos
>         <anastop at cslab.ece.ntua.gr <mailto:anastop at cslab.ece.ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>
>                           <mailto:anastop at cslab.ece.
>         <mailto:anastop at cslab.ece.>__nt__ua.gr <http://ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>>
>                           <mailto:anastop at cslab.ece
>         <mailto:anastop at cslab.ece>.
>                  <mailto:anastop at cslab.ece
>         <mailto:anastop at cslab.ece>.>__n__t__ua.gr <http://nt__ua.gr>
>         <http://ntua.gr>
>
>
>                           <mailto:anastop at cslab.ece.
>         <mailto:anastop at cslab.ece.>__nt__ua.gr <http://ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>>>>
>
>
>                                Καλησπέρα,
>
>                                Υποθέτω ότι το πρόβλημά σου οφείλεται στο
>         ότι μετά
>                  το '--' δεν
>                                αφήνεις κενό.
>                                Δηλαδή: $BENCHMARKS_ROOT/run-sniper -c
>         $conf -n 1 --
>                                $BENCHMARKS_ROOT/locks_mutex  1 1000 1
>
>                                Ν.
>
>
>                                On 06/25/2013 02:52 PM, Lambros Flokas wrote:
>
>                                    Έχω το ακόλουθο script
>                                    #!/bin/bash
>
>                    BENCHMARKS_ROOT="$HOME/________advcomparch/benchmarks"
>
>         GRAPHITE_ROOT="$HOME/________advcomparch/sniper"
>
>         conf=$GRAPHITE_ROOT/config/________ask3.cfg
>
>
>
>                                    $BENCHMARKS_ROOT/run-sniper -c $conf -n 1
>                                    --$BENCHMARKS_ROOT/locks_mutex
>                                    1 1000 1
>                                    και το locks_mutex όντως βρίσκεται στο
>                  benchmarks root
>                             αλλά όλο μου
>                                    πετά το από κάτω μήνυμα
>                                    option
>
>           --/home/user/advcomparch/________benchmarks/locks_mutex not
>
>
>
>                                    recognized
>                                    και μετά μου λέει οδηγίες για την
>         σύνταξη της
>                  εντολής
>                                    Έχω διαβάσει την προηγούμενη απορία
>         επί του
>                  θέματος στη
>                           λίστα
>                                    αλλά δε
>                                    βοήθησε και πιστεύω ότι ακολουθώ την
>         προτροπή
>                  της σελίδας 4
>                                    Ευχαριστώ εκ των προτέρων
>
>
>
>                    _______________________________________________________
>                                    Advcomparch mailing list
>
>         Advcomparch at lists.cslab.ece.________ntua.gr <http://ntua.gr>
>                  <http://ntua.gr> <http://ntua.gr>
>                                    <mailto:Advcomparch at lists
>         <mailto:Advcomparch at lists>.
>                  <mailto:Advcomparch at lists
>         <mailto:Advcomparch at lists>.>__c__s__lab.ece.ntua.gr
>         <http://cs__lab.ece.ntua.gr>
>                  <http://cslab.ece.ntua.gr>
>                           <mailto:Advcomparch at lists.
>         <mailto:Advcomparch at lists.>__cs__lab.ece.ntua.gr
>         <http://cslab.ece.ntua.gr>
>                  <mailto:Advcomparch at lists.__cslab.ece.ntua.gr
>         <mailto:Advcomparch at lists.cslab.ece.ntua.gr>>>>
>         http://lists.cslab.ece.ntua.________gr/mailman/listinfo/________advcomparch
>
>
>
>
>
>
>         <http://lists.cslab.ece.ntua.______gr/mailman/listinfo/______advcomparch
>
>
>         <http://lists.cslab.ece.ntua.____gr/mailman/listinfo/____advcomparch
>
>         <http://lists.cslab.ece.ntua.__gr/mailman/listinfo/__advcomparch
>         <http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch>>>>
>
>
>
>                                --
>                                Dr. Nikos Anastopoulos
>
>                                Research Associate
>                                National Technical University of Athens
>         (NTUA)
>                                School of Electrical and Computer Engineering
>                                Computing Systems Laboratory
>
>                                e-mail: anastop at cslab.ece.ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>
>                           <mailto:anastop at cslab.ece.
>         <mailto:anastop at cslab.ece.>__nt__ua.gr <http://ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>>
>                           <mailto:anastop at cslab.ece
>         <mailto:anastop at cslab.ece>.
>                  <mailto:anastop at cslab.ece
>         <mailto:anastop at cslab.ece>.>__n__t__ua.gr <http://nt__ua.gr>
>         <http://ntua.gr>
>
>
>                           <mailto:anastop at cslab.ece.
>         <mailto:anastop at cslab.ece.>__nt__ua.gr <http://ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>>>
>                                Tel: +30-210-7724159
>         <tel:%2B30-210-7724159> <tel:%2B30-210-7724159>
>                  <tel:%2B30-210-7724159>
>                           <tel:%2B30-210-7724159>
>
>
>
>
>
>
>
>
>           _____________________________________________________
>                           Advcomparch mailing list
>                           Advcomparch at lists.cslab.ece.______ntua.gr
>         <http://ntua.gr> <http://ntua.gr>
>                           <mailto:Advcomparch at lists.
>         <mailto:Advcomparch at lists.>__cs__lab.ece.ntua.gr
>         <http://cslab.ece.ntua.gr>
>                  <mailto:Advcomparch at lists.__cslab.ece.ntua.gr
>         <mailto:Advcomparch at lists.cslab.ece.ntua.gr>>>
>         http://lists.cslab.ece.ntua.______gr/mailman/listinfo/______advcomparch
>
>
>         <http://lists.cslab.ece.ntua.____gr/mailman/listinfo/____advcomparch
>
>         <http://lists.cslab.ece.ntua.__gr/mailman/listinfo/__advcomparch
>         <http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch>>>
>
>
>
>                       --
>                       Dr. Nikos Anastopoulos
>
>                       Research Associate
>                       National Technical University of Athens (NTUA)
>                       School of Electrical and Computer Engineering
>                       Computing Systems Laboratory
>
>                       e-mail: anastop at cslab.ece.ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>
>                  <mailto:anastop at cslab.ece.
>         <mailto:anastop at cslab.ece.>__nt__ua.gr <http://ntua.gr>
>                  <mailto:anastop at cslab.ece.__ntua.gr
>         <mailto:anastop at cslab.ece.ntua.gr>>>
>                       Tel: +30-210-7724159 <tel:%2B30-210-7724159>
>         <tel:%2B30-210-7724159>
>                  <tel:%2B30-210-7724159>
>
>
>
>
>                  ___________________________________________________
>                  Advcomparch mailing list
>                  Advcomparch at lists.cslab.ece.____ntua.gr <http://ntua.gr>
>                  <mailto:Advcomparch at lists.__cslab.ece.ntua.gr
>         <mailto:Advcomparch at lists.cslab.ece.ntua.gr>>
>         http://lists.cslab.ece.ntua.____gr/mailman/listinfo/____advcomparch
>
>         <http://lists.cslab.ece.ntua.__gr/mailman/listinfo/__advcomparch
>         <http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch>>
>
>
>
>
>
>
>         _________________________________________________
>         Advcomparch mailing list
>         Advcomparch at lists.cslab.ece.__ntua.gr
>         <mailto:Advcomparch at lists.cslab.ece.ntua.gr>
>         http://lists.cslab.ece.ntua.__gr/mailman/listinfo/__advcomparch
>         <http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch>
>
>
>     --
>     Dr. Nikos Anastopoulos
>
>     Research Associate
>     National Technical University of Athens (NTUA)
>     School of Electrical and Computer Engineering
>     Computing Systems Laboratory
>
>     e-mail: anastop at cslab.ece.ntua.gr <mailto:anastop at cslab.ece.ntua.gr>
>     Tel: +30-210-7724159 <tel:%2B30-210-7724159>
>
>
>
>
> _______________________________________________
> Advcomparch mailing list
> Advcomparch at lists.cslab.ece.ntua.gr
> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
>




More information about the Advcomparch mailing list