<div dir="ltr">Αυτό που παρατηρώ τώρα (έχοντας κάνει κάμποσα μπρος πίσω λόγω λαθών στην lock) είναι ότι ακόμα και για 16 πυρήνες και grain size 1 με πλήθος επαναλήψεων (10^8) ώστε το ένα thread να κάνει κάπου στα 6 δευτερόλεπτα ο χρόνος εκτέλεσης φτάνει σε τετραπύρηνο vm την 1 ώρα.Από ότι βλέπω αν πάμε στο grain size 100 ακόμα και να πάει 10 φορές ο χρόνος πρακτικά δεν πρόκειται να τελειώσω σε μια εβδομάδα ενώ αν πάει ο χρόνος επί 100 πρακτικά δεν θα τελειώσουμε ούτε σε 3 εβδομάδες.<div style>
Από την μια μπορώ να πάρω 10^6 επαναλήψεις αλλά οι μισές μετρήσεις θα βγούν κάτω από 10 δευτερόλεπτα </div><div style>ή για τα μεγαλύτερα grain να μειώνω τις επαναλήψεις.</div><div style>Εκτός και αν δεν έχω εκτιμήσει σωστά τον ρόλο του grain (από ότι κατάλαβα από τον κώδικα απλά μεγαλώνει το critical section άρα έχουμε περισσότερες πράξεις αλλά και περισσότερες προσβάσεις στο κλειδί από τα άλλα νήματα)</div>
<div style>Επίσης από ότι βλέπω οι επαναλήψεις που βάζουμε είναι για κάθε νήμα χωριστά (το συμπέρανα και από τα αποτελέσματα του deebug mode).Στις προσομοιώσεις που αυξάνουμε τους πύρινες ταυτόχρονα καταλαβαίνω ότι ζητάμε από δεκαπλάσιο π.χ hardware να εκτελέσει δεκαπλάσια εργασία και θέλουμε να δούμε πόσο χρόνο θα κάνουμε.Στο πραγματικό σύστημα όμως δεν καταλαβαίνω πρακτικά τι ψάχνουμε όταν πηγαίνουμε πάνω από τους επεξεργαστές του συστήματος.</div>
<div style>Εδώ είναι και τα μέχρι τώρα αποτελέσματα μου για 10^8 επαναλήψεις με tas σε 1 2 4 8 16 πυρήνες και grain 1</div><div style><div>Execution time:5.242893 seconds</div><div>Execution time:51.152378 seconds</div><div>
Execution time:207.640789 seconds</div><div>Execution time:924.958131 seconds</div><div>Execution time:3806.550578 seconds</div><div style>Μπορεί να μου δώσει κανείς καμιά ιδέα/συμβουλή:</div><div style>Ευχαριστώ εκ των προτέρων</div>
</div><div style>     </div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/6/30 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/29/2013 01:03 PM, Lambros Flokas wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Στην εκφώνηση λέτε να χρησιμοποιήσουμε τους ίδιους αριθμούς νημάτων με<br>
τις προσομοιώσεις.Παρατηρώ όμως ότι αν δοκιμάσω για περισσότερα νήματα<br>
από ότι πυρήνες στο vm μου βγάζει το ακόλουθο μήνυμα<br>
Error in pthread_setaffinity_np.<br>
Αυτό μου φαίνεται πολύ λογικό αφού η αντιστοίχιση νημάτων και πυρήνων<br>
  γίνεται όπως λέει και η εκφώνηση 1 προς 1 .<br>
</blockquote></div>
Ναι, είναι λογικό να συμβαίνει αυτό όταν ο αριθμός των threads (Ν) είναι μεγαλύτερος από τον αριθμό των πυρήνων (C), αφού σε αυτήν την περίπτωση η pthread_setaffinity_np θα προσπαθήσει να κάνει bind π.χ. το thread i &gt; C στην cpu i, που ειναι ανύπαρκτη. Συνεπώς θα επιστραφεί σφάλμα.<br>

<br>
Για να το αποφύγετε αυτό, προτείνω να κάνετε κάτι από τα εξής:<br>
α) Να βάλετε την pthread_setaffinity σε σχόλια. Με αυτόν τον τρόπο δεν ορίζετε εσείς το affinity, αλλά αφήνετε το λειτουργικό να κάνει αυτό το scheduling των threads όπως νομίζει.<br>
<br>
β) Να κάνετε bind τα threads στις cpus με κυκλικό τρόπο. Δηλαδή, το thread i στην cpu i mod C (ουσιαστικά αλλάζετε την κληση CPU_SET(ta-&gt;my_id, &amp;mask) σε CPU_SET(ta-&gt;my_id % C, &amp;mask) -- φυσικά χρειάζεται να δινετε στο προγραμμα σαν επιπλέον παραμετρο τον αριθμό C των cpus).<br>

<br>
Λογικά και οι 2 αυτοι τροποι θα πρέπει να δίνουν αντιστοιχα αποτελέσματα.<br>
<br>
Ν.<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>
μέχρι το πλήθος πυρήνων του vm ή αν κάνω εγώ κάτι λάθος.<br>
Σας ευχαριστώ εκ των προτέρων<br>
Λάμπρος Φλόκας<br>
<br>
<br></div>
______________________________<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><span class="HOEnZb"><font color="#888888">
</font></span></blockquote><span class="HOEnZb"><font color="#888888">
<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>
Tel: <a href="tel:%2B30-210-7724159" value="+302107724159" target="_blank">+30-210-7724159</a><br>
</font></span></blockquote></div><br></div>