Psych hat geschrieben:Frage 1: Warum ist das so?
Was am Kernel geändert wurde um das Verhalten zu verändern? Keine Ahnung!
Psych hat geschrieben:Frage 2: Ist das gut oder schlecht
![Wink :wink:](./images/smilies/icon_wink.gif)
?
So lange die Geschwindigkeit darunter nicht leidet ist das gut. Dafür gibt es zwei konkurrierende Gründe:
1. Das klassische HT-Problem:
Die "virtuellen Kerne" sind nur eine Repräsentation dafür dass einer Kern-Pipeline zwei Threads zugeordnet werden können statt einem. Im Idealfall bedeutet das, dass doppelt so viele Instruktionen verarbeitet werden können. Im schlechtesten Fall kommt es aber genau durch die Doppelnutzung der Pipeline ständig zu Kollisionen und dann muss die ganze Pipeline geleert und neu gefüllt werden. Dann kostet HT sogar effektive Rechenleistung. In der Realität tritt eine Mischung beider Effekte auf die in der Summe für gewöhnlich in einem Geschwindigkeitszuwachs von 30% (+-20%) resultieren.
So lange ein Kern die Arbeit die er bekommt schafft ohne auf HT zurückzugreifen ist es daher von Vorteil HT nicht zu nutzen da man dann die zeitraubenden Kollisionen vermeiden kann.
2. Intels Turbo Boost:
Mit der Nehalem-Architektur hat Intel eine neue Technologie eingeführt (AMD hat sie mittlerweile kopiert) die es unter bestimmten Voraussetzungen erlaubt einzelne Kerne gezielt zu übertakten während andere abgeschaltet werden. Als Faustregel gilt dabei: Je mehr Kerne wegen mangelnder Beschäftigung abgeschaltet werden, desto höher können die verbleibenden übertaktet werden.
Die Implementierung einer Optimierung seitens des Kernels wäre für 1. und 2. jeweils gegensätzlich, denn 1. würde eine Maximierung der verwendeten Kerne (ohne Nutzung von HT) erfordern während 2. eine Minimierung der Kerne (Notfalls unter Zuhilfenahme von HT) voraussetzt.