Hyperthreading - Einfluss auf Programm-Start?

lead341

Lt. Commander
Registriert
Apr. 2005
Beiträge
1.886
Hallo,

ich habe seit ein paar Tagen etwas sehr Sonderbares festgestellt, was ich mir auch nach umfangreicher Google-Recherche nicht erklären kann. Ich hatte die letzten Monate im Bios Hyperthreading disabled. Alles lief ohne Probleme. Ich wollte es nun testweise einmal wieder anschalten. Der Rechner fährt zwar problemlos und auch sehr schnell (wie gehabt hoch), viele Programme starten jedoch nicht, oder aber nach sehr langer Verzögerung:

- Analyse-Programme wie speccy benötigen gefühlte 10 Minuten, um das System zu scannen
- gleiches gilt für Programme wie den 3DMark06 oder den Vantage: manchmal startet das Programm erst nach über 10 Minuten, dann überhaupt nicht
- auch einige Spiele funktionieren nicht: bei Star Wars Old Republic bleibt das Launcher-Fenster schwarz
- Programme wie Spybot oder Microsoft SecurityEssentials öffnen zwar, beginnen aber nicht mit dem Scan (d.h. verharren am Anfang)

Deaktiviere ich Hyperthreading im Bios, läuft danach wieder alles völlig normal.

Der Rechner ist sauber (außer ein paar Spiele ist nichts drauf, ich gehe mit dem Rechner auch nicht weiter ins Internet). Entsprechend ist er eigentlich auch immer sehr "sauber" (getestet mit Security Essentials, spybot, Hijackthis etc.)

Woran könnte das denn liegen?

Gruß lead
 
Welches Betriebssystem?
 
Natürlich haben die K SMT.

@Topic
Hast du irgendwelche "Optimierungsprogramme" am Laufen? Wenn du den Task Manager öffnest, siehst du 8 CPU-Last Diagramme?

Warum deaktiviert man HT überhaupt? Das macht keinen Sinn. Du verzichtest auf bis zu 30% der Leistung. (ja, es gab Mal Microruckler in BF3 in Verbindung mit einer NV Karte und einer älteren Treiberversion)
 
Wird HyperThreading deaktiviert, als Windows installiert wurde? Wenn ich mich richtig erinnere gibts für HT einen eigenen Codepfad, welcher sonst nicht aktiviert wird…
 
Hi,

@Sherman123

Das macht dann Sinn, wenn ich nicht eine Anwendung mit 8 Threads habe sondern mehrere mit 1 oder 2 Threads. Meines Wissens und der Aussage von Intel Mitarbeitern der Entwicklungsabteilung gibt es bislang keine Möglichkeit für das OS, zwischen echten und HT-Kernen zu unterscheiden.

Konsequenz: Es kann passieren, dass beim Thread-Scheduling eine Aufgabe auf einem echten Kern ausgeführt wird und die andere auf dem HT-Kern des gleichen Kerns, während die anderen echten Kerne nur brach liegen. Dabei habe ich schon Leistungseinbußen, da der eine Kern ja eine Pipeline und ein Threadhandling hat (es werden zwei parallel bearbeitet aber eben nicht mit vollen Ressourcen sondern geteilt).

Korrigiere mich gerne, wenn sich da mittlerweile was geändert hat :)

VG,
Mad
 
Langer Rede kurze Antwort: JA!

SMT kann durchaus negative Auswirkungen haben!
z.B. Arma II lief lange Zeit garnicht und heute immernoch schlecht mit SMT!
 
Danke für die schnellen Antworten.
Das Betriebssystem ist Windows 7 64 bit.

Es laufen keinerlei Optimierungsprogramme (da lasse ich die Hände von), es ist auch nichts übertaktet. Und ja, im HT-Modus werden 8 Kerne angezeigt. Dazu kommt ja noch, dass auch die Leistungsdaten ja stimmen (getestet mit 3DMark Vantage CPU-Wert, wenn er denn mal läuft, Aida64, Sisoft Sandra).


Ich hatte HT eben genau aus diesen Gründen deaktiviert - wegen BF3 etc. Wie gesagt, ich nutze den Rechner einzig zum Zocken. Für meine Arbeit bzw. Internet nutze ich ein notebook.

Nein, als Windows installiert wurde, war HT an.
 
Zuletzt bearbeitet:
@Madman1209
Meine Beobachtungen zur Zeit (6-Kern-Intel).
Windows 7 benutzt erst alle vorhandenen realen Kerne. Erst wenn die ausgelastet sind werden die HT-Kerne zur Hilfe rangezogen.

ALLERDINGS leite ich das nur aus der Last-Verteilung im Taskmanager ab, ich kann natürlich auch nur vermuten dass die realen und die HT-Kerne im Taskmanager sich abwechseln.

Beispiel: Rage (hab jetzt nix besseres zur Hand, aber man sieht was ich meine im Taskmanager)

 
Zuletzt bearbeitet:
@Asinuss
Das hat nichts mit K zu tun sondern, dass der 2600k ein i7 und der 2500k ein i5 ist.
 
Das macht dann Sinn, wenn ich nicht eine Anwendung mit 8 Threads habe sondern mehrere mit 1 oder 2 Threads. Meines Wissens und der Aussage von Intel Mitarbeitern der Entwicklungsabteilung gibt es bislang keine Möglichkeit für das OS, zwischen echten und HT-Kernen zu unterscheiden.
Es ist für einen Prozess/Thread sehr wohl möglich seinen aktuellen Standort abzufragen, worauf man dann etwas in der Form Socket0/Core2/Hyperthread1 erhält. Dies ist z.B. beim Scheduling auf Clustern relevant, Stichwort NUMA. Inwiefern der Windows Scheduler sowas beherrscht und intelligent handled, ist eine andere Frage. ;)
Konsequenz: Es kann passieren, dass beim Thread-Scheduling eine Aufgabe auf einem echten Kern ausgeführt wird und die andere auf dem HT-Kern des gleichen Kerns, während die anderen echten Kerne nur brach liegen. Dabei habe ich schon Leistungseinbußen, da der eine Kern ja eine Pipeline und ein Threadhandling hat (es werden zwei parallel bearbeitet aber eben nicht mit vollen Ressourcen sondern geteilt).
Seit Windows 7 kennt der Scheduler Core Parking und verwendet auf HT CPUs zunächst nur jeden 2. Core. Dieses Feature wurde eigentlich für den Server 2008 R2 entwickelt, um auf Systemen mit vielen Cores einen niedrigeren Energieverbrauch zu ermöglichen und kommt nun in Form eines besseren Schedulers auch uns zugute.
 
Hi,

wunderbar, dann wäre das auch geklärt :) Intel hatte es mir vor einem Jahr auf der Developers Conference noch anders erklärt. Schön dass der Fortschritt auch da Einzug gehalten hat :)

VG,
Mad
 
HT läuft fast ausschließlich auf Hardware-Ebene ab. Win7 unterscheidet allerdings zwischen logischem und virtuellen Kern und verteilt (angeblich nach einem ausgeklügeltem Algorythmus) die anfallende Last auf die Kerne. Bei Linux funktioniert es ohne "ausgefeilten" Algo auch sehr fein.;)

wikipedia schrieb:
Hinter Hyper-Threading oder SMT allgemein steht die Idee, die Rechenwerke eines Prozessors besser auszulasten, indem man die Lücken in der Pipeline mit Befehlen eines anderen Threads möglichst gut auffüllt. Solche Lücken können zum Beispiel entstehen, wenn ein Prozess oder Thread durch einen Cache-Miss auf den Hauptspeicher warten muss. Hier kann dann mittels Hyper-Threading ein zweiter Prozess oder Thread „eingeschoben“ werden und somit parallel laufen.

@twilight
Danke für den Link. Da steht auch drinnen, warum es zum Teil zu Mikrorucklern kommen kann.:daumen:

@TE
In der Zeit, in der du auf die Programmausführung wartest, welche CPU Last hast du anliegen?
 
Zuletzt bearbeitet:
Programme die auf nicht mehr als 4 Kerne optimiert sind laufen mit HT entweder gleich schnell oder langsamer. (sofern keine anderen Anwendungen den Prozessor beanspruchen)

Allerdings wirst du den Unterschied nie merken, das ist nur messbar.

Erkennt Windows überhaupt alle Kerne?
 
Windows erkennt alle 8 Kerne problemlos. Man könnte das Problem noch etwas weiter konkretisieren:

- die Programmausführung an sich, sofern ich ins Programm reinkomme, läuft einwandfrei. Ich habe mehrere Spiele getestet - performance, Ladezeiten - alles top

- es hakt an der Programminitiierung: es macht auch mir irgendwie den Eindruck, als würde er bei der Initiierung irgendwas "suchen" und dafür eine ganze Weile benötigen. Siehe bspw. die lange Zeitdauer der Scan-Programme (speccy), der Systemscan vom 3Mark oder aber auch die Launcher von Spielen wie SWTOR
 
Wenn nach dem Start alles ordnungsgemäß läuft, scheint die HW ja in Ordnung zu sein. Ich vermute, dass die Software iwie muffig ist.

- Windows aktuell?
- Treiber (Chipsatz) aktuell?
- BIOS aktuell? Evtl. findet sich auch diesbezüglich etwas im Changelog?
 
- Windows ist aktuell (Auto-update)

- Bios ist nicht up to date (Version 18.50, hatte ich glaube ich im August oder September gemacht). Allerdings war das Bios vorher noch weit weniger aktuell (13.50) und es hat alles problemlos funktioniert. Trotzdem ein sehr guter Rat - werde ich machen.

- Chipsatz: ich hatte kürzlich einen Chipset-driver installiert. Ob es eventuell der falsche war? Ich muß gestehen, diese Chipset-Driver verwirren mich immer, weil ich nicht weiß, welcher denn nun der richtige ist und was man genau installieren muss. D.h. welcher wäre denn der aktuelle und richtige?
 
Zurück
Oben