Auslastung der CPU in Abhängigkeit von Hyperthreading (on/off)

joel-87

Neuling
Thread Starter
Mitglied seit
28.02.2009
Beiträge
159
Hallo Community,

bisher konnte ich im Netz leider keine Antwort finden, deswegen frage ich mal hier :)

Ich würde gerne wissen, wie sich die CPU Auslastung in Abhängigkeit von Hyperthreading verhält. Grundsätzlich ist Hyperthreading ja eine Prozessoroptimierung bzw. deren bessere Ausnutzung was der/die eigentlichen physischen Cores nicht immer schaffen.

Beispiel:
Ich habe eine 4 Core CPU mit HT, also 8 Threads maximal. Wenn ich nun HT abschalte (nun 4 Threads), und eine Anwendung habe die 4 Threads belegt, kann ich dann die CPU zu 100 % auslasten?

Bitte fragen, falls ich mich etwas unglücklich ausgedrückt habe.

Ich habe leider keine HT CPU zum Testen zur Hand ;)

MfG
joel-87
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Das kommt darauf an, ob die Anwendung dein System zu 100% auf 4 Threads auslasten kann. Nehme mal Cinebench 11.5 als Beispiel, dies lastet dir sowohl alle 4 als auch 8 Threads aus, zumindest sagt dies der Taskmanager von Win7 64 Bit. Dann kannst du auch gleich Messen, wieviel das Hyperthreading gebracht hat an Performance.
 
Zuletzt bearbeitet:
Hallo,
vielen Dank schonmal für die Antwort. Grundsätzlich kann man aber sagen, das bei Abschaltung von HT der Prozessor nicht nur 50 % ausgelastet wird, da HT keine zusätzlichen Core erstellt sondern lediglich den vorhandenen optimiert und für den Nutzer praktisch einen zusätzlichen virtuellen Core darstellt? Sehe ich das richtig so?

Das kommt darauf an, ob die Anwendung dein System zu 100% auf 4 Threads auslasten kann. Nehme mal Cinebench 11.5 als Beispiel, dies lastet dir sowohl alle 4 als auch 8 Threads aus, zumindest sagt dies der Taskmanager von Win7 64 Bit. Dann kannst du auch gleich Messen, wieviel das Hyperthreading gebracht hat an Performance.

von der UNI Bremen habe ich ein Dokument gefunden, das solche Messungen durchführt. Meistens bringt HT eine Mehrleistung.
 
Zuletzt bearbeitet:
Du kannst dies ja selbst austesten, wieviel Mehrleistung HTT in Cinebench bringt (einfaches Bespiel). HTT dient dazu die Leistung der vorhandenen physischen Kerne zu optimieren. Bei Abschalten des HTT wird der Prozessor genauso 100% ausgelastet. Hat aber keine Möglichkeit Prozesse in den zusätzlichen Threads zu stapeln. Er arbeitet nicht mehr so Effektiv.
 
Zuletzt bearbeitet:
Leider hab ich keine HT CPU.

Meine Frage ist damit beantwortet. Vielen Dank Bunghole Beavis für die schnelle Hilfe :)
 
Ich habe eine 4 Core CPU mit HT, also 8 Threads maximal. Wenn ich nun HT abschalte (nun 4 Threads), und eine Anwendung habe die 4 Threads belegt, kann ich dann die CPU zu 100 % auslasten?
Interessant ist die Frage, ob ein Programm mit 4 bzw. 8 Threads die Aufgabe schneller lösen kann. Wenn man optimalen Programmcode hat dann läuft dieser Code mit 4 Threads schneller als mit 8 Threads auf einer HT CPU! Beispiel hierfür sind die Routinen der Intel MKL, diese laufen etwas langsamer mit 8 Threads wie mit 4 Threads auf einer HT CPU mit 4 physikalischen Cores. HT dient dazu die CPU besser zu nutzen, wenn der Programmcode suboptimal ist. Gut geschriebener Code der Thread Pinning verwendet, braucht das nicht.
 
Interessant ist die Frage, ob ein Programm mit 4 bzw. 8 Threads die Aufgabe schneller lösen kann. Wenn man optimalen Programmcode hat dann läuft dieser Code mit 4 Threads schneller als mit 8 Threads auf einer HT CPU! Beispiel hierfür sind die Routinen der Intel MKL, diese laufen etwas langsamer mit 8 Threads wie mit 4 Threads auf einer HT CPU mit 4 physikalischen Cores. HT dient dazu die CPU besser zu nutzen, wenn der Programmcode suboptimal ist. Gut geschriebener Code der Thread Pinning verwendet, braucht das nicht.

Ich würde es nicht als suboptimal beschreiben. Wenn eine Software darauf programmiert wurde das HT zu nutzen, bringt dies Vorteile siehe z.B. Cinebench. Unsere Software nutzt HT auch optimal und die Leistung erhöht sich 20-25%.
 
HT bringt aber auch nur etwas, wenn der Prozessor gerade auf irgendwelche Daten wartet. Wird wie in SuperPi (schlechtes Bsp., da Sinlethreaded) einfach stur gerechnet, ohne großartige Speicher- oder I/O-Zugriffe, dürfte der Mehrleistung gegen null gehen. Solche Anwendungen sollten aber auch eher selten sein, weil irgendwas ja immer geladen wird.
 
Als ziemlicher Laie, der aber ein gewisses Interesse an diesen Dingen hat, habe ich da auch schon oft drüber nachgedacht. Vorm Kauf meines 3570k zum Beispiel. Eine Sache will mir dabei nicht in den Kopf: Bei 4 Kernen mit 8 Threads ist es doch am Ende auch so, dass an sich "nur" 4 physikalische Kerne da sind, die schließlich die ganze "Arbeit" verrichten.
Deswegen war ich ganz froh über die Antwort von jdl, weil die besser in mein (simples) Verständnis dieser Sache passt: Ist es nicht völlig logisch, dass ein Vierkerner immer dann am optimalsten arbeitet, wenn die 4 Kerne völlig und komplett mit 4 Threads beschäftigt sind? Sorry, falls das für Experten dämlich klingt, man macht sich halt so seine Gedanken, auch wenn das nötige Hintergrundwissen fehlt :d
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh