Sie sind nicht angemeldet.

Prozessorentwicklung könnte MSTS noch mal beflügeln

gerhard

Lebende Foren-Legende

  • »gerhard« ist der Autor dieses Themas

Beiträge: 2 485

Registrierungsdatum: 21. Juni 2003

  • Nachricht senden

1

Samstag, 15. November 2014, 08:40

Prozessorentwicklung könnte MSTS noch mal beflügeln

Interessanter Bericht in der aktuellen C't:
Zur Zeit in der Entwicklung ist der sogenannte VISC-Prozessor, welcher Single-Thread-Anwendungen auf mehrere Prozessorkerne auftrennen und bearbeiten kann. Ein erster Prototyp existiert und brachte vielversprechende Bennchmark-Ergebnisse.

Nochmal kurz eklärt:
Der MSTS ist ein Single-Tread Anwendung die nur einen Prozessorkern nutzen kann. Es gibt aber schon seit Jahren nur noch Mehrkern-CPUs auf dem Markt, die aus Gründen der thermischen Belastung bei Einzelkern-Anwendungen schlechter abschneiden als es ein hoch getakteter Einzelkern-Prozessor tun würde. AMD z.B. ist deswegen mit seinem "Bulldozer"-Design nicht gut angekommen weil diese CPU zwar in Mehrkern-Anwendungen nicht schlecht aussieht, bei Einzelkern-Anwendungen wie dem MSTS hingegen sehr schlechte Performance bietet.
Die neue Prozessorarchitektur würde es nun auf Hardware-Basis ermöglichen, den MSTS auf mehreren Kernen laufen zu lassen weil die CPU intern einen einzelnen Thread dynamisch auf mehrere Kerne aufteilen kann. Das geht bislang mit keiner anderen CPU, lediglich das Betriebssystem verteilt mehrere parallel laufende Anwendungen dynamisch auf mehrere Kerne.
Es sind mehrere Unternehmen an der neuen Entwicklung beteiligt, unter Anderem auch AMD, so daß man hoffen kann dass die Sache nicht irgendwo im Sande verläuft.
Warten wir also mal ab was sich in den nächsten Jahren in der CPU Entwicklung so tut, vielleicht wird's ja was. Mein oller Rechner kann jedenfalls bis dahin noch laufen.
feed your mind - read a book!

NBE_FAN

Bahndirektor

Beiträge: 316

Registrierungsdatum: 1. Mai 2003

Wohnort: Berlin

Beruf: Pensionär

  • Nachricht senden

2

Samstag, 15. November 2014, 10:31

Prozessorentwicklung könnte MSTS noch mal beflügeln

Hallo Gerhard,

es gibt schon eine elegante Möglichkeit dem MSTS nur einen Kern zu zuweisen und das für ständig.
Karsten Pohl hat dazu eine Anleitung ins Forum gestellt. Ich wende diese Methode erfolgreich an und habe dem MSTS
den Kern 1 von 4 Kernen zugewiesen. Kern 1 deshalb, weil der MSTS ja von Hause aus nur einen Kern kannte.
Also ausprobieren. Meine Meinung: Seit dem läuft der MSTS problemlos und stabiler.

Gruß
Detlef

gerhard

Lebende Foren-Legende

  • »gerhard« ist der Autor dieses Themas

Beiträge: 2 485

Registrierungsdatum: 21. Juni 2003

  • Nachricht senden

3

Samstag, 15. November 2014, 12:32

Prozessorentwicklung könnte MSTS noch mal beflügeln

Hallo Detlef

Ich fürchte, du hast es nicht richtig verstanden - Es geht keineswegs darum dem MSTS einen Kern zuzuweisen ( und nach der Ansicht von Fachleuten ist diese Methode auch überhaupt nicht sinnvoll weil Windows die Prozessorlast viel effektiver verteilen kann ) sondern es geht darum, alle Kerne gleichzeitig für den MSTS arbeiten zu lassen!
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. Wer also ein Programm auf einen Kern festlegt stellt sich in Sachen Performance selbst ein Bein.
Was jetzt komen soll ist eine ganz andere Hardware-Archtektur die mit dererlei zweifelhaften Hausmitteln dei mitunter als "Geheimtip" von Generation zu Generation weitergegeben werden überhaupt nichts zu tun hat. Aber das Internet ist groß, und es kursieren immer noch zahlreich obskure Anleitungen wie man mit höchst zweifelhaften Registry-Einträgen ( die nachweislich wirkungslos sind ) und Ähnlichem die Performance verbessern könne, teilweise stammen diese Tips noch aus Zeiten von Windows 95...
feed your mind - read a book!

Karsten Pohl

German Railroads

Beiträge: 1 748

Registrierungsdatum: 8. Juni 2003

Wohnort: Wedel bei Hamburg

  • Nachricht senden

4

Samstag, 15. November 2014, 12:33

Prozessorentwicklung könnte MSTS noch mal beflügeln

hmm - interessanter Artikel...

Es scheint ja aber eher um das Mobil-Segment zu gehen. Der Trick scheint ja darin zu bestehen, die Pipelines einer CPU besser zu nutzen - ein ähnlicher Gedanke wie beim Hyperthreading, nur viel konsequenter. Große Teile einer CPU warten ja die meiste Zeit nur darauf, dass ein anderer Teil der CPU mit seiner Arbeit fertig wird. Am Ende soll die gleiche Performanz bei wesentlich niedrigerem Takt stehen, um Energie zu sparen. Und Energie ist speziell in Mobilgeräten ein kostbares Gut.

Eine Single-Thread-Anwendung wird dadurch aber nicht auf mehrere Kerne skalierbar. Das wird ja auch gar nicht behauptet. Der Thread wird zerhackt und die Bruchstücke (im Artikel "Threadlets" genannt) werden dann (Zitat) "nicht unbedingt wie sonst in den Multi-Core-Architekturen üblich 'parallel', sondern 'concurrent' ausgeführt. Das heißt sie können sich zeitlich nur teilweise oder auch gar nicht überlappen." (Zitat Ende). Es geht wohl eher darum, die einzelnen Threadlets aller Threads so auf die CPU-Kerne zu verteilen, dass eine optimale Auslastung der in Silizium gegossenen Transistoren dabei herauskommt. Darum wird auch so auf den IPC-Werten herumgeritten...

Ich halte es auch für extrem schwer, eine Single-Thread-Anwendung wirklich parallel auf mehrere Kerne zu verteilen. Spätestens wenn eine Operation das Ergebnis der vorhergehenden Operation benötigt, fliegt einem die Geschichte um die Ohren. Das macht ja gerade die Kunst bei Multi-Thread-Anwendungen aus: Eine Aufgabe in viele voneinander unabhängige Teilaufgaben zu zerlegen und die Ergebnisse am Ende wieder zu sammeln und zu einem Gesamtbild zusammenzufügen.

Wenn ich mir dann überlege, dass der MSTS schon zu Abstürzen neigt, sobald die Ausführung von einem Kern auf einen anderen springt, was wir ja über den Zauber mit der Kernzuweisung zu verhindern suchen (s. Beitrag von Detlef), dann möchte ich nicht wissen, wie er reagiert, wenn er zur Bearbeitung in der CPU komplett zerlegt und auch noch in den Befehlssatz eines VISC-Prozessors konvertiert wird. Wahrscheinlich gibt es dann wieder die schöne Meldung "Microsoft Train Simulator funktioniert nicht mehr."
Viele Grüße aus Wedel bei Hamburg
Karsten




Menschen hören nicht auf zu spielen, weil sie alt werden - sie werden alt, weil sie aufhören zu spielen. (Oliver Wendell Holmes)

Zeichensetzung kann Leben retten! Dem Henker wird eine Notiz des Königs überreicht: "Tötet ihn nicht begnadigt!"

Karsten Pohl

German Railroads

Beiträge: 1 748

Registrierungsdatum: 8. Juni 2003

Wohnort: Wedel bei Hamburg

  • Nachricht senden

5

Samstag, 15. November 2014, 13:05

Prozessorentwicklung könnte MSTS noch mal beflügeln

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...
Viele Grüße aus Wedel bei Hamburg
Karsten




Menschen hören nicht auf zu spielen, weil sie alt werden - sie werden alt, weil sie aufhören zu spielen. (Oliver Wendell Holmes)

Zeichensetzung kann Leben retten! Dem Henker wird eine Notiz des Königs überreicht: "Tötet ihn nicht begnadigt!"

gerhard

Lebende Foren-Legende

  • »gerhard« ist der Autor dieses Themas

Beiträge: 2 485

Registrierungsdatum: 21. Juni 2003

  • Nachricht senden

6

Samstag, 15. November 2014, 19:12

Prozessorentwicklung könnte MSTS noch mal beflügeln

Ich weiß ja nicht was du da für eine CPU/Kühler Kombination betreibst dass du die TDP derart überreizen kannst, aber mit entsprechender Kühlung ist natürlich ( fast ) alles möglich.
Dabei wird es aber auch vom Prozessordesign in Bezug auf die physikalische Gestaltung abhängen ob sich Hotspots bilden oder der Heatspreader die Wärme an den Kühler abgeben kann.
Meine Empfehlung für einen stabilen Betrieb des MSTS bleibt zunächst einmal die alte:
1. BinPatch
2. Maximal mögliche Speicherzuweisung ( 4GB )
3. Weniger Kerne und stattdessen höhere Taktfrequenz auf der CPU
4. Sichtweite im TS reduzieren.

Ich hoffe zumindest die ollen Kamellen mit Problemen bei OnBoard Soundchips sind inzwischen endgültig begraben, der Rest bleibt abzuwarten und im Warten sind wir ja auch in Bezug auf OpenRails und Zusi extrem geübt. ;)
feed your mind - read a book!

Karsten Pohl

German Railroads

Beiträge: 1 748

Registrierungsdatum: 8. Juni 2003

Wohnort: Wedel bei Hamburg

  • Nachricht senden

7

Samstag, 15. November 2014, 22:55

Prozessorentwicklung könnte MSTS noch mal beflügeln

Hallo,

Ich weiß ja nicht was du da für eine CPU/Kühler Kombination betreibst

CPU: Intel Core i5 3570K
Kühler: EKL Alpenföhn Matterhorn rev.B (Lüfter ist sogar auf der "falschen" Seite (saugend) montiert, da Speicherriegel im Weg)

dass du die TDP derart überreizen kannst

Ich betreibe die CPU innerhalb der Spezifikationen von Intel. Der Core i5 3570K hat sehr viele Reserven - eine Eigenschaft, die man auch seinem Nachfolger Core i5 4690K nachsagt. Diese beiden CPUs sind da aber auch recht ungewöhnlich.

Die spezifizierten Limits würde ich verlassen, wenn ich noch höher takten würde. Dann müsste ich nämlich die Kernspannung künstlich anheben, um die CPU stabil zu halten. Dann klettern aber auch die Leistungsaufnahme und die Temperaturen sehr schnell in kritische Bereiche. Das ist es nicht wert, denn geschenkt sind die CPUs ja schließlich auch nicht ;) .
Viele Grüße aus Wedel bei Hamburg
Karsten




Menschen hören nicht auf zu spielen, weil sie alt werden - sie werden alt, weil sie aufhören zu spielen. (Oliver Wendell Holmes)

Zeichensetzung kann Leben retten! Dem Henker wird eine Notiz des Königs überreicht: "Tötet ihn nicht begnadigt!"

gerhard

Lebende Foren-Legende

  • »gerhard« ist der Autor dieses Themas

Beiträge: 2 485

Registrierungsdatum: 21. Juni 2003

  • Nachricht senden

8

Sonntag, 16. November 2014, 09:11

Prozessorentwicklung könnte MSTS noch mal beflügeln

Mmmhh - Ich meine mich erinnern zu können daß diese CPU dafür bekannt war daß da noch einiges herauszuholen ging. Ich stehe ja mehr so auf superleise Rechner aber wer gerne E-Lok fährt für den ist Lüfterrauschen wie Musik... :D
feed your mind - read a book!

Andreas-pz

Fahrdienstleiter

Beiträge: 125

Registrierungsdatum: 20. Dezember 2006

  • Nachricht senden

9

Sonntag, 16. November 2014, 13:29

Prozessorentwicklung könnte MSTS noch mal beflügeln

Ich kann für mich Karstens Hinweise zur " Einkernzuweisung " nur bestätigen. Fahre viel auf der SOB oder der TRAT 324 zur Zeit 7 h Güterzugact von @Alcapone. Seit dem ich den Zuweisungspfad meiner Train.exe ( C:\Windows\System32\cmd.exe /c start /high /affinity 0x01 "MSTS auf CPU-0" "C:\Train\train.exe" -mem:2048 -timeacceleration -nofiltercab ) so geändert hatte, habe ich eigentlich nur noch hier und da Abstürze wenn ich beispielsweise in großen Bahnhöfen mit der Tastenfolge 1 - 5 - Klavierspiele- .

Für mich ein großer in Schritt in Richtung Fahrfreude.

Schönen Sonntag

gerhard

Lebende Foren-Legende

  • »gerhard« ist der Autor dieses Themas

Beiträge: 2 485

Registrierungsdatum: 21. Juni 2003

  • Nachricht senden

10

Sonntag, 16. November 2014, 13:39

Prozessorentwicklung könnte MSTS noch mal beflügeln

Wofür du die Schalter "Nofiltercab" und timeacceleration" benötigst ist mir zwar nicht klar, aber ich kann dir sagen daß "mem:4095" mehr bringen würde falls dein Rechner das hergibt.
Auf einem 32 bit-System kann man auch ruhig 3 GB zuweisen wenn man nicht gerade im Hintergrund etliche andere Prozesse laufen hat.
feed your mind - read a book!

Karsten Pohl

German Railroads

Beiträge: 1 748

Registrierungsdatum: 8. Juni 2003

Wohnort: Wedel bei Hamburg

  • Nachricht senden

11

Sonntag, 16. November 2014, 13:40

Prozessorentwicklung könnte MSTS noch mal beflügeln

Schnell heißt nicht zwangsläufig laut ;)

Man kann auch einen schnellen Rechner leise bauen. Da mein Rechner im Wohnzimmer steht, hatte ich strenge Auflagen von der Regierung bekommen :P
Viele Grüße aus Wedel bei Hamburg
Karsten




Menschen hören nicht auf zu spielen, weil sie alt werden - sie werden alt, weil sie aufhören zu spielen. (Oliver Wendell Holmes)

Zeichensetzung kann Leben retten! Dem Henker wird eine Notiz des Königs überreicht: "Tötet ihn nicht begnadigt!"

Kris

Oberlokführer

Beiträge: 79

Registrierungsdatum: 3. Januar 2012

Wohnort: Ba-Wü

  • Nachricht senden

12

Sonntag, 16. November 2014, 17:06

Prozessorentwicklung könnte MSTS noch mal beflügeln


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...
Da in Mehrkern-Prozessoren in der Regel jeder Kern seinen eigenen Registersatz besitzt, 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...

Interessante Info, Danke für die Erklärung.
Das "Warum" für dieses Problem war mir nämlich nicht bekannt.

Was mir allerdings noch auffällt, ist das unterschiedliche Verhalten von Win XP und 7-64.
XP ist bei mir sehr stabil gelaufen, Win 7 ist dagegen etwas zickig. Bei XP gab es "Mega-Ruckler", wo der MSTS mal eben für mehrere Sekunden eingefroren war, danach lief er aber wieder. Unter Win 7 stürzt der MSTS bei Problemen dagegen verzugslos ab.

Karsten Pohl

German Railroads

Beiträge: 1 748

Registrierungsdatum: 8. Juni 2003

Wohnort: Wedel bei Hamburg

  • Nachricht senden

13

Sonntag, 16. November 2014, 17:32

Prozessorentwicklung könnte MSTS noch mal beflügeln

Hallo Kris,

die Mega-Ruckler haben ihre Ursache vermutlich im Nachladen von Daten von der Festplatte. Ich habe es auch beobachtet, dass der MSTS unter Windows 7 bei zu langen Nachladezeiten (im Bereich von ein bis zwei Sekunden) den Schirm dicht macht. Warum es hier einen Unterschied zwischen Windows XP und Windows 7 gibt, kann ich aus dem Stand nicht beantworten. Ich habe eine Vermutung, die aber rein spekulativ ist. Um sie abzusichern, müsste ich "Grundlagenforschung" betreiben, wofür mir gerade etwas die Zeit fehlt.

Falls der MSTS auf einer konventionellen Festplatte installiert ist, hilft möglicherweise eine Defragmentierung mit Anordnung der Dateien nach Namen. O&O Defrag wäre hierzu in der Lage. Allerdings wäre dies auch nur eine recht schwache Medizin. Nachhaltig beseitigen kann man Nachladeruckler durch den Einsatz einer SSD.
Viele Grüße aus Wedel bei Hamburg
Karsten




Menschen hören nicht auf zu spielen, weil sie alt werden - sie werden alt, weil sie aufhören zu spielen. (Oliver Wendell Holmes)

Zeichensetzung kann Leben retten! Dem Henker wird eine Notiz des Königs überreicht: "Tötet ihn nicht begnadigt!"

Andreas-pz

Fahrdienstleiter

Beiträge: 125

Registrierungsdatum: 20. Dezember 2006

  • Nachricht senden

14

Sonntag, 16. November 2014, 20:44

Prozessorentwicklung könnte MSTS noch mal beflügeln

Guten Abend @Gerhard , den Eintrag - Nofiltercab - in meinem Train exe Pfad benötige ich für das entfernen von einigen Nähten in der Führerstandsansicht. Da ich im Rahmen verschiedener BETA Test Aufgaben schnell einen Punkt aufsuchen möchte, ist es mir mit dieser Eintragung - timeacceleration- und der Strg- T Taste möglich die Aufgabe im Zeitraffer laufen zu lassen.

Persönlich, Gerhard bin ich auch weiter interessiert über das Thema " Prozessorentwicklung könnte MSTS noch mal beflügeln "mehr lesen zu können.

Gruß

Persönlicher Bereich