Frage

Ich versuche, herauszufinden, wie ein Betriebssystem (Windows, Linux) Abtretungs Zahlen logische CPUs in einem Hyper-Threading-Umgebung aktiviert. ?

Does sowohl die OSs ersten seriell assign Zahlen zu dem physischen CPUs und starten Sie dann die logische CPUs Nummerierung oder gibt es eine andere Regel gefolgt ..? z.B. in 2 physikalischem CPU-System mit Hyper-Threading, funktioniert ein O assign Zahl 0,2 an der ersten physikalischen CPU und dann 1,3 um zweite physikalische CPU ..?

würden Verweise wirklich zu schätzen.

Vielen Dank im Voraus.

Regards, -Jay.

Edit: Als Reaktion auf Alans Frage: Ich muss das wissen, weil, ich in meiner Arbeit verschiedene Threads zu bestimmten CPUs zu vermeiden Kontextwechsel binden müssen und ich möchte sicherstellen, dass bestimmte Aufgaben (Threads) sind verpflichtet, getrennt physischer CPUs. Dank

War es hilfreich?

Lösung

Von dem, was ich weiß, es hängt davon ab, wie der CPU seine Kerne aussetzt. Wenn HT aktiviert ist, gibt es keine freiliegenden physischen CPUs, sondern zwei logische CPUs pro physischer CPU, so gibt es keinen Unterschied, ob man einen Thread auf jedem logischen CPU ausgeführt werden. Das einzige, was nicht egal ist, was Paare von logischen CPUs zu jedem physikalischen CPU gehören.

Mit Single-Core-Prozessoren (wie der Pentium 4 mit HT), es ist ziemlich geradlinig, da Sie nur ein Paar haben - so ist es (0, 1). Mit Quad-Core-Prozessoren (wie Nehalem), sind die logischen Kerne Paare (0,4), (1,5), (2,6) und (3,7). Das Muster aller ersten Hälften eines jeden Paares mit dann Zunder shuold der zweiten Hälften mit zukünftigen CPUs, die noch mehr Kerne haben.

Die eigentliche Frage ist, warum brauchen Sie das Paar Anordnung wissen? Lassen Sie den Scheduler OS die richtigen Kerne für die richtigen Fäden holen -. Es ist eine ziemlich gute Arbeit tut

Andere Tipps

Sie können in /sys/devices/system/cpu/ sehen Sie die Informationen über die CPUs zu finden. Die Anordnung der Kerne und ihre Hyper-Threading-Paare können in /sys/devices/system/cpu/cpuN/topology/thread_siblings_list gefunden werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top