ghecko
Digital Caveman
- Registriert
- Juli 2008
- Beiträge
- 26.746
Das Hauptproblem ist schlicht, das sich 2 virtuelle Kerne einen physischen teilen.Sunjy Kamikaze schrieb:müsste ich glatt mal testen wie sehr dich das überhaupt auswirkt. Bei 6-12 Kernen.
Bei einem 2-Kerner mit Multithreading sieht das so aus:
Core 1: CPU0, CPU1
Core 2: CPU2, CPU3
Wenn jetzt eine Anwendung keine 4 Threads sondern nur 2 auslasten kann, muss man diese CPU0/2 oder CPU1/3 zuordnen, sonst laufen beide Prozesse auf einem Kern und müssen sich die Ressourcen teilen, währen die hälfte des Prozessors ungenutzt bleibt. Der Windows-Scheduler ist notorisch für derartigen Unsinn, weswegen insbesondere Programme die nur eine begrenzte Anzahl an Threads benötigen auf Prozessoren ohne MT oft schneller laufen als auf Prozessoren, die dieses Feature haben.
Je mehr Threads aber ein Programm auslasten kann, je besser performen Prozessoren mit MT. Der Scheduler des Betriebssystems spielt also die wichtigste Rolle darin, die Ressourcen so zu verteilen, dass immer die höchstmögliche Leistung des Prozessors abgerufen wird. Macht dieser seine Arbeit richtig, muss man auch nicht MT deaktivieren um derartige Performanceverluste zu verhindern.