Hallo zusammen! Ich wollte mal fragen, ob ich es richtig verstehe, dass in meinem Fall hyperthreading stört...
Und zwar benutze ich eine Simulationssoftware, die bis zu 4 Threads gleichzeitig verwenden kann.
Meine CPU ist ein i7 mit 4 Kernen und 8 Threads durch hyperthreading.
Wenn die Simulation läuft, ist meine CPU zu 50% durch diese ausgelastet.
Wenn ich hyperthreading jetzt ausschalte, wird dann damit die CPU zu 100% verwendet, weil die 4 Threads exakt auf die 4 Kerne passen, oder habe ich da etwas übersehen? Das sollte ja die Rechenzeit etwa halbieren.
Wenn ich hyperthreading jetzt ausschalte, wird dann damit die CPU zu 100% verwendet, weil die 4 Threads exakt auf die 4 Kerne passen
Ja, wird dann so aussehen.
Das sollte ja die Rechenzeit etwa halbieren.
Nein. Du gehst von 4C/8T (4 cores / 8 threads) und 4 threads im Programm auf 4C/4T und 4 threads im Programm. Es wird prinzipiell nicht schneller, du belegst jetzt halt 4 von 4 threads und nicht mehr 4 von 8.
Hyperthreading macht nicht aus 4 Kernen plötzlich 8. Es erlaubt lediglich mehr oder weniger 2 Aufgaben gleichzeitig auf einem Kern laufen zu lassen was im Bestfall ~20% extra Leistung für einen recht geringen Hardware Aufwand bringt. Also auch wenn HT aktiviert ist, sollte ein Programm mit 4 Threads die CPU mehr oder weniger vollständig auslasten können.
Es gibt allerdings einige Programme, die immer noch nicht gut mit HT klar kommen, also zb zwei Hauptaufgaben über HT auf dem selben Kern laufen lassen und so letztlich langsamer laufen als ohne HT. Sollte aber bei moderner Software wirklich selten sein, HT gibt es schließlich seit über 20 Jahren.
Als erstes würde ich hinterfragen, wie diese Auslastung bestimmt wird, auf die du da schaust. Das hängt ziemlich sicher von der jeweiligen Monitoring Anwendung ab.
Simulieren einen Fall einfach Mal mit mal ohne HT.
Beachte jedoch, in der Praxis sind leistungsabfälle in meinen Augen wahrscheinlicher, da ja auch novh andere Prozesse auf dem Gerät laufen müssen die dann mit der Anwendung stärker konkurrieren
Du meinst, deine CPU verwendet nicht die hälfte der Threads von allen kernen, sondern alle Threads von der hälfte der Kerne? (im rendern mit alten CAD-Systemen leider auch noch verbreitet)
Solltest du unter Windoof unterwegs sein, kannst du Testweise das auch einfach "erzwingen", indem du im Task-Manager unter Details - rechtsklick auf Dienst - Zugehörigkeit festlegen, und dann nur die geraden angewählt lässt. Dann hast du weiterhin HT Threads für alles andere offen.
Du hast es so formuliert, wie ich es nicht konnte! So firm bin ich was diese Themen betrifft dann doch nicht.
Habe das mal ausprobiert und die 4 Dienste der Reihe nach CPU 0,2,4 und 6 zugeordnet, allerdings hat sich da nichts geändert, immer 12,5% Auslastung.
Wenn ich zwei Dienste auf die gleiche CPU lege, geht die Auslastung pro Dienst auf 6,2% runter, das ergibt dann auch Sinn.
Mein BIOS ist passwortgeschützt und die IS will nicht, dass ich daran rumspiele, also bleibt es halt so, wie es ist.
Trotzdem danke für den Input und ich habe etwas gelernt!
Das klingt dann doch fast so, als ob deine Software schon alles richtig macht und jeden Kern, wenngleich nicht alle Threads belegt. Dann mag der Task Manager zwar nur 50% anzeigen, aber defacto ist sind alle deine Kerne bereits ausgelastet/beschäftigt.
Zusätzlich zu dem Gesagten bedenke auch, dass Deine Software nicht alleine läuft. Du hast auch noch verschiedene Aufgaben vom Betriebssystem, die parallel zu der Simulation laufen.