Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Large Pages
- - By Roland Riener Date 2014-05-27 11:01
Könnte bitte mal einer der Experten hier den weniger Bewanderten, wie mir, eine kurze Zusammenfassung vermitteln, was es damit auf sich hat. Brauchen werde ich es nicht, aber wissen würde ich es gerne.

Danke, Roland
Parent - - By Thomas Plaschke Date 2014-05-27 11:55 Upvotes 1
Ich versuch's mal so zu erklären:

Moderne Prozessoren (=CPUs) adressieren ihren (physikalischen) Speicher nicht direkt, sondern haben dafür eine Speicherverwaltungseinheit (=MMU). Wenn die CPU auf eine Speicheradresse zugreift, muss dieser Zugriff auf eine physikalisch wirklich existierende Speicherzelle im RAM des Computers umgesetzt werden. - Die CPU greift kurz gesagt auf logischen Speicher zu, die MMU setzt diesen Zugriff auf's RAM (den physikalischen Speicher) um (weiter führendes Stichwort: TLB=Translation Lookaside Buffer).

Der physikalische Speicher wird dafür in "Pages" (=Seiten) organisiert. Diese Pages haben eine vom Betriebssystem (im Rahmen der von der CPU vorgegebenen Möglichkeiten) festgelegte Größe (Für Windows 7 4 KBytes, glaube ich.). Wofür das Ganze? Virtueller Speicher (Stichwort: Auslagerungsdatei). Das Betriebssystem kann so tun als habe es viel mehr RAM zur Verfügung und tauscht falls erforderlich seitenweise den Speicher gegen Festplattenspeicher und zurück.

Hat man aber reichlich RAM, kann man Windows 7 (ab Version Professional) anweisen, die die Seitengröße auf das Maximum zu setzen. Insbesondere der Speicher der Hashtabellen liegt nun physikalisch "in einem Stück" vor und muss nicht mehr seitenweise von der MMU mittels dem TLB (dem eigentlichen Flaschenhals) aufwändig umgerechnet werden. Das ist der Geschwindigkeitsgewinn, der durch Large Pages erreicht wird. Die Angaben gehen zwischen 2% - 10%. In einem andere Thread werden ja sogar 25% diskutiert. Nachteil diese Verfahrens ist, dass der Speicher fragmentiert (durch Speicheranforderungen des Betriebsystems und/oder anderer Programme) wird. Diese Fragmentierung führt dazu, dass Speicheranforderungen irgendwann vom Betriebssystem nicht mehr bedient werden können, weil der angeforderte Speicher nicht "in einem Stück" geliefert werden kann. Dann hilft nur noch ein Neustart.

Viele Grüße
Th. Plaschke
Parent - - By Roland Riener Date 2014-05-27 14:52
Vielen Dank, Thomas, da hast du dir Mühe gegeben.

Laienhaft ausgedrückt, LP's führen zu Schnelligkeitsgewinn, dafür kann es Abstürze geben? Selbst verwende ich nur W7 Home Premium und nicht W7 Professional. Wo begännen übrigens "reichlich RAM"?

Eine Möglichkeit der Häkchensetzung für LP finde ich bei meinen Engines nur bei Bouquet 1.8, Gull 3, Deep Rybka 4, SF Rockwood und Stockwood.

Gruß, Roland
Parent - - By Thomas Plaschke Date 2014-05-27 15:43
Gern geschehen 

Richtig. LP bringen mehr Speed. Man muss sich entscheiden, ob einem die paar Prozent das wert sind (Die 25%-Gewinn, die ich genannt habe sind falsch. Die von mir zitierte Angabe war 25 Elo-Punkte Zugewinn). Ich habe selbst Windows 7 Home 64-Bit. Angeblich kann man auch für diese Version Large Pages einrichten. Habe ich aber nicht gemacht und werde ich auch nicht versuchen. Deswegen kann ich auch nicht sagen, ab welcher Hauptspeichergröße LP sinnvoll werden könnten. Die Home-Version kann jedenfalls nicht mehr als 16 GBytes verwalten. Ab der Pro-Version gehen 192 GBytes (dürfte kaum jemand auf dem Board haben ).

Ich verzichte auf LP weniger wegen möglicher Abstürze (Speicheranforderungen, die nicht bedient werden können, sollten nicht zum Absturz, sondern als definierter Fehler allenfalls zum Programmende führen.). Vielmehr stehen für mich Aufwand und Nutzen in keinem sinnvollen Verhältnis zueinander (25 Elo-Punkte bei zu erwartendem durchschnittlichen Geschwindigkeitsgewinn im einstelligen Prozentbereich dürften ausgesprochen außergewöhnlich sein). Ich nutze den PC nämlich nicht nur für Schach und müsste sonst immer den "Betriebszustand" der LP bedenken.

Viele Grüße
Th. Plaschke
Parent - By Benno Hartwig Date 2014-05-29 09:20
Thanx, schöne Erklärungen,

> 25 Elo-Punkte bei zu erwartendem durchschnittlichen Geschwindigkeitsgewinn im einstelligen Prozentbereich


Bei einem Geschwindigkeitsgewinn im einstelligen Prozentbereich würdest du aber sicher auch nur einen ELOGewinn im einstelligen Bereich erwarten dürfen.
Benno
Parent - - By Jens Israel Date 2014-05-27 20:58
ich hab da mal ´ne Frage.... (eigentlich zwei)

Soweit ich weiß (und das deckt sich mit Deiner Erklärung) ist die Speicherverwaltung mit Speicherseiten (Pages) eine Aufgabe des Betriebssystems, hier also von Windows. Wie kann dann ein Anwendungsprogramm wie Stockfish, Komodo o.a. diese Speicherverwaltung so ändern, das ein ganz zentraler Parameter wie die Seitengröße geändert wird? Die Auswirkungen auf jedes andere laufende Programm oder Prozess wären doch desaströs oder sehe ich da etwas falsch?
Andererseits kann ich mir aber auch kaum vorstellen, das die Seitengröße je nach Programm unterschiedlich verwaltet wird. Der Effizienzverlust, den das wiederum nach sich ziehen würde, stelle ich mir lieber nicht vor.

Ich hege einen anderen Verdacht: soweit ich weiß, gibt es in Windows unterschiedlich "Sorten" (Pools) von Hauptspeicher. Kann es sein, das "larges pages" in Wirklichkeit eine andere als die "übliche" Methode meint, für ein Programm vom Betriebssystem Speicher anzufordern? Es könnte ja sein, das diese unterschiedlichen "Sorten" aus bestimmten Gründen unterschiedlich schnell sind. Sollte ich mit dieser Vermutung richtig liegen, würde ich mir allerdings erlauben, die Bezeichnung "large pages" als mindestens irreführend zu bezeichnen. Einen kräftigeren Ausdruck habe ich gerade weggelöscht...

Danke und Gruß

Jens Israel
Parent - - By Thomas Plaschke Date 2014-05-27 23:24
Zu den beiden Fragen(komplexen), soweit ich die Materie verstanden habe. - Die Experten, die sich mit der (Windows-)Programmierung auskennen könnten das sicher besser beantworten:

1. Das Betriebssystem oder die Engine oder beide werden für die Large Pages vorher konfiguriert (Ich glaube mich zu erinnern, dass nur Windows vorbereitet werden muss.). - Einfach mal goggeln. - Die Schachprogramme könnten das Betriebssystem auch nicht ohne Admin-Rechte konfigurieren.
Ja, und richtig vermutet: Die Schachprogramme fordern schließlich nur eine bestimmte "Speichersorte" an. Damit wäre Frage 2 auch gleich beantwortet. Im Rockwood-Stockfish kann man sich das auch ansehen (Programmierkenntnisse vorausgesetzt).

Der Ausdruck "Large Pages" hängt wohl wirklich nur damit zusammen, dass die Speicherseiten viel größer konfiguriert sind. Unterschiedlicher Speicher, wie er anno dazumal im Amiga oder Atari TT vorhanden war, gibt's in PC's nicht (Grafik- und Soundkarten zählen nicht und Onboard-Grafik und -Sound zwacken ihren Teil vom Hauptspeicher ab). Ein Programm, das (fast) den kompletten ("Large Pages"-)Speicher in vielen kleinen Portionen anfordern und dann jede zweite Portion wieder frei geben würde, brächte das Betriebssystem dazu, eine Speicheranforderung, die größer ist als eine der frei gegebenen, kleinen Portionen, nicht ausführen zu können (=der Speicher wäre vollständig fragmentiert).
Auf den alten Atari ST - die hatten keine vergleichbaren MMUs - konnte man das, ohne praktischen Nutzen freilich, erleben 

Mit normaler Speicherseitengröße ginge das dagegen schon. Den pyhsikalisch zerfransten Speicher kann die MMU zur weiteren Verwendung als logisch linearen Speicher "darstellen". - Der TLB käme aber möglicherweise ganz schön ins Schwitzen!

Viele Grüße
Th. Plaschke
Parent - - By Frank Quisinsky Date 2014-05-28 18:46
Hi Thomas,

die Frage wird letztendlich sein ...

Wird uns etwas vorgegaukelt hinsichtlich bei Verwendung werden eher die Gegner geschwächt (bei Eng-Eng) oder bringt es wirklich die max. denkbaren 25 Elo. Die zweite Frage wäre, wie schaut es bei Engine Analysen aus, wenn wirklich nur eine Engine rechnet. Aber auch hier ... macht LargePages Sinn wenn eine Engine in der Analyse rechnet wenn mehrere Cores benutzt werden?

Nicht jede Errungenschaft ist eine Errungenschaft. Wir haben x64 im Vergleich zu w32. Das bringt je nach Engine zwischen 10-50 Elo (Zappa der Extrem Fall oder Naum hinsichtlich geringerer Zuwachs). Wir haben Hash-Tabellen, können mehrere Cores nutzen ... es gibt viele steigernde Faktoren. Wie wirkt sich LargePages in Kombination zu diesen steigernden Faktoren aus?

Beim Eng-Eng testen ist das immer sehr schwierig.
Nur ein Core verwenden damit es reproduzierbar bleibt. Alle Engines mit gleichen Hash-Tabellen ... SOS und andere nutzen Hash-Tabellen extremer. Es gibt Engine die einen aggressiven TB Zugriff haben und andere eher einen passiven. Im Verlauf der letzten Jahre haben wir vieles herausgefunden, bzw. ich bin mir sicher mit den Einstellungen beim Eng-Eng testen bzw. sehe ich die besten Durchschnittswerte (4-Steiner, nicht zu hohe Hash-Tabellen, 1 Core). Ponder on / off ... beim Zusehen macht Ponder = on mehr Spaß ist realistischer aber viele Engines haben damit ein Problem, sind wahrscheinlich nicht genau programmiert oder nutzen irgend etwas was beim Pondern hinderlich ist.

LargePages kommt hinzu ...
Prozessoroptimierungen die wenig bringen aber dennoch auch steigernd sind.

Vermutlich wird es so sein, dass durch Large Pages eher beim Eng-Eng negativ beeinflusst wird. Schon alleine wenn ich mir die Abstürze anschaue die Engine die LargePages nutzen produzieren ... erst Recht bei Ponder = on. Das war auch so ein Punkt warum ich die SWCR2 beendete. Ich spielte hier mit Ponder = On und LargePages = On. Das war keine gute Wahl.

Gruß
Frank
Parent - - By Frank Quisinsky Date 2014-05-28 19:25
Hi,

übrigens, die einzige Engine die ohne Absturz bei LargePages = on blieb in der SWCR2 war Chiron.
Wenn jemand experimentieren möchte wäre das dann die richtige Auswahl.

Gruß
Frank
Parent - - By Heinz Hagenstein Date 2014-05-28 19:39
da möchte ich gegen halten,ich benutze Windows 7 Prof.und habe noch nie einen Absturz gehabt.

Allerdings habe ich auch nur 3bis 4 Engines.

Dazu habe ich 16 G Byt Speicher,auf dem Server nutze ich davon 8192 MB bei 3-5 Minuten Partien.

Gruß Heinz
Parent - By Frank Quisinsky Date 2014-05-28 19:52
Hallo Heinz,

werden denn bei Dir auch tausende von Eng-Eng Partien gespielt?
Die Abstürze von GullChess und Houdini waren ja auch recht selten.
Beide zusammen bei ca. 3.000 Partien 10x abgestürzt.

Und auf der Server spielst Du sicherlich kein Eng-Eng sondern rechnet bei Dir nur eine Engine.
Die Abstürze kommen eher bei Eng-Eng auf einem Rechner und dann auch nur wenn Eng-Eng mit Ponder = on gespielt wird.
Bei Ponder = off in meinen Testpartien hatte ich damit auch keine Probleme.

Gruß
Frank
Parent - - By Peter Behringer Date 2014-05-28 20:11
"die Frage wird letztendlich sein ...

Wird uns etwas vorgegaukelt hinsichtlich bei Verwendung werden eher die Gegner geschwächt"

Es ist doch viel einfacher, hallo Frank... Als Root befehle ich dem Betriebssystem (LINUXT!!!!!): Reserviere Speichermenge X im Block und gib ihn nur wieder frei für Anwendungen, die das auch nachfragen. Dadurch wirst Du entlastet (ich bin so gut zu Dir, weil ich in der Partei bin) in dem Sinne, daß ein zeitaufwendiges Herumbastel um von sonstigen Dingen belegten Speicher von Dir (oder dem Programmexe) nicht mehr erwartet wird. Wenn's enge wird, dann verschiebe die Teufelchen (oder eben Konterrevolutionäre) bitte zur Not nach SWAP oder so.

Es handelt sich um eine Reservierung im durchaus klassischen Sinne (Hotel). 'Last Minute' verboten! Das Zimmer ist belecht (auch der Herr Hoteldirektor darf sich nicht ins Bett legen...)!

So denke ich mir jedenfalls den Vorgang - wissen tue ich's nicht!
Parent - By Frank Quisinsky Date 2014-05-28 23:20
Hi Peter,

ich welcher Partei?
Mal richtig erfrischend Dein Beitrag ...

Dann bleibe mir auch gut gesonnen, hier sind schon genug die aus welchen Gründen auch immer an die Decke gehen wenn mein Name auftaucht
Derzeit brauche ich jeden positiven Beitrag sonst kommt mir selbst noch der Gedanke das ich einen in der Klatsche habe.

Ich weiß nicht ...
Wahrscheinlich liegen die Zimmermädchen im Bett und warten auf bessere Zeiten und blockieren dann was der Hoteldirektor niemals tun würde.
Wenn zu viele Zimmermädchen dann wird die eigene Leistung schwächer oder in der Politik ...

Was schauen wir dumm aus der Wäsche wenn gegen Herrn Prof. die typisch deutschen Anti-Strategien nicht helfen.
Ignoranz in Perfektion ist nicht jedermanns Sache und wenn das plötzlich jemand richtig beherrscht dann wird es eng und irgendwann ziehen sich dann die Betroffenen beleidigt zurück oder rücken näher zusammen. Damit will ich jetzt nicht sagen das wir näher zum Zimmermädchen rücken sollten aber im Grunde passiert nichts anderes mit LargePages. Wir können das auch mit dem Urknall vergleichen, Materie ... Kernphysik. Geladene Teilchen ... LargePages, Zimmermädchen oder die typisch deutschen Anti-Strategien ... die nicht wirklich viele gut beherrschen.

Mohammed ...
Large Pages ...

Nur Mohammed hat uns zusammengeführt, war ein Held.
Large Pages ... führt uns nicht zusammen.

Gruß
Frank
Parent - - By Thomas Plaschke Date 2014-05-28 22:19
Frank Quisinsky schrieb:
...
die Frage wird letztendlich sein ...
... eine (schach-)philosophische. Da hat jeder seine eigene und ich die richtige - nämlich meine . Geschmackssache. Nur so viel: Ich würde nicht jedem ELO-Punkt hinterher laufen, sondern lieber wissen, welche Engine ich am besten auf welchen Stellungstyp ansetze. Insoweit nehme ich Deine Erfahrungen immer gerne zur Kenntnis. Mehr nicht zu diesem Thema.

Dass die Spielstärke einer Engine aber auch darauf beruhen könnte, dass sie (nur) im Eng-Eng-Match die Bedingungen auf dem von beiden Programmen gemeinsam genutzten PC zu ungunsten der gegnerischen Engine (und von ihrem Schöpfer möglicherweise forciert) verschlechtern könnte, ist mir noch nicht gekommen. - Gut, bei mancher Engine ist es besser, dass die Ausführungspriorität niedriger gesetzt wird. Bei anderen sorgt schon der Programmierer dafür. Das habe ich bemerkt. Aber für alles weitere danach bin ich anscheinend zu naiv.

Übrigens gehen 6-Steiner auf einer SSD ganz flott. mE sind normale Festplatten für 5-Steiner durchaus i.O. Einen Einfluss, den ich noch in die Diskussion bringen möchte, ist der overhead der Thread- oder Prozessverwaltung. Ist der wirklich vernachlässigbar bei ultrakurzen Bedenkzeiten? Sind die für die optimale Entfaltung/Wirksamkeit des Multithreadings erforderlichen Tiefen bei Minuten-Partien schon erreicht? Wir teilen anscheinend die Ansicht hinsichtlich des Ponderns. Ich hänge schon aus nostalgischen Gründen an dieser Funktion: Ein Schachcomputer wäre ohne gar nicht zu verkaufen gewesen! Wir werden sonst auch nicht lange warten müssen, bis die Programmierer auf dieses Feature verzichten.

Aber Du sprichst ja auch noch andere interessante Aspekte an. Die aktuelle x64-SSE4.2-Dev-Version von Stockfish ist auf meinem Rechner um den Faktor 1,38 schneller als die 32-Bit-Version. Gegenüber der schwächsten x64-Version läuft sie nicht mal 4% schneller. Natürlich nutze ich immer die schnellste Version. Aber wenn mein PC die schnellste Version nicht mehr ausführen kann (BMI2 und Haswell lassen aus der Ferne grüßen! (#define USE_PEXT im Stockfish setzen)), soll ich mir deswegen einen neuen PC kaufen? In wie vielen Stellungen/Partien wäre der Zugewinn von Bedeutung?

Im aktuellen TCEC dominiert Stockfish über Komodo. Wären die Vorzeichen umgekehrt, wenn die 32-Bit-Version von Stockfish eingesetzt worden wäre? Bei Stellungsanalysen nimmt man natürlich gerne das reine Geschwindigkeitsplus mit. Aber im Partieschach regiert nur die große Zahl, wenn man Unterschiede sehen will. Damit kann man den Unterschied abstrakt bemessen. Aber für eine einzelne Partie muss er keine Bedeutung haben.

Also dann lieber schönes Schach (liegt im Auge des Betrachters) und eine Engine die das kann! Meine erste Engine für Analysen ist deswegen weiterhin HIARCS! - Deinen Hinweis auf sparc für die frühe Partiephase nehme ich übrigens auch gerne auf.

Viele Grüße
Th. Plaschke
Parent - By Frank Quisinsky Date 2014-05-28 22:38
Hi,

ja das mit den 5 oder 6 Steinern mit SSD macht schon Sinn.
Wenn gleich ich zum Beispiel gar kein Fan von den Tablebases bin weil ich lieber die Engine rechnen sehe. Aber ich könnte mir so auch viele Endlosschleifen im Endspiel ersparen. Beim Engine testen denke ich immer entweder gar keine TBs oder maximal die 4-Steiner. Muss mich mal wieder mit dem Thema mehr beschäftigen und meine Meinung mal selbst in Frage stellen.

Habe ja einen i7 der vierten Generation aber BMI2 macht glaube ich nicht so viel aus. Auch AVX etc.. denke weniger als SSE42. Intel war ja restlos begeistert von AVX und sprach bei vernünftiger Optimierung von 40% Steigerung, sofern ich den Pressetext noch richtig im Kopf habe.

Hiarcs ist ein interessantes Programm, schrieb ich auch schon zu Andreas Aicher. Kann die Begeisterung oftmals nachvollziehen ... nicht immer. Aber ohne Zweifel das ist eine Engine mit einem eigenen Gesicht und das finde ich Klasse. Mark ist bei der Entwicklung offenbar auch seinen Grundsätzen treu geblieben, Hiarcs veränderte noch nie mit den Versionen sein eigenes Gesicht. Spielte immer das für Hiarcs typische Schach. Da gibt es ganz andere kommerzielle Engines die plötzlich mit neuen Versionen komplett anderes Schach spielten und da kannste Dir denken warum ... jeder Elo zählt als Kaufargument.

Finde das viele dadurch die vielen Jahren auch geblendet wurden. Was die Ratinglisten ausgeben ist nicht alles was interessant ist. Das finde ich schade wenn denn Personen zu sehr auf Elo eingeschossen sind und die Schönheit die viele Engines bieten nicht erkennen können. Stehen sich dann selbst im Weg um noch mehr Spaß am Hobby zu haben. Aber ich will auch niemanden belehren auch wenn sich das oft durch meine viele Schreiberei aufdrängt bzw. der Verdacht aufdrängt.

Bin mal neugierig auf Deuterium, Nirvanachess und Vajolet. Neue Engines für mich und spannender als die Frage hat der neue Protector zugelegt oder der neue Komodo. Bin mal gespannt mit welchen besonderen Eigenschaften diese drei daher kommen und auch froh wenn dieses Mamut FCT1 Basic Turnier endet. Ist schon länger langweilig die auf die Liste zu schauen ... da regt sich Elo mäßig wenig aber durch die vielen unterschiedlichen Spielstile habe ich auch deutlich mehr spannendere Partien zum zuschauen.

Gruß
Frank
Up Topic Hauptforen / CSS-Forum / Large Pages

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill