<div dir="ltr">Και εγώ κάτι τέτοιο περίμενα για τον έλεγχο των lock.Πρακτικά δεδομένου ότι δεν έχω deadlock το μόνο που μου μένει είναι να ελέγξω είναι αν το κρίσιμο τμήμα της κάθε συνάρτησης που φτιάχνω εκτελείται ατομικά έτσι δεν είναι;Τυπικά νομίζω ότι το κάνω αυτό αλλά επειδή πρώτη φορά αντιμετωπίζω κάτι τέτοιο δεν είμαι πολύ σίγουρος.Βέβαια δεν δοκίμασα αυτό που λέτε με την εκτέλεση γιατί δεν είχα διαθέσιμο κάποιο πρόγραμμα.Βλέπω όμως στο locks scalability ότι υπάρχει το compile time directive debug.Μπορεί να μας βοηθήσει αυτό για να βρούμε τα πιθανά λάθη ;<div style>
Θα ήθελα να ρωτήσω και κάτι ακόμα για τα προγράμματα που θα εκτελέσουμε στο vm</div><div style>Πρώτον δεν καταλαβαίνω στην εντολή που προτείνεται ποιο είναι το πρόγραμμα που μεταγλωττίζουμε γιατί βλέπω μόνο ένα lock.tas και όχι το lockscalability.c και μου φαίνεται περίεργο.</div>
<div style>Δεύτερον από ότι καταλαβαίνω το εκτελέσιμο που θα βγει θα το εκτελέσουμε από το terminal χωρίς τον sniper έτσι δεν είναι;</div><div style>Τρίτον το ίδιο το εκτελέσιμο θα μας δώσει το χρόνο στην ROI από μόνου του στο terminal και εμείς απλά θα το αντιγράφουμε για τα στατιστικά μας ή πρέπει να κάνουμε και κάτι άλλο;</div>
<div style>Ευχαριστώ και πάλι για την βοήθεια. </div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/6/26 Nikos Anastopoulos <span dir="ltr">&lt;<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.ntua.gr</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Καλησπέρα,<div class="im"><br>
<br>
On 06/25/2013 06:26 PM, Lambros Flokas wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Αυτό που βλέπω όμως στο TAS είναι αρκετά διαφορετικό.Όταν φτάνουμε στους<br>
32 πυρήνες ο χρόνος προσομοίωσης γίνεται πολύ μεγαλύτερος,φτάνει μέχρι<br>
και τα 2600 δευτερόλεπτα .Θεωρητικά καταλαβαίνω ότι αναμένουμε μια<br>
τέτοια τάση απλά η τάξη μεγέθους με προβληματίζει μήπως δεν έχω γράψει<br>
σωστά τις συναρτήσεις.<br>
</blockquote></div>
Όπως εξήγησα και στο προηγούμενο mail, αφενός ο χρόνος αυτός δεν είναι &quot;παράλογος&quot;, αφετέρου δεν είναι αναγκαστικό ότι ο χρόνος προσομοίωσης θα αυξάνεται γραμμικά με τον αριθμό των threads, αλλά ενίοτε χειρότερα από αυτό.<div class="im">
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Καταλαβαίνω ότι αν είχα κάνει κάποιο λάθος τότε είτε θα τέλειωνε πολύ<br>
γρήγορα γιατί θα έπαιρναν πάνω από ένας το κλειδί είτε δεν θα τέλειωνε<br>
ποτέ γιατί κανείς δεν παίρνει το κλειδί ή κανείς δεν το απελευθερώνει<br>
απλά δεν περίμενα τόσο μεγάλη κλιμάκωση και για αυτό αναρωτιέμαι αν έχω<br>
κάνει λάθος .<br>
</blockquote></div>
Αν η εκτέλεσή σου δεν τελείωνε ποτέ, και δεν έφταιγε τιποτε άλλο πέρα από την υλοποίηση των locks, τότε σιγουρα υπάρχει λάθος στην υλοποίηση που οδηγεί σε deadlock, δηλαδη γενικό μπλοκάρισμα της εκτέλεσης.<br>
<br>
Αν η υλοποίηση ήταν λάθος χωρις όμως να οδηγεί σε deadlock, τότε αυτό δε σημαινει ότι η εκτέλεση θα τελείωνε πολύ γρήγορα, για την αιτία που αναφέρεις. Σε μια λάθος υλοποίηση θα μπορούσε καλλιστα ο συνολικός αριθμός των διαφορετικών λειτουργιών πάνω στη lock μεταβλητή να ειναι περιπου ιδιος με τον αντιστοιχο αριθμό μιας σωστής υλοποίησης, πράγμα που εμμεσως θα σήμαινε και παραπλήσιο χρονο εκτέλεσης.<br>

<br>
Ο έλεγχος ορθότητας μιας υλοποίησης locks δεν ειναι απλή υπόθεση. Η τυπικη διαδικασία είναι να ελέγχετε βήμα-προς-βήμα τις επιμερους στοιχειωδεις λειτουργίες που απαρτιζουν μια υλοποίηση lock ή unlock, ώστε να εντοπίσετε περιπτώσεις και σενάρια παράλληλης εκτέλεσης που οδηγούν σε ανεπιθύμητες συμπεριφορές, όπως deadlock ή ταυτόχρονη είσοδο στην κρισιμη περιοχη απο 2 ή περισσότερα νήματα.<br>

Ένας άλλος τρόπος, που ναι μεν δεν εγγυάται πλήρως την ορθότητα, απλά αποτελεί μια *ένδειξη* αυτής, είναι ο εμπειρικός. Π.χ., θεωρείτε ότι στην κρισιμη περιοχή γινεται η αύξηση μιας μεταβλητής κοινής για ολα τα threads (x++). Αν το αποτέλεσμα που παιρνετε τελικα για το x δεν ειναι αυτο που αναμένετε θεωρητικά, τότε σίγουρα υπαρχει λάθος στην υλοποιηση των locks. Διαφορετικά, τότε *ίσως* η υλοποίησή σας είναι σωστή. Γενικά, σε τετοιες περιπτωσεις καλο ειναι να χρησιμοποιειτε σενάρια εκτέλεσης που &quot;στρεσσάρουν&quot; την είσοδο στην κρισιμη περιοχή, όπως αρκετά μεγάλο αριθμό νηματων, μεγάλο αριθμό επαναλήψεων και εκτέλεση σε πραγματικό συστημα.<br>

<br>
Ν.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
<br>
2013/6/25 Nikos Anastopoulos &lt;<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.ntua.gr</a><br>
&lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;&gt;<br>
<br>
    On 06/25/2013 04:47 PM, Lambros Flokas wrote:<br>
<br>
        Ναι αυτό φαίνεται να ήταν το πρόβλημα.Αυτό που παρατηρώ είναι ότι<br>
        τουλάχιστον στο mutex που ξεκίνησα είναι πολύ γρήγορες οι<br>
        προσομοιώσεις<br>
           από  20 δευτερόλεπτα μέχρι 120.Φυσιολογικό δεν είναι αυτό;<br>
<br>
<br>
    Είναι φυσιολογικό να διαρκούν τόσο χρόνο, καθώς το πλήθος των<br>
    επαναλήψεων (1000) είναι αρκετά μικρό ώστε να ολοκληρώνεται σχετικά<br>
    γρήγορα η εκτέλεση, και από την άλλη αρκετά μεγάλο ώστε να βγαίνουν<br>
    ασφαλή συμπεράσματα από την προσομοίωση μιας επαναληπτικής<br>
    διαδικασίας. Φυσικά, καθώς μεγαλώνει ο αριθμός των threads ή το<br>
    μέγεθος της κρίσιμης περιοχής (grain size), θα μεγαλώνει και ο<br>
    χρόνος προσομοίωσης.<br>
<br>
    Ν.<br>
<br>
<br>
<br>
        2013/6/25 Nikos Anastopoulos &lt;<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.ntua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;<br></div>
        &lt;mailto:<a href="mailto:anastop@cslab.ece." target="_blank">anastop@cslab.ece.</a>__<a href="http://ntua.gr" target="_blank">nt<u></u>ua.gr</a><div class="im"><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;&gt;&gt;<br>
<br>
<br>
             On 06/25/2013 03:27 PM, Lambros Flokas wrote:<br>
<br>
                 Τώρα απλά μου εμφανίζει το usage χωρίς το not<br>
        recognised που<br>
                 είχε πριν.<br>
                 Εμπλούτισα την εντολή με directory για τα αποτελέσματα<br>
        αλλά τίποτα<br>
                 #!/bin/bash<br></div><div class="im">
                 BENCHMARKS_ROOT=&quot;$HOME/____<u></u>advcomparch/benchmarks&quot;<br>
                 GRAPHITE_ROOT=&quot;$HOME/____<u></u>advcomparch/sniper&quot;<br>
                 conf=$GRAPHITE_ROOT/config/___<u></u>_ask3.cfg<br></div><div class="im">
                 $BENCHMARKS_ROOT/run-sniper -c $conf -n 1 -d<br>
                 $BENCHMARKS_ROOT/mutex.sim<br>
                 -- $BENCHMARKS_ROOT/locks_mutex 1 1000 1<br>
<br>
<br>
             Θα πρέπει να χρησιμοποιήσεις το εκτελέσιμο run-sniper που<br>
        υπάρχει<br>
             στον κατάλογο $GRAPHITE_ROOT.<br>
             Δηλαδή αλλάζεις την τελευταία εντολή παραπάνω σε:<br>
             $GRAPHITE_ROOT/run-sniper -c $conf -n 1 -d<br>
        $BENCHMARKS_ROOT/mutex.sim<br>
<br>
               -- $BENCHMARKS_ROOT/locks_mutex 1 1000 1<br>
<br>
             Γενικά, εφόσον δεν χρησιμοποιείτε κάποιο από τα έτοιμα<br>
        benchmarks<br>
             που έχει ο sniper, δεν υπάρχει λόγος χρήσης του directory<br>
             $BENCHMARKS_ROOT, τόσο για την αποθήκευση των εκτελέσιμων<br>
        όσο και<br>
             του simulation output. Θα πρότεινα επομένως να χρησιμοποιήσετε<br>
             κάποιο δικό σας, ξεχωριστό directory.<br>
<br>
             Ν.<br>
<br>
<br>
<br>
<br>
<br>
                 2013/6/25 Nikos Anastopoulos &lt;<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.ntua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;<br>
                 &lt;mailto:<a href="mailto:anastop@cslab.ece." target="_blank">anastop@cslab.ece.</a>__<a href="http://ntua.gr" target="_blank">nt<u></u>ua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;&gt;<br></div>
                 &lt;mailto:<a href="mailto:anastop@cslab.ece" target="_blank">anastop@cslab.ece</a>.<br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece" target="_blank">anastop@cslab.ece</a>.&gt;__<a href="http://nt__ua.gr" target="_blank">n<u></u>t__ua.gr</a> &lt;<a href="http://ntua.gr" target="_blank">http://ntua.gr</a>&gt;<div class="im">
<br>
<br>
                 &lt;mailto:<a href="mailto:anastop@cslab.ece." target="_blank">anastop@cslab.ece.</a>__<a href="http://ntua.gr" target="_blank">nt<u></u>ua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;&gt;&gt;&gt;<br>
<br>
<br>
                      Καλησπέρα,<br>
<br>
                      Υποθέτω ότι το πρόβλημά σου οφείλεται στο ότι μετά<br>
        το &#39;--&#39; δεν<br>
                      αφήνεις κενό.<br>
                      Δηλαδή: $BENCHMARKS_ROOT/run-sniper -c $conf -n 1 --<br>
                      $BENCHMARKS_ROOT/locks_mutex  1 1000 1<br>
<br>
                      Ν.<br>
<br>
<br>
                      On 06/25/2013 02:52 PM, Lambros Flokas wrote:<br>
<br>
                          Έχω το ακόλουθο script<br>
                          #!/bin/bash<br>
<br></div>
          BENCHMARKS_ROOT=&quot;$HOME/______<u></u>advcomparch/benchmarks&quot;<br>
                          GRAPHITE_ROOT=&quot;$HOME/______<u></u>advcomparch/sniper&quot;<br>
                          conf=$GRAPHITE_ROOT/config/___<u></u>___ask3.cfg<div class="im"><br>
<br>
<br>
                          $BENCHMARKS_ROOT/run-sniper -c $conf -n 1<br>
                          --$BENCHMARKS_ROOT/locks_mutex<br>
                          1 1000 1<br>
                          και το locks_mutex όντως βρίσκεται στο<br>
        benchmarks root<br>
                   αλλά όλο μου<br>
                          πετά το από κάτω μήνυμα<br>
                          option<br></div>
                 --/home/user/advcomparch/_____<u></u>_benchmarks/locks_mutex not<div class="im"><br>
<br>
<br>
                          recognized<br>
                          και μετά μου λέει οδηγίες για την σύνταξη της<br>
        εντολής<br>
                          Έχω διαβάσει την προηγούμενη απορία επί του<br>
        θέματος στη<br>
                 λίστα<br>
                          αλλά δε<br>
                          βοήθησε και πιστεύω ότι ακολουθώ την προτροπή<br>
        της σελίδας 4<br>
                          Ευχαριστώ εκ των προτέρων<br>
<br>
<br>
<br></div>
          ______________________________<u></u>_______________________<br>
                          Advcomparch mailing list<br>
                          Advcomparch@lists.cslab.ece.__<u></u>____<a href="http://ntua.gr" target="_blank">ntua.gr</a><br>
        &lt;<a href="http://ntua.gr" target="_blank">http://ntua.gr</a>&gt; &lt;<a href="http://ntua.gr" target="_blank">http://ntua.gr</a>&gt;<br>
                          &lt;mailto:<a href="mailto:Advcomparch@lists" target="_blank">Advcomparch@lists</a>.<br>
        &lt;mailto:<a href="mailto:Advcomparch@lists" target="_blank">Advcomparch@lists</a>.&gt;__<a href="http://cs__lab.ece.ntua.gr" target="_blank">c<u></u>s__lab.ece.ntua.gr</a><br>
        &lt;<a href="http://cslab.ece.ntua.gr" target="_blank">http://cslab.ece.ntua.gr</a>&gt;<br>
                 &lt;mailto:<a href="mailto:Advcomparch@lists." target="_blank">Advcomparch@lists.</a>__<a href="http://cslab.ece.ntua.gr" target="_blank">cs<u></u>lab.ece.ntua.gr</a><br>
        &lt;mailto:<a href="mailto:Advcomparch@lists.cslab.ece.ntua.gr" target="_blank">Advcomparch@lists.<u></u>cslab.ece.ntua.gr</a>&gt;&gt;&gt;<br>
        <a href="http://lists.cslab.ece.ntua." target="_blank">http://lists.cslab.ece.ntua.</a>__<u></u>____gr/mailman/listinfo/______<u></u>advcomparch<div class="im"><br>
<br>
<br>
<br>
<br>
        &lt;<a href="http://lists.cslab.ece.ntua." target="_blank">http://lists.cslab.ece.ntua.</a>_<u></u>___gr/mailman/listinfo/____<u></u>advcomparch<br>
<br>
        &lt;<a href="http://lists.cslab.ece.ntua." target="_blank">http://lists.cslab.ece.ntua.</a>_<u></u>_gr/mailman/listinfo/__<u></u>advcomparch<br>
        &lt;<a href="http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch" target="_blank">http://lists.cslab.ece.ntua.<u></u>gr/mailman/listinfo/<u></u>advcomparch</a>&gt;&gt;&gt;<br>
<br>
<br>
<br>
                      --<br>
                      Dr. Nikos Anastopoulos<br>
<br>
                      Research Associate<br>
                      National Technical University of Athens (NTUA)<br>
                      School of Electrical and Computer Engineering<br>
                      Computing Systems Laboratory<br>
<br>
                      e-mail: <a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.ntua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;<br>
                 &lt;mailto:<a href="mailto:anastop@cslab.ece." target="_blank">anastop@cslab.ece.</a>__<a href="http://ntua.gr" target="_blank">nt<u></u>ua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;&gt;<br></div>
                 &lt;mailto:<a href="mailto:anastop@cslab.ece" target="_blank">anastop@cslab.ece</a>.<br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece" target="_blank">anastop@cslab.ece</a>.&gt;__<a href="http://nt__ua.gr" target="_blank">n<u></u>t__ua.gr</a> &lt;<a href="http://ntua.gr" target="_blank">http://ntua.gr</a>&gt;<div class="im">
<br>
<br>
                 &lt;mailto:<a href="mailto:anastop@cslab.ece." target="_blank">anastop@cslab.ece.</a>__<a href="http://ntua.gr" target="_blank">nt<u></u>ua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;&gt;&gt;<br>
                      Tel: <a href="tel:%2B30-210-7724159" value="+302107724159" target="_blank">+30-210-7724159</a> &lt;tel:%2B30-210-7724159&gt;<br>
        &lt;tel:%2B30-210-7724159&gt;<br></div>
                 &lt;tel:%2B30-210-7724159&gt;<div><div class="h5"><br>
<br>
<br>
<br>
<br>
<br>
<br>
                 ______________________________<u></u>_____________________<br>
                 Advcomparch mailing list<br>
                 Advcomparch@lists.cslab.ece.__<u></u>__<a href="http://ntua.gr" target="_blank">ntua.gr</a> &lt;<a href="http://ntua.gr" target="_blank">http://ntua.gr</a>&gt;<br>
                 &lt;mailto:<a href="mailto:Advcomparch@lists." target="_blank">Advcomparch@lists.</a>__<a href="http://cslab.ece.ntua.gr" target="_blank">cs<u></u>lab.ece.ntua.gr</a><br>
        &lt;mailto:<a href="mailto:Advcomparch@lists.cslab.ece.ntua.gr" target="_blank">Advcomparch@lists.<u></u>cslab.ece.ntua.gr</a>&gt;&gt;<br>
        <a href="http://lists.cslab.ece.ntua." target="_blank">http://lists.cslab.ece.ntua.</a>__<u></u>__gr/mailman/listinfo/____<u></u>advcomparch<br>
<br>
        &lt;<a href="http://lists.cslab.ece.ntua." target="_blank">http://lists.cslab.ece.ntua.</a>_<u></u>_gr/mailman/listinfo/__<u></u>advcomparch<br>
        &lt;<a href="http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch" target="_blank">http://lists.cslab.ece.ntua.<u></u>gr/mailman/listinfo/<u></u>advcomparch</a>&gt;&gt;<br>
<br>
<br>
<br>
             --<br>
             Dr. Nikos Anastopoulos<br>
<br>
             Research Associate<br>
             National Technical University of Athens (NTUA)<br>
             School of Electrical and Computer Engineering<br>
             Computing Systems Laboratory<br>
<br>
             e-mail: <a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.ntua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;<br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece." target="_blank">anastop@cslab.ece.</a>__<a href="http://ntua.gr" target="_blank">nt<u></u>ua.gr</a><br>
        &lt;mailto:<a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.<u></u>ntua.gr</a>&gt;&gt;<br>
             Tel: <a href="tel:%2B30-210-7724159" value="+302107724159" target="_blank">+30-210-7724159</a> &lt;tel:%2B30-210-7724159&gt;<br>
        &lt;tel:%2B30-210-7724159&gt;<br>
<br>
<br>
<br>
<br>
        ______________________________<u></u>___________________<br>
        Advcomparch mailing list<br>
        Advcomparch@lists.cslab.ece.__<a href="http://ntua.gr" target="_blank"><u></u>ntua.gr</a><br>
        &lt;mailto:<a href="mailto:Advcomparch@lists.cslab.ece.ntua.gr" target="_blank">Advcomparch@lists.<u></u>cslab.ece.ntua.gr</a>&gt;<br>
        <a href="http://lists.cslab.ece.ntua." target="_blank">http://lists.cslab.ece.ntua.</a>__<u></u>gr/mailman/listinfo/__<u></u>advcomparch<br>
        &lt;<a href="http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch" target="_blank">http://lists.cslab.ece.ntua.<u></u>gr/mailman/listinfo/<u></u>advcomparch</a>&gt;<br>
<br>
<br>
<br>
<br>
<br>
<br></div></div><div class="im">
______________________________<u></u>_________________<br>
Advcomparch mailing list<br>
<a href="mailto:Advcomparch@lists.cslab.ece.ntua.gr" target="_blank">Advcomparch@lists.cslab.ece.<u></u>ntua.gr</a><br>
<a href="http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch" target="_blank">http://lists.cslab.ece.ntua.<u></u>gr/mailman/listinfo/<u></u>advcomparch</a><br>
<br>
</div></blockquote><div class="im">
<br>
-- <br>
Dr. Nikos Anastopoulos<br>
<br>
Research Associate<br>
National Technical University of Athens (NTUA)<br>
School of Electrical and Computer Engineering<br>
Computing Systems Laboratory<br>
<br>
e-mail: <a href="mailto:anastop@cslab.ece.ntua.gr" target="_blank">anastop@cslab.ece.ntua.gr</a><br></div>
Tel: <a href="tel:%2B30-210-7724159" value="+302107724159" target="_blank">+30-210-7724159</a><br>
</blockquote></div><br></div>