Tutorial "AffinityMask" [JOBSCHEDULER] für Multicore-CPUs mit Beispielen

    • Hallo zusammen

      Ich bin neu hier und finde diesen Thread vorne weg super. Vielen Dank Pegasus, ich habe nun, nach dem ich bei meinem i7 die 2 1. Kerne frei gegeben habe, in der Tat nicht mehr fps, doch die Ruckler sind weg.

      Was ich noch nicht ganz verstehe, ist der FSX Mehrkernfähig? Denn:"Und jetzt ratet mal, ob der FSX mit solchen Hyperthreads umgehen kann. Tadaaa!!! Richtig geraten, er kanns natürlich NICHT!"

      Geht es wirklich nur um die Stabilität?

      Vielen Dank im voraus
    • HB-LMSJ schrieb:

      Hallo zusammen

      Ich bin neu hier und finde diesen Thread vorne weg super. Vielen Dank Pegasus, ich habe nun, nach dem ich bei meinem i7 die 2 1. Kerne frei gegeben habe, in der Tat nicht mehr fps, doch die Ruckler sind weg.

      Was ich noch nicht ganz verstehe, ist der FSX Mehrkernfähig? Denn:"Und jetzt ratet mal, ob der FSX mit solchen Hyperthreads umgehen kann. Tadaaa!!! Richtig geraten, er kanns natürlich NICHT!"

      Geht es wirklich nur um die Stabilität?

      Vielen Dank im voraus
      Für den FSX, dem mit SP2 eine gewiise Mehrkernfähigkeit verpasst wurde, ist es besser das HT abzuschalten. Die Verwendung der virtuellen Kerne bekommt dem FSX nicht gut.

      Es ist besser nur mit 4 Kernen zu arbeiten und die Affintymask auf 14 zu setzen.

      MfG
      Helmut
      Flyinghorse, Mitglied im FlightXPress Forum seit Mai 2003.
    • Flyinghorse schrieb:

      Es ist besser nur mit 4 Kernen zu arbeiten und die Affintymask auf 14 zu setzen
      Ich danke Dir, Helmut, :D , habe es gerade getestet. 5 fps mehr, das heisst 17 fps in AS Zürich X, mit Switzerland X, PMDG 747, REX Ess. 4096 Texturen, Nacht, Vollbildmodus 5700x1080, FSInn und AS2012. Poh, das sind ca. 40% mehr Leistung.

      Es braucht für mich immer Mut am BIOS rum zu basteln, doch es hat sich gelohnt.

      Nochmals Danke Euch allen. :)
    • Hallo und Moin Moin,

      an sich hat Helmut das ja schon alles erklärt und geklärt, aber ich würde da gerne noch eine Kleinigkeit zum Verständnis zufügen.

      Was HT ist und wie es in den Kernen funktioniert, ist ja soweit klar.

      Warum ist HT nun in diesem Fall nachteilig?
      Schließlich ist es ja dafür gedacht, Mehrleistung zu erbringen.

      Der Haken ist, dass die unterschiedlichen Threads im Kern zwar eigenständig gehändelt werden können, aber sie nutzen dennoch die gleichen Ressourcen.
      Das heißt Eingabe und Ausgabe von Daten müssen über die selben Komponenten laufen.
      Solange einzelne Berechnungen für sich gefahren werden, ist HT von Vorteil, wird es aber sehr Ein- und Ausgabelastig, sind genau diese gemeinsam genutzten Ressourcen das Nadelöhr und es passiert das Gegenteil dessen, was man gerne erreichen wollte.

      Und wie nicht anders zu erwarten, besteht der größte Teil einer Flugsimulation in genau diesen Rechenprozessen.
      Es ist ein ständiger Datenfluss, ständig werden Parameter eingegeben und müssen umgerechnet und so schnell wie möglich wieder ausgegeben werden und das sehr massiv.

      Daher ist HT für Flusi's nicht sinnvoll.

      HB-LMSJ schrieb:

      Es braucht für mich immer Mut am BIOS rum zu basteln, doch es hat sich gelohnt.
      Hier noch kurz der ergänzende Hinweis, dass das auch nicht unbedingt nötig, mitunter auch nicht sinnvoll ist.

      Wenn der Rechner auch für andere Aufgaben verwendet wird, die von HT profitieren, kann es auch sinnvoll sein, das HT im BIOS aktiviert zu lassen und entweder über die Affinitymask die Kerne so einzustellen, dass pro Kern nur ein Thread aktiv ist oder, was auch eine Möglichkeit ist, dem FSX über den Taskmanager nach dem Start gesagt wird, welche Kerne er benutzen darf (Taskmanager mit Ctrl.-Shft-Esc aufrufen, -> Prozesse->FSY-Prozess markieren, rechte Maustaste ->Zugehörigkeit festlegen).
      Allerdings muss man das dann jedesmal machen, für Gelegenheitsnutzer vielleicht eine Möglichkeit, ansonsten geht das auch über die Affinity Mask.

      Wenn allerdings ansonsten keine Programme auf dem Rechner laufen, die von HT profitieren, würde ich es auch im Bios abschalten.

      So, .. in der Hoffnung, dass das jetzt nicht schon alles mal in diesem Thread geschrieben war und ich es nur übersehen habe, ...
      viele Grüße
      Marcus
    • Ich sage vorab auch mal Danke für die HT Aufklärung, jetzt habe ich als Laie das auch verstanden.

      Was mir noch Kopfzerbrechen bereitet, bevor ich als Laie ans BIOS gehe, ist es mit dem Abschalten von HT getan, oder muss dann noch weiteres Finetuning im BIOS oder anderswo gemacht werden ?
      Gruß Kai

      Intel i7-3770K 4,4 GHZ/ Asus SabertoothZ77 IntelZ77/ GeForceGTX670/ 16GB Corsair Venegance DDR3-1866, 1xSSD 128GB+1x SSD 256GB Festpl. Netzteil 680w BeQuiet/ NoctuaNH-D14 Kühler / Soundblaster Recon3d/ Bildschirm Asus 3D- 27"- 144Hz
    • hesse schrieb:

      Kr28569 schrieb:

      Was mir noch Kopfzerbrechen bereitet, bevor ich als Laie ans BIOS gehe, ist es mit dem Abschalten von HT getan, oder muss dann noch weiteres Finetuning im BIOS oder anderswo gemacht werden ?
      Du musst nur HT abschalten, neu starten und dann siehst Du die Veränderung im Taskmanager.
      Dankeschön :beer:
      Gruß Kai

      Intel i7-3770K 4,4 GHZ/ Asus SabertoothZ77 IntelZ77/ GeForceGTX670/ 16GB Corsair Venegance DDR3-1866, 1xSSD 128GB+1x SSD 256GB Festpl. Netzteil 680w BeQuiet/ NoctuaNH-D14 Kühler / Soundblaster Recon3d/ Bildschirm Asus 3D- 27"- 144Hz
    • Um das noch kurz zu komplettieren:

      wer einen 4-Kerner hat und im Bios das HT eingeschaltet hat und das auch so lassen möchte, dem empfehle ich die Einstellung:
      84, was bedeutet, dass der erste physikalische Kern komplett rausgenommen ist (so wie auch bei 14 mit einem 4-Kerner ohne HT) und alle anderen Kerne nur einen Thread verwenden.
      Das sieht dann so aus(vlnr CPU 0-7): 00 10 10 10 .
      Wobei das Wort sich errechnet aus der gespiegelten Eingabe des Wertes, also 0101 0100.

      Soll der erste Kern ebenfalls mit einbezogen werden (was üblicherweise nicht der Fall ist), dann lautet das der Wert 85.
      Was sich aus folgendem Wort ergibt: 10 10 10 10 = wieder gepiegelt: 0101 0101.
      Wie gesagt, das ist nicht ratsam, da das BS und andere Tasks auf dem ersten Kern laufen und auch wenn der in der Systemauslastung aussieht, als würde er nur vor sich hindümpeln, macht es Sinn, den nicht für FS-Aufgaben einzusetzen.

      Also:
      AffinitMask=84 bei einem 4-Kerner mit im Bios eingeschaltetem HT, damit pro Kern nur ein Thread verwendet wird und der erste physikalische Kern (CPU 0 und 1) nicht verwendet werden.
      (Empfohlen)

      AffinitMask=85 bei einem 4-Kerner mit im Bios eingeschaltetem HT, wenn alle Kerne verwendet werden sollen, aber nur jeweils ein Thread pro Kern.
      (nicht empfohlen)

      Und btw:
      Die AffinityMask ist ein 8-Bit Wort, kann also maximal bis 255 gehen.
      (zumindest ist das laut Angabe von Lockheed Martin zu Prepar3d so und ich gehe daher davon aus, dass dies auch im FSX nicht anders ist, alles andere würde mich jedenfalls gewaltig wundern)

      Viele Grüße
      Marcus
    • meinem I7 Intel core2Quad 3.0 GHz

      was denn nun intel core i7 oder core2 Quad.............................? ;)


      Ja in dem Fall wäre 14 der richtige Wert, allerdings bringt die Verwendung der Affinity Mask bei den Meisten hier überhaupt nichts.
      Gruß Detlef

      i7-5930K , Asus Rampage V Extreme, MSI GTX1080 TI Gaming 11G , 32GB Corsair Dominator-3333, Win 10 Pro/64bit, Prepar3D v4