Η σύγχρονη τάση στη σχεδίαση επεξεργαστών τείνει προς τον συνδυασμό διάϕορων παραδειγμάτων παραλληλοποίησης επιπέδου νήματος. ΄Ενας δημοϕιλής συνδυασμός είναι η Πολυεπεξεργασία Επιπέδου Chip μαζί με Ταυτόχρονο Πολυνηματισμό (SMT + CMP), που υλοποιείται σε επεξεργαστές όπως ο IBM POWER7. Σε τέτοιες περίπλοκες πολυνηματικές αρχιτεκτονικές ο διαμοιρασμός πόρων μεταξύ των νημάτων έχει μεγάλη επίδραση στην τελική απόδοση. Υπάρχουν διάϕοροι τρόποι επέμβασης στο διαμοιρασμό πόρων, συμπεριλαμβανομένης της τοποθέτησης νημάτων, που αϕορά την αντιστοίχιση νημάτων λογισμικού σε θέσεις νημάτων υλικού, και της προτεραιότητας νημάτων, χρησιμοποιώντας ένα μηχανισμό που υπάρχει στην οικογένεια επεξεργαστών POWER της ΙΒΜ ο οποίος επιτρέπει στον χρήστη να αλλάζει τον ρυθμό προσκόμισης εντολών των ενεργών νημάτων.
Χαρακτηρίζουμε τους μηχανισμούς τοποθέτησης νημάτων και προτεραιότητας νημάτων στον επεξεργαστή IBM POWER7. Κάτω από διάϕορες συνθέσεις τοποθέτησης και προτεραιότητας νημάτων αναλύουμε με λεπτομέρεια τον τρόπο διαμοιρασμού του υλικού ανάμεσα στα ενεργά νήματα. Δείχνουμε σε ποιό βαθμό ένας σχεδιαστής λογισμικού μπορεί να χαρακτηρίσει μια εϕαρμογή στον συγκεκριμένο επεξεργαστή και βασισμένος σε αυτόν τον χαρακτηρισμό, να διαλέξει την ιδανική τοποθέτηση και προτεραιότητα νημάτων, ώστε να βελτιώσει έναν επιθυμητό στόχο. Τα αποτελέσματά μας δείχνουν ότι μπορεί να επιτευχθεί μέχρι 54% μείωση στο χρόνο εκτέλεσης (11.2% κατά μέσο όρο) κατα την εκτέλεση ζευγών παράλληλων εϕαρμογών κάτω από την κατάλληλη τοποθέτηση νημάτων. Επιπροσθέτως, η μελέτη μας έδειξε οτι μέχρι και 12.7% επιπλέον βελτίωση μπορεί να επιτευχθεί με τη χρήση προτεραιοτήτων νημάτων.
The current trend in processor design is towards the combination of several thread level parallelism paradigms on the same chip. A popular combination is Chip Multiprocessing with Simultaneous Multithreading (CMP+SMT), implemented in processors such as the
IBM POWER7. In such complex multithreaded designs, resource sharing between threads has a great impact on final performance. There are different ways of interfering with resource sharing, including thread placement, which involves assigning software threads to
the available hardware contexts, and thread priorities, assuming a processor in the IBM POWER family, that features a mechanism allowing the user to alter the instruction fetch rate of active threads.
We have analyzed thread placement and thread priorities in the IBM POWER7 processor. Under each placement and priorities setup we analyze in detail how hardware resources are shared among running threads. We show to which extent a software designer can characterize an application on the specific processor and based on that characterization, select the best thread placement and thread priorities configuration to improve a target metric. Our results show that a 54% reduction in execution time can be obtained (11.2% on average) when running pairs of desktop parallel applications under the appropriate thread placement. On top of that, our study has shown that up to an extra 12.7% of execution time improvement can be achieved with the use of priorities on parallel applications.