[Advcomparch] Εκτέλεση σε πραγματικό σύστημα και πλήθος thread

Lambros Flokas lamflokas at gmail.com
Sun Jun 30 18:45:25 EEST 2013


Αυτό που παρατηρώ τώρα (έχοντας κάνει κάμποσα μπρος πίσω λόγω λαθών στην
lock) είναι ότι ακόμα και για 16 πυρήνες και grain size 1 με πλήθος
επαναλήψεων (10^8) ώστε το ένα thread να κάνει κάπου στα 6 δευτερόλεπτα ο
χρόνος εκτέλεσης φτάνει σε τετραπύρηνο vm την 1 ώρα.Από ότι βλέπω αν πάμε
στο grain size 100 ακόμα και να πάει 10 φορές ο χρόνος πρακτικά δεν
πρόκειται να τελειώσω σε μια εβδομάδα ενώ αν πάει ο χρόνος επί 100 πρακτικά
δεν θα τελειώσουμε ούτε σε 3 εβδομάδες.
Από την μια μπορώ να πάρω 10^6 επαναλήψεις αλλά οι μισές μετρήσεις θα βγούν
κάτω από 10 δευτερόλεπτα
ή για τα μεγαλύτερα grain να μειώνω τις επαναλήψεις.
Εκτός και αν δεν έχω εκτιμήσει σωστά τον ρόλο του grain (από ότι κατάλαβα
από τον κώδικα απλά μεγαλώνει το critical section άρα έχουμε περισσότερες
πράξεις αλλά και περισσότερες προσβάσεις στο κλειδί από τα άλλα νήματα)
Επίσης από ότι βλέπω οι επαναλήψεις που βάζουμε είναι για κάθε νήμα χωριστά
(το συμπέρανα και από τα αποτελέσματα του deebug mode).Στις προσομοιώσεις
που αυξάνουμε τους πύρινες ταυτόχρονα καταλαβαίνω ότι ζητάμε από δεκαπλάσιο
π.χ hardware να εκτελέσει δεκαπλάσια εργασία και θέλουμε να δούμε πόσο
χρόνο θα κάνουμε.Στο πραγματικό σύστημα όμως δεν καταλαβαίνω πρακτικά τι
ψάχνουμε όταν πηγαίνουμε πάνω από τους επεξεργαστές του συστήματος.
Εδώ είναι και τα μέχρι τώρα αποτελέσματα μου για 10^8 επαναλήψεις με tas σε
1 2 4 8 16 πυρήνες και grain 1
Execution time:5.242893 seconds
Execution time:51.152378 seconds
Execution time:207.640789 seconds
Execution time:924.958131 seconds
Execution time:3806.550578 seconds
Μπορεί να μου δώσει κανείς καμιά ιδέα/συμβουλή:
Ευχαριστώ εκ των προτέρων



2013/6/30 Nikos Anastopoulos <anastop at cslab.ece.ntua.gr>

> Καλησπέρα,
>
>
> On 06/29/2013 01:03 PM, Lambros Flokas wrote:
>
>> Στην εκφώνηση λέτε να χρησιμοποιήσουμε τους ίδιους αριθμούς νημάτων με
>> τις προσομοιώσεις.Παρατηρώ όμως ότι αν δοκιμάσω για περισσότερα νήματα
>> από ότι πυρήνες στο vm μου βγάζει το ακόλουθο μήνυμα
>> Error in pthread_setaffinity_np.
>> Αυτό μου φαίνεται πολύ λογικό αφού η αντιστοίχιση νημάτων και πυρήνων
>>   γίνεται όπως λέει και η εκφώνηση 1 προς 1 .
>>
> Ναι, είναι λογικό να συμβαίνει αυτό όταν ο αριθμός των threads (Ν) είναι
> μεγαλύτερος από τον αριθμό των πυρήνων (C), αφού σε αυτήν την περίπτωση η
> pthread_setaffinity_np θα προσπαθήσει να κάνει bind π.χ. το thread i > C
> στην cpu i, που ειναι ανύπαρκτη. Συνεπώς θα επιστραφεί σφάλμα.
>
> Για να το αποφύγετε αυτό, προτείνω να κάνετε κάτι από τα εξής:
> α) Να βάλετε την pthread_setaffinity σε σχόλια. Με αυτόν τον τρόπο δεν
> ορίζετε εσείς το affinity, αλλά αφήνετε το λειτουργικό να κάνει αυτό το
> scheduling των threads όπως νομίζει.
>
> β) Να κάνετε bind τα threads στις cpus με κυκλικό τρόπο. Δηλαδή, το thread
> i στην cpu i mod C (ουσιαστικά αλλάζετε την κληση CPU_SET(ta->my_id, &mask)
> σε CPU_SET(ta->my_id % C, &mask) -- φυσικά χρειάζεται να δινετε στο
> προγραμμα σαν επιπλέον παραμετρο τον αριθμό C των cpus).
>
> Λογικά και οι 2 αυτοι τροποι θα πρέπει να δίνουν αντιστοιχα αποτελέσματα.
>
> Ν.
>
>
>
>  Απλά ρωτάω για επιβεβαίωση κυρίως, αν θα τρέξουμε τις προσομοιώσεις
>> μέχρι το πλήθος πυρήνων του vm ή αν κάνω εγώ κάτι λάθος.
>> Σας ευχαριστώ εκ των προτέρων
>> Λάμπρος Φλόκας
>>
>>
>> ______________________________**_________________
>> Advcomparch mailing list
>> Advcomparch at lists.cslab.ece.**ntua.gr<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
> Tel: +30-210-7724159
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cslab.ece.ntua.gr/pipermail/advcomparch/attachments/20130630/77e12f6c/attachment.htm>


More information about the Advcomparch mailing list