Noch eine kleine Abhandlung, ... diesmal zum Thema Hyperthreading und seine Auswirkungen auf den Flusi.
Ich gehe mal davon aus, das die meisten im Grundsatz wissen, dass Hyperthreading (HT) dafür da ist, die Leistung eines Prozessors zu optimieren und Mehrleistung zu erzeugen, indem ein CPU-Kern, sozusagen zweigeteilt wird und damit gleichzeitig zwei Rechenprozesse (Threads) ausführen kann.
Warum ist HT nun im Fall der Flusis 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 physikalischen Komponenten in diesem CPU-Kern 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.
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.-Shift-Esc aufrufen, -> Prozesse->FSX-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.
Wer aber z.B. einen 4-Kerner hat und im Bios das HT eingeschaltet hat und das auch aus guten Gründen so lassen möchte (und dafür gibt es gute Gründe), 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)
Auch hier wieder zum Abschluss die ausdrückliche Bitte, mich zu korrigieren, wenn ich daneben gehauen habe.
Vieles ist vereinfacht beschrieben, aber es sollte dennoch passen.
Ich freue mich also immer über Fragen und Korrekturen.
Viele Grüße
Marcus