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.

  • Senchanokancho@feddit.deOP
    link
    fedilink
    Deutsch
    arrow-up
    1
    ·
    1 year ago

    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…

    • taladar@feddit.de
      link
      fedilink
      Deutsch
      arrow-up
      5
      ·
      1 year ago

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

      • Senchanokancho@feddit.deOP
        link
        fedilink
        Deutsch
        arrow-up
        2
        ·
        1 year ago

        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.

        • taladar@feddit.de
          link
          fedilink
          Deutsch
          arrow-up
          4
          ·
          1 year ago

          Hyperthreading ist im Prinzip ein Mittelding zwischen einem und zwei Cores, ein paar Teile der Hardware sind doppelt vorhanden, die meisten nicht. Das ganze ist sehr hilfreich wenn man z.B. weniger CPU-lastige Tasks hat da man dann ohne erst aufwändig Context-Switch in Software machen zu müssen die gleiche Hardware für einen zweiten Task verwenden kann während der erste auf z.B. ein Laden von Daten aus dem RAM wartet und wenn die Daten dann da sind kann der erste weiter arbeiten während der zweite z.B. gerade seine Daten an die Festplatte schickt usw.