Frage Intel CPU HT

Takato

Lt. Junior Grade
🎅Rätsel-Elite ’24
Registriert
Okt. 2006
Beiträge
306
Hi,
ich habe mal eine Frage zu IntelCPUs mit HT Technologie (oder SMT wies so schön heißt).
Ich habe in meinem subnotebook ein Core i5 520UM, 2kerne, 4threads.
Wenn ich jetzt ein Progamm im Taskmanager via zugehörigkeit festlegen nur gewisse Cores festlegen will, wie finde ich raus, welche CPU von CPU0-3 die echten, und welche die virtuellen kerne sind?
Der hintergrund ist der, dass ich den Turboboost gut auslasten will und dann nur 2 von den 4 "cores" belasten will. manche spiele kommen mit SMT ja nicht zurecht, deshalb will ich dann schon die zwei echten kerne damit belasten.
 
Es gibt keine "echten", da jeder von ihnen in zwei virtuelle geteilt wird. Normalerweise sollten Core 0 und 1 von einem physikalischen Kern stammen, Core 2 und 3 vom anderen.
 
0 1 ist core 1 physisch
2 3 ist core 2 physisch
 
sicher? weil manchmal sind die kerne 0 und 2 von alleine ausgelastet. und ich frage mich ob windoof das nicht intelligent regelt
 
Der Scheduler beherrscht seit Windows 7 Core Parking und versucht zuerst nur die physikalischen Cores auszulasten. Dies äußert sich im Taskmanager dadurch, dass nur auf jedem 2. Core eine Load zu erkennen ist. Ab einem bestimmten Schwellenwert werden die geparkten virtuellen Cores dann aktiviert und in das Loadbalancing mit einbezogen. Am besten lässt sich dies auf CPUs mit 4 und mehr physikalischen Cores beobachten, da bei Dualcores häufig schon so viele Threads laufen, dass alle Cores belastet werden. Wenn man mal ein bisschen mit manuellen Pinning rumspielt, kann man wunderbar die verschiedenen Turbostufen erkennen und erhält teils interessante Performancewerte. Ähnliches gilt btw für Bulldozer CPUs, da Windows ein Modul wie einen Core mit HT behandelt. ;)
 
ich seh grad im ressourcenmanager auf meinem subnotebook dass die cores 1 und 3 geparkt werden, kann ich also davon ausgehen, dass dies wohl die "HT kerne" sind?
was mich wundert: mein Core i5 2500k parkt keinen einzigen kern. ist das normal? hab auch schon mit nem registryhack die einstellung für die energieoptionen aktiviert, aber da tut sich nichts, egal wieviel % workload ich einstelle
auch wenn ich die Option: Prozessorleistung: Parken von kernen - kerne minimal auf 0% stelle, parkt er nur 2 cores bei meinem 520UM
 
Zuletzt bearbeitet:
Es gehören immer 2 Threads (virtuelle Cores) zu einem physikalischen Core. Prinzipiell versucht Windows zuerst nur einen Thread pro physikalischen Core zuzuordnen, was im Taskmanager meist so aussieht, als ob nur die Cores mit geradem Index (0, 2, ...) belastet werden. Genausogut könnte die Verteilungen auf die Cores mit ungeradem Index erfolgen (1, 3 ...) und manchmal lässt sich auch ein Bruch dieser Symmetrie beobachten, wobei die Verteilung z.B. auf die Cores 0, 2, 3, 6 ... erfolgt. Letztendlich ist dies egal und macht auch keinen Unterschied, solange von 2 zum selben Core gehörenden Threads nur einer verwendet wird.
Dein 2500K beherrscht kein HT und bei 4 physikalischen Cores verwendet Windows kein Core Parking. Erst bei deutlich größeren Systemen z.B. 2 Sockets mit je 8 Cores werden auch physikalische Cores geparkt um Energie zu sparen. Scheduling von Multicore NUMA Systemen ist ein komplexes Problem und es gibt afaik noch keinen Scheduler, der alles berücksichtigt und je nach Strategie versucht entweder die maximale Performance oder einen minimalen Energieverbrauch zu erreichen.
 
ja ist auch irgendwie logisch:

core 0 = der physisch vorhandene erste kern, core 1 = seine virtuelle erweiterung
erst dann gehts weiter mit core 2, der da wieder physisch existiert und core 3, dessen virtueller "knecht"

auf den ersten blick würds auch logisch erscheinen, die beiden physischen kerne als core 0 und 1 zu bezeichnen, ABER da jeder virtuelle direkt an den physischen gebunden ist, muss die logische konsequenz sein, dass auf jeden physischen unmittelbar ein virtueller folgt ;)

dass er beim 2500K keinen parkt kann daran liegen, dass er kein smt hat, also nur physische kerne ;)
 
Takato schrieb:
ich seh grad im ressourcenmanager auf meinem subnotebook dass die cores 1 und 3 geparkt werden, kann ich also davon ausgehen, dass dies wohl die "HT kerne" sind?

Nö, Windows parkt von sich aus immer jeden 2. Kern.
 
Perry S. Hilton schrieb:
core 0 = der physisch vorhandene erste kern, core 1 = seine virtuelle erweiterung
erst dann gehts weiter mit core 2, der da wieder physisch existiert und core 3, dessen virtueller "knecht"
Ne, wie gesagt, es gibt da keine physikalischen, sie sind alle virtuell.
Es existiert damit so gesehen kein Unterschied zwischen Core 0 und 1.
 
aber irgendeinen unterschied musses ja geben, sonst hätten manche spiele z.b. ja keine probleme mit HT, was sie aber definitiv haben (bf3 als letztes auch). und es dürfte ja für eine anwendung ja schon ein unterschied sein, ob man auf 2 getrennte echte cores rechnet oder auf einem core und seinem HT pendant
 
Takato schrieb:
aber irgendeinen unterschied musses ja geben, sonst hätten manche spiele z.b. ja keine probleme mit HT, was sie aber definitiv haben (bf3 als letztes auch).
Nein, wenn es einen Unterschied geben würde, könnten diese manchen Spiele einfach den physikalischen Kern nutzen und es gäbe keine Probleme. Die gibt's aber, wie du selbst sagst.

Takato schrieb:
und es dürfte ja für eine anwendung ja schon ein unterschied sein, ob man auf 2 getrennte echte cores rechnet oder auf einem core und seinem HT pendant
Für die Anwendung selbst ist es egal. In beiden Fällen stehen ihr zwei logische Rechenkerne zur Verfügung.
Wenn allerdings die Berechnung zuerst in zwei Threads zerlegt und anschließend von der Hardware wieder interleaved wird (es gibt ja tatsächlich nur einen Kern), kann es im ungünstigsten Fall passieren, dass es sich eben nicht optimal auf die Performance auswirkt.
 
Zurück
Oben