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

Nikos Anastopoulos anastop at cslab.ece.ntua.gr
Sun Jun 30 01:59:58 EEST 2013


Καλησπέρα,

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
> 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


More information about the Advcomparch mailing list