Warum die performance schlecht werden, nach der Aktivierung hyperthread?
Ich port Linux kernel 2.6.32, um Intel(R) Xeon(R) CPU E31275 @ 3.40 GHz. Wenn ich die hyperthread im BIOS kann ich sehen 8 CPU-Kerne (CPU0 ~ CPU7). Die meisten interrupts auftreten, die die CPU 4, und die CPU-Auslastung dieses Kerns ist viel größer als bei anderen (fast doppelt so hoch als die anderen). Ich verstehe es nicht, sehr gut, weil ich denke, ich habe nicht irgendwelche IRQ-binding-Operationen.
Wenn ich hyperthread deaktivieren im BIOS, dann ist alles OK. Die IRQs haben ausgeglichen wurde, und die CPU-Auslastung aller Kerne (CPU0 ~ CPU3) sind fast ausgeglichen, auch.
Kann sich das jemand erklären? Ist es das BIOS bezogen? Sollte ich einige spezielle Einstellungen im kernel?
InformationsquelleAutor flypen | 2012-05-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Programme bekommen einen negativen Effekt von HT (Hyper Threading), das erklären zu können, müssen Sie verstehen, was HT ist.
Als Sie sagte, Sie sah, 7 (0-7 ist, obwohl 8) cpu-Kerne, das ist nicht wahr, u haben 4 Kerne in Ihrer CPU, die 8 Kerne sind virtuelle Kerne, also ein Kern 2 threads (und verhält sich wie er ist, 2 Kerne).
In der Regel HT hilft für die Ausführung von Programmen schneller aufgrund der Tatsache, das CPU/OS in der Lage ist zu laufen (was auch immer diese Programme tun) zu 8 Programme gleichzeitig, ohne HT kann nur 4 zur gleichen Zeit.
Sie dont haben irgendwelche Einstellungen, da Sie nicht ändern können Sie das Aussehen, wenn Sie die Entwickler des Programms sollte man überprüfen Sie den code und optimieren Sie für die HT, wenn Sie wollen, oder Sie können einfach deaktivieren, HT.
Anderen Informationen, die aufgrund irgendwelcher Mist Völker sprechen: HT ist die Erhöhung der Leistung der CPU
das ist NICHT wahr! auch wenn u finden Sie 8 Kerne mit sagen wir 4GHz (GHz sagt nichts, gemessen in flops), du hast die gleiche Leistung wie beim u-turn HT und hat 4 Kerne mit 4GHz.
Wenn du HT auf die 2 virtuellen Kerne teilen sich 1 physikalischen Kern von ur CPU.
Hier einige weitere Informationen zu HT:
http://www.makeuseof.com/tag/hyperthreading-technology-explained/
Konnte ich nicht finden, meine alten link zu einem sehr schönen Ort, wo gibt es code-Schnipsel, der zeigt, schlechten code für HT und guten code (in der Bedeutung schlecht von wird langsamer als ohne HT und Umgekehrt).
TL;DR: nicht jedes Programm benefetis von HT aufgrund seiner Entwicklung.
Vielen Dank für Ihre Informationen. Ich denke, ich muss die schlechten code für die HT. Aber für den Linux-kernel habe ich nicht viel geändert, also ich weiß nicht, warum die Planung ist seltsam.
es ist nicht der Kernel-code nwho haben Sie Blick auf, es ist der code der Anwendung. das sheduling nicht seltsam, es ist nur ein Stück Technik. wenn dies beantwortet die ur Frage, akzeptieren diese Frage (sonst andere ppls Antworten, vielleicht), wenn Sie mehr wissen, Fragen Sie einfach. Grüße
Wenn Sie sagen, "macht" meinst du Energie/Zeit? Wenn mit hyperthreading gibt Ihnen eine leicht bessere Auslastung der execution engine, dann haben Sie etwas höhere Verlustleistung. Dass gesagt wird, die statische Kraft ist wesentlich (mindestens 1/3) und es gibt immer noch eine Menge Wechsel geht bei pipeline-Blasen, so zum größten Teil, die Menge der nützlichen Arbeit, die getan wird schneller zunehmen als die Verlustleistung.
InformationsquelleAutor K1773R