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.

0 points

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.

permalink
report
reply
0 points

Das könnte hier der Fall sein, denn jeder thread macht 12,5% der CPU Nutzung aus…

permalink
report
parent
reply
0 points

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.

permalink
report
parent
reply
0 points

Windows task Manager… bisher hat das immer Sinn ergeben, wenn ich Benchmarks laufen lasse, die alles auslasten, geht der auf 100% hoch.

permalink
report
parent
reply
0 points

So einfach und pauschal kann man das nicht sagen.

Am einfachsten wäre ein Praxis Test.

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

permalink
report
reply
0 points

Ich werde es wohl testen müssen. Ja davon gehe ich aus, der Rechner wird während der Simulation wohl nicht nutzbar sein.

permalink
report
parent
reply
0 points

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.

permalink
report
reply
0 points

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!

permalink
report
parent
reply
0 points

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.

permalink
report
parent
reply
0 points

Ich dachte halt, dass bei ausgeschaltetem HT jeder Kern die doppelte Leistung bringt, weil er halt weniger threads bearbeiten muss. Das scheint aber nicht der Fall zu sein…

permalink
report
parent
reply
0 points
*

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.

permalink
report
reply
0 points

Ja gut, dass ich hier frage. Die Sache ist halt, dass jeder thread des Programms 12,5 der CPU auslasten, da ist dann ja noch was frei…

permalink
report
parent
reply
0 points

Und wenn du Hyperthreading ausschaltest entfernst du diese frei Kapazität statt sie zu nutzen.

permalink
report
parent
reply
0 points

Ich kann sie ja so oder so nicht nutzen.

Ich glaube einfach, dass ich noch nicht so ganz verstanden habe, was hyperthreading tatsächlich tut. Ich dachte bisher, dass damit quasi ein Kern seine Rechleistung auf zwei Aufgaben parallel aufteilt und daher nur dann vollständig verwendet wird, wenn ausreichend viele Aufgaben anstehen. Da die Simulation nur 4 threads unterstützt, dachte ich, dass dadurch die halbe CPU ungenutzt ist.

Ist wohl noch so und ich probiere es einfach mal aus.

permalink
report
parent
reply

de_EDV

!de_edv@feddit.de

Create post

Ableger von r/de_EDV auf Lemmy.

News, Diskussionen und Hilfestellung zu Hard- und Software

Diese Community dient als Anlaufstelle für alle IT-Interessierten, egal ob Profi oder blutiger Anfänger. Stellt eure Fragen und tauscht euch aus!

Weitere IT Communitys:

!informationstechnik@feddit.de

!informatik@feddit.de

!edv_sicherheit@feddit.de

!computerhilfe@feddit.de

Community stats

  • 2

    Monthly active users

  • 340

    Posts

  • 3.8K

    Comments

Community moderators