Hallo Gerhard,
Wer also ein Programm auf einen Kern festlegt stellt sich in Sachen Performance selbst ein Bein.
Es ist prinzipiell richtig, dass ein Eingriff in den Job-Scheduler (über die Methoden der Kernzuweisung) seit Windows Vista in aller Regel nur Nachteile hat. Rein rechnerisch muss die Kernzuweisung einer Anwendung einen Performanzverlust für diese Anwendung darstellen. Es sei denn, es würde gelingen, alle anderen Theads von diesem einen Kern fernzuhalten - dann könnte es sogar einen winzigen Performanzgewinn geben. Aber - es lassen sich nicht alle Threads von einem Kern fernhalten. Der Betriebssystem-Core und ihm sehr nahestehende Dienste laufen unbeirrt auf allen zur Verfügung stehenden Kernen und ignorieren stumpf irgendwelche Versuche, sie dort wegzuziehen.
Bekannt ist aber auch, dass es sehr alte Anwendungen gibt, die mit Multi-Core-Prozessoren ihre Probleme haben. Hierzu gehören vor allem sehr hardwarenah programmierte Spiele. Der MSTS gehört leider dazu. Es gibt dazu auch einen Beitrag im MSDN, wo Microsoft genau diesen einen Fall als Grund für einen gerechtfertigten Eingriff in das Job-Scheduling von Windows nennt.
Das Problem liegt hier in der Nutzung der Prozessorregister, wo es einige schmutzige Tricks gab, um die Performance der eigenen Anwendung zu erhöhen. Diese Tricks gehen aber davon aus, dass der eigene Thread, sobald er wieder an der Reihe ist, auf denselben Registersatz trifft. Auf einem Ein-Kern-Prozessor war das so sicher, wie das Amen in der Kirche. Die Welt hat sich allerdings gewandelt. Da in Mehrkern-Prozessoren in der Regel jeder Kern seinen eigenen Registersatz besitzt (von einigen AMD-CPUs abgesehen), funktionieren diese Tricks nicht mehr, wenn der Thread plötzlich auf einem anderen Kern läuft.
Der MSTS stürzt z.B. reproduzierbar in bestimmten Situationen ab. Die Abstürze finden in aller Regel beim Auftauchen eines KI-Zuges statt, sobald er in Hörweite kommt. Wenn man mal zufällig einen Speicherpunkt einige Sekunden vor einer solchen Begegnung gesetzt hat, also der Ort und die Zeit der Begegnung immer wieder hergestellt werden können, wird der MSTS, wenn er einmal abgestürzt ist, von diesem Speicherpunkt aus immer abstürzen. Eine Kernzuweisung löst die Situation auf.
Ich habe seit der Kernzuweisung nicht einen einzigen Absturz mehr gehabt - es sei denn ich habe beim Experimentieren mit Konfigurationsdateien einen Fehler gemacht. Ohne Kernzuweisung läuft der MSTS bei mir mäßig stabil, d.h. ich komme durch längere Aufgaben häufig nicht "am Stück" durch.
Daher meine klare Empfehlung für die Kernzuweisung beim MSTS - trotz der Nachteile, die man sich vielleicht an anderer Stelle einkauft.
Im von Detlef angesprochenen Beitrag habe ich eine Methode vorgestellt, die Handarbeit oder externe Tools überflüssig macht. Vom Einsatz externer Tools zur "Optimierung" kann ich nur dringend abraten - Defragmentierer für konventionelle Festplatten mal ausgenommen.
Der angesprochene Beitrag findet sich in den
FAQ (<-- hier klicken)
Moderne Prozessoren können zwar einen Kern hochtakten wenn die anderen nicht benutzt werden, wie Messungen gezeigt haben geschieht dieses aber stets nur kurzfristig weil die höhere Wärmebelastung nicht dauerhaft abgeführt werden kann.
Der Grund dürfte wohl kaum die Wärmebelastung sein - es sei denn, das Kühlsystem ist schlecht dimensioniert. Der Grund für das Heruntertakten ist ganz einfach: Es gibt zu viele laufende Prozesse im System, die natürlich über die Kerne verteilt werden.
Zur Wärmebelastung: Ich habe einen i5 3570K im Rechner stecken. Er ist mit 3,4GHz angegeben, wird aber - zumindest auf Gigabyte-Mainboards standardmäßig mit 3,6 GHz betrieben. In der angesprochenen Turbo-Boost-Funktion taktet er auf 3,8 GHz hoch.
Ich betreibe den Prozessor mit 4,3 GHz auf allen vier Kernen (ohne weitere Takterhöhung bei weniger aktiven Kernen) und bleibe selbst im Sommer noch etwa 30°C unter der maximal zulässigen Temperatur (nach 2 Stunden Volllast mit Prime95). Auf dem Prozessor sitzt ein höherwertiger Luftkühler mit einem einzelnen Ventilator. Aber selbst der Kühler aus der Intel-Box schaufelt die Wärme innerhalb der Grenzen weg - macht nur viel Lärm dabei.
Günstige Massen-Notebooks könnten da allerdings in Probleme kommen, da dort die Kühlsysteme nicht zwangsläufig auf Dauer-Spitzen-Last ausgelegt sind. Der Trend, die Geräte immer kleiner werden zu lassen, macht ausreichende Kühlsysteme immer teurer...