Zitat:
Original geschrieben von PlayFair
Es ist durchaus üblich, dass ein Task aus mehreren Threads besteht. Grade deshalb können auch single Task Anwendungen von Multi Prozessorsystemen profitieren. Von einen Hyper Threading System aber nicht.
So laufen Spiele natürlich auch in mehreren Threads. Sobald diese auf Geschwindigkeit optimiert werden, lässt der Vorteil von HT schlagartig nach.
|
Normale Anwendungen haben mehrere, parralel laufende Threads?? Woher hast du das?
Ein bis jetzt standard-System hatte einen Prozessor mit einer Ausführungseinheit. Warum sollte ein Programmierer ein Programm also für zwei Ausführungseinheiten optimieren? Und wie auf dem Text von diesem Mathias steht sind moderne CPUs vielleicht zu 30% ausgelastet. Und da setzt HT an - indem es ermöglicht, zwei unterschiedliche Threads in einer Ausfürungseinheit parralel auszuführen, während der eine Thread keine Ausführungseinheit braucht. Es mag sein das ein hypothetischer, hochoptimierter Thread, der einen Prozessor zu 100% auslastet HT recht wirkungslos machen kann - allerdings ist das zum einen nicht der fall und zum anderen macht das effektiv nix - weil's ohne HT noch uneffektiver wäre und HT selbst die kleinste pause die nen thread macht ausnützen kann. Und die wird wohl jeder thread früher oder später machen. Der vorteil ist einfach das der Prozessor selbst die Verwaltung übernimmt, welcher Thread nun wann welche Ausführungseinheit benutzen darf. Es muss nicht das (selbst als Thread aufm Prozessor laufende) Betriebssystem tun. Damit sparst du grundsätzlich einiges an Zeit ein.