mr.dude
Urgestein
- Mitglied seit
- 12.04.2006
- Beiträge
- 6.420
Nee, das ist Blödsinn. Das war wohl ein ziemlich unerfahrener Programmierer.SMT müsste nun auch bei Single Thread Last greifen, selbst schon mit ein paar Intel Systeme getestet, Single Thread laut Programmierer sind immer zwei Kerne zur hälfte Ausgelastet!
Du kannst einen Thread auf mehreren Kernen laufen lassen, das ist richtig. Aber nicht gleichzeitig, sondern nur hintereinander. ZB erst bekommt Kern 0 ein paar Millisekunden Laufzeit des Threads, nachdem diese abgelaufen sind wird der gesamte Threadkontext auf Kern 1 verlagert und dieser bekommt dann ein paar Millisekunden Laufzeit des Threads, dann Kern 2 usw. Macht alles der OS-Scheduler. Wenn immer zwischen zwei Kernen hin und her gescheduled wird, dann mag das den Anschein haben, dass zwei Kerne zur Hälfte ausgelastet sind. Stimmt aber nicht. Tatsächlich sind beide Kerne immer abwechselnd für ein kurzes Zeitintervall voll oder gar nicht ausgelastet. Bei grober Auslastungserfassung, also wenn das Erfassungsintervall das Zeitintervall des OS-Schedulers deutlich überschreitet, dann gehen diese Infos verloren und es können nur noch Mittelwerte für die Auslastung berechnet werden.
SMT greift bei single-threaded zudem nie. Wie auch? SMT ist dafür gedacht, mehrere Threads auf einem Kern laufen zu lassen.
Zuletzt bearbeitet: