RYBKA
 ••• StartseiteRybka-EngineFAQ zur V. 2.x
 
Rybka-Engine
FAQ
Demo Download
Rybka kaufen
FAQ zur V. 2.x
Startseite
one


Nach oben
Die Parameter von Rybka - FAQ

Kannst Du mir die Parameter von Rybka erklären?

Parameter der Engine:

1) Display Draw Scores (=Zeige Remis-Werte):
Wenn dieser Parameter auf "false" (=falsch) gesetzt wird, werden während einer Partie Bewertungen zwischen -0.03 und +0.03 auf -0.03 und 0.03 gerundet. Dies verhindert, daß die graphische Oberfläche Remis anbietet. Dieser Parameter hat keinen Einfluss auf die Analyse mit Rybka.
2) Preserve Analysis (=Behalte Analyse): Wenn dieser Parameter auf "true" gesetzt wird, werden tiefe Einträge aus dem Speicher der Engine während der Analyse gespeichert. Das ist ganz nützlich, wenn man eine Partie analysiert und dabei von hinten anfängt. Die Berechnungen der tieferen Varianten werden gespeichert und in den früheren Stellungen der Partie benutzt. Der Speicher der Engine sollte geleert werden, bevor man diese Option nutzt.
3) Contempt (="Geringschätzung" (von Remisen)): Wird benutzt um Remisen gegen schwächere Spieler zu vermeiden (oder gegen stärkere Spieler Remisen zu suchen). Ein positiver Wert bedeutet, daß Remisen vermieden werden (die Engine bevorzugt einen Nachteil von "Contempt XY" gegenüber einem Remis), ein negativer Wert führt dazu, daß Rybka Remisen sucht.
4) Outlook (=Ausschau): Je optimistischer dieser Parameter eingestellt wird, desto mehr Zeit verbraucht Rybka mit der Analyse von wahrscheinlich schlechten taktischen Varianten (wie z.B. solchen mit Figurenopfern), die aber sehr gut sein können, wenn sie funktionieren. Pessimistischere Einstellungen führen dazu, daß Rybka nicht danach sucht, sondern positionelleres Schach spielt.
5) Rate of Play (=Spielgeschwindigkeit): Stellt Rybka's Spielgeschwindigkeit in Partien ein. Beachten Sie, daß Rybka standardmäßig bereits relativ schnell spielt.
6) Time Usage (=Zeitnutzung): Bestimmt, ob Rybka ihren Zeitverbrauch der Stellung anpassen soll. In der Standardeinstellung nimmt sich Rybka in interessanten Stellungen deutlich mehr Zeit. Mit der Einstellung "constant" verbraucht Rybka immer gleich viel Zeit für jeden Zug.
7) Emergency Time Buffer (=Notfall-Zeitpuffer): Legt fest, wieviel Zeit sich Rybka mindestens aufhebt.
8) "Win Percentage to Hash Usage" (=Gewinnchancen statt Hashnutzung): Standardmäßig deaktiviert. Wenn diese Option aktiviert wird, zeigt Rybka statt der aktuellen Nutzung der Hashtabellen die berechneten Gewinnchancen in Prozent an. Dieser Wert wird (z.B. bei Arena) meist im Fenster mit der Engineausgabe angezeigt.

Parameter für Probleme mit dem System:

Überblick:
Auf einigen System kann es Probleme bei dem Austausch zwischen Engine und graphischer Oberfläche kommen. Dadurch reagiert z.B. die Oberfläche langsamer oder es treten andere Probleme auf. So können diese dazu führen, daß Rybka auf Zeit verliert oder Informationen zwischen Engine und Oberfläche ganz verloren gehen.
Diese Probleme scheinen auf Multi-Prozessor-Systemen häufiger aufzutreten, bei denen alle Prozesse die volle Kapazität benutzten.

Die folgenden Parameter sollen bei diesen Problemen helfen. Die Standardeinstellungen sollten solche Probleme bereits vermeiden, aber fortgeschrittene Nutzer können mit den Optionen herumspielen um die optimalen Einstellungen für ihr System zu erreichen.

9) Engine Priority (=Enginepriorität): Rybka stellt ihre Priorität immer selbst ein, unabhängig von der Priorität in der sie von der Oberfläche gestartet wurde. Dieser Parameter stellt diese Priorität ein. "Normal" führt dazu, daß die Priorität des Hauptprozess von Rybka und der Prozesse der anderen Prozessoren (bei Multi-Prozessor-Systemen) auf "normal" gesetzt wird. Bei 'Low' (=Niedrig) wird die Priorität aller Prozesse auf "niedrig" gesetzt. Die Standardeinstellung "NormalAndLow" (Normal und niedrig) bewirkt, daß der Hauptprozess die Priorität "normal" erhält und die anderen Prozesse auf "niedrig" gesetzt werden, damit die Oberfläche mehr Ressourcen zur Verfügung hat.
10) "Display Current Move" (= Zeige momentanen Zug): Standardmäßig aktiviert. Wenn diese Option nicht aktiviert ist, sendet Rybka keine Informationen über den Zug an, der gerade berechnet wird. Das ist eine Idee von Aaron Gordon, Sie können im Rybka Forum mehr darüber lesen. ich nutze Chess Assistant 9 für meine Tests und habe nie eine Verlangsamung oder Leistungseinbrüche bemerkt, aber es gibt keinen Grund den Anwendern nicht die Möglichkeit zu geben damit herumzuexperimentieren.
11) Compensate Lost Time (Kompensiere verlorene Zeit): Stellen Sie sich folgenden Fall vor: Rybka beginnt eine Suche mit 30 Sekunden auf ihrer Uhr. Sie sucht 2 Sekunden lang und spielt ihren Zug. Wenn sie jedoch den Befehl bekommt ihre nächste Suche zu starten, wird ihr mitgeteilt, daß sie nur noch 27 (statt der erwarteten 28) Sekunden auf der Uhr hat. Diese eine Sekunde wird "lost time" (=verlorene Zeit) genannt und wenn diese Option auf "true" (=wahr) gesetzt wird, wird Rybka annehmen, daß sie genau die gleiche Zeit bei der nächsten Suche verlieren wird und daher ihren Zeitverbrauch ändern. (Dieser Parameter hat den Nachteil, daß er auf einigen Systemen und Oberflächen zu Problemen mit dem System und der Oberfläche führen kann.)
12) Server Buffer (=Serverpuffer): In einigen Fällen senden Schachserver die verfügbare Zeit für die Engine falsch angeben. Das ist normalerweise nur bei sehr langen Partien wichtig (mit mehr als 100 Zügen). Wenn diese Option ausgewählt wird, nimmt Rybka an, daß die wirkliche Zeit geringer ist als die Zeit, die von der Oberfläche gemeldet wird.
13) NalimovUsage (=Nalimov (-Endspieldatenbanken)-Nutzung): Für einige Nutzer kann die Nalimov Endspieldatenbankenunterstützung in Rybka 2 verschiedene Probleme verursachen. Ein neuer Wert "Never" (=nie) wurde hinzugefügt und wird die Standardeinstellung bleiben, bis ich mir ganz sicher bin, daß diese Probleme 100% gelöst sind.
Es wird natürlich empfohlen Endspieldatenbanken zu nutzen und daß die Oberfläche in Datenbankstellungen übernehmen kann.
14) Max CPUs: Diese Option legt einen Grenzwert für die maximale Zahl der genutzten Prozessoren fest. Bei dem Standardwert nutzt Rybka alle Prozessoren und startet für jeden Kern genau einen Prozess. Jeder Wert ab 1 ist in Ordnung.
Nutzer können diese Option nutzen um Rechenkapazität für andere Prozesse zu sparen.
15) "Display PV Tips" (= Zeige PV Hinweise): Standardmäßig deaktiviert. Wenn es aktiviert wird, zeigt Rybka die längste mögliche prinzipielle Variante an. Diese Varianten sind meist nicht besonders gut und können auch schwere Fehler enthalten. Aber genau wie bei "Display Current Move" gibt es keinen Grund den Anwendern nicht die Möglichkeit zu geben damit herumzuexperimentieren.
16) "CPU Usage" (=Prozessornutzung): 100 ist der Standardwert. Niedrigere Werte führen dazu, daß Rybka innerhalb der Suche "schläft" und so Rechenleistung für andere Prozesse freigibt. Das ist eine Alternative zu dem Prioritätensystem von Windows. Wenn Sie Probleme mit Ihrem System oder der graphischen Oberfläche haben, können Sie diesen Parameter verändern. Beginnen Sie bei 99 und tragen Sie immer kleinere Werte ein. Auf einigen Laptops, bei denen im Hintergrund sehr viele Anwendungen laufen und dadurch das System langsamer wird, ist diese Option sehr nützlich.

Die folgenden Parameter sind nur in einigen älteren Versionen von Rybka vorhanden:

a) IO Supplementation (=IO-Ergänzung): Wenn diese Option aktiviert wird, sendet Rybka ihren Zug nochmal, wenn sie bereits einen Zug ausgegeben hat und die Oberfläche für mindestens 0,5 Sekunden den Zug ignoriert (Dies ist für den Fall gedacht, daß Informationen, die von der Engine gesendet werden, völlig verschwinden.)
b) Output (=Ausgabe): Ändert die Informationen, die von der Engine an die Oberfläche weitergegeben werden. Bei der Einstellung "Verbose" (=ausführlich) werden sehr viele Informationen ausgegeben, "Sparse" (=wenig) begrenzt die Ausgabe auf ein Minimum.


Was ist mit den "UCI..." Parametern?
Wenn Sie diese Parameter sehen bedeutet das, daß Ihre graphische Oberfläche nicht alle UCI bzw. UCI 2 Optionen unterstützt. Am besten ignorieren Sie einfach diese Parameter.

Was sind die besten Einstellungen?
Mit den Standardeinstellungen spielt Rybka schon mit voller Stärke, aber Sie können natürlich an den Parametern herumspielen um nach besseren Einstellungen zu suchen.

Wenn Sie weitere Fragen haben, könnten die Rybka 2.0 Beta FAQ hilfreich sein.
Außerdem können Sie das Rybka Forum besuchen, um mehr über Rybka zu erfahren und auch Fragen (auf Englisch) direkt an den Programmierer (Vasik Rajlich) zu stellen.

Rybka 2.3

Diese Version ist die letzte Version aus der Rybka 2 Reihe.

Verbesserungen der Algorithmen

Wie immer war der Schwerpunkt der Arbeit seit der letzten Version die Suche und Bewertungsfunktionen von Rybka. Ich glaube, daß diese Version in vielen Stellungstypen besser spielen wird.

Ich möchte ganz besonders dem Internationalen Meister Larry Kaufman für seine Hilfe bei der Verbesserung von Rybkas Verhalten beim Abtausch von Figuren und Bauern danken. Larry hat unglaublich viel Arbeit in diesen Bereich investiert und Sie werden die Früchte seiner Arbeit in der LK-Version von Rybka 2.3 und hoffentlich auch in späteren Versionen sehen können.

Spielstärke

Die Spielstärke wurde offenbar etwas gesteigert seit der letzten Version. Ich habe ein paar Blitzpartien (1+1) zwischen Rybka 2.3 und Rybka 2.2n2 gespielt und erhielt ein Ergebnis von +245 =607 -193 (52.5%, +17 Elo).

Randomizer

Es gibt eine für fortgeschrittene Anwender interessante neue Funktion, die ich den "Randomizer" nenne. Die Idee dieser Funktion ist es, dem Nutzer zu erlauben viele Partien von einer Stellung ausgehend zu spielen um statistische Daten zu sammeln. Rybka merkt sich im "Randomizer"-Modus alle vorherigen Partien und wird keine bereits gespielte Variante wiederholen und so alle interessanten Varianten erforschen.

Anleitung zum Starten eines neuen Wettkampfes zwischen zwei Rybkas im "Randomizer"-Modus:

1) Erstellen Sie zwei separate Ordner.
2) Erstellen Sie jeweils eine Kopie von "Rybka v2.3.x64.exe" (bzw. "Rybka v2.3.w32.exe") in jedem der beiden Verzeichnisse.
3) Erstellen Sie in jedem der beiden Verzeichnisse eine Textdatei und nennen Sie diese "rybka.config". Schreiben Sie in diese Textdatei die Zeile "randomize=10". (Der Wert 10 ist derm Grenzwert für die Kandidatenzüge in hundertstel Bauerneinheiten, mehr dazu finden Sie weiter unten)
4) Installieren Sie die erste der beiden Rybkas in Ihrer graphischen Oberfläche. -- Hinweis: Wenn Sie die Fritz Oberfläche nutzen, muß dies per Hand gemacht werden. Öffnen Sie dazu die .uci-Datei der Engine (diese finden Sie im Ordner .../Chessbase/Engines und heißt z.B. "Rybka 2.3.uci). Ändern Sie die Zeile "Name=xxx" und die Datei selbst um. Die meisten anderen Oberflächen erlauben aber eine Namensänderung innerhalb der Oberfläche.
6) Installieren Sie die zweite Rybka in Ihrer Oberfläche.
7) Nennen Sie diese um (wie bei Schritt 5).
8) Erstellen Sie eine neue .pgn Datei mit der Stellung, die Sie gerne testen würden. Beispiel:

[Event "?"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
[ECO "E32"]
[PlyCount "20"]

1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. Qc2 O-O 5. a3 Bxc3+ 6. Qxc3 d6 7. f3 d5 8. Bg5 Nbd7 9. e3 Re8 10. Ne2 b6 {#} *

9) Starten Sie einen Engine-Zweikampf zwischen den beiden gerade installierten Rybkas von dieser Stellung aus. In der Fritz GUI müssen Sie dazu auf "Datei->Neu->Engine-Zweikampf" und dann auf "Eröffnungs-DB" klicken und dort die .pgn-Datei eintragen, die Sie im 8. Schritt erstellt haben.
10) Versichern Sie sich, daß Sie genügend Partien eingestellt haben. Ich schlage etwa 500 vor.
11) Ich würde sehr schnelle Partien spielen, z.B. mit einer festen Tiefe von 6,7 oder 8.
12) Wenn der Zweikampf fertig ist, haben Sie eine Menge Partien. Das ist aus zwei Gründen nützlich:

a) Die Statistik dieser Partien ist meiner Meinung nach recht aussagekräftig für die Bewertung der Stellung.
b) Diese Partien können in das Eröffnungsbuch der Oberfläche, die Sie nutzen, kopiert werden. In der Oberfläche von Fritz klickt man dazu auf "Bearbeiten->Buch->Partien importieren...".

Alternative Vorgehensweisen:

1) Sie können die Breite der Alternativen verringern oder erhöhen, indem Sie den Wert für "randomize" in der Datei "rybka.config" verändern.
2) Sie können mehrere Stellungen gleichzeitig testen, indem Sie mehrere Stellungen in die .pgn-Datei schreiben. Dann sollten Sie natürlich auch die zahl der Partien erhöhen.
3) Sie können eine Rybka im "Randomize"-Modus auch gegen eine normale Rybka spielen lassen. Die Rybka im "Randomize"-Modus wird dann natürlich (anders als die andere Rybka) ihre Zugwahl immer verändern um alle Varianten zu spielen.

Ein letzter Hinweis:

Rybka merkt sich im "Randomize"-Modus alle vorher gespielten Partien von dem Moment an, an dem sie geladen wurde. Wenn Sie einen vorherigen Kampf wiederholen wollen, sollten Sie die Engine in der Oberfläche neu laden.

Rybka Forum

Wenn Sie mehr über den "Randomize"-Modus oder generell über Rybka erfahren wollen, können Sie unser Forum besuchen: www.rybkaforum.net

Nächste Schritte:

Die momentane Planung sieh so aus:

1) Rybka auf verschiedene mobile Systeme portieren. Das steht unmittelbar bevor, wahrscheinlich noch im Februar oder März 2007.
2) Rybka 3 (für den PC). Es gibt noch keine genauen Daten, aber es sollte irgendwann später in diesem Jahr werden.

Abschließend möchte ich Ihnen noch dafür danken, daß Sie Rybka erworben haben.

Vasik Rajlich


Rybka 2.2 FAQ

Was sind die Unterschiede zwischen Rybka 2.2 und Rybka 2.1?
Rybka 2.2 spielt deutlich stärker als Rybka 2.1. Vor allem taktische Möglichkeiten werden oft früher erkannt als in Rybka 2.1.
Es wurde ein kleines Blitzturnier (3+1) zwischen Rybka 2.1o und Rybka 2.2 gespielt. Rybka 2.2 gewann mit +111 =206 -55 (+51 Elo).
Auch andere, unabhängige Tests haben eine (deutliche) Verbesserung bestätigt (siehe "Unabhängige Tests" auf der Startseite).

Rybka 2.2n2 FAQ

Was sind die Gründe für das Update?
Der Hauptgrund war ein Bug im Programm, der dazu führte, daß Rybka seltsame Dinge ausgibt oder abstürzt (bei der Multi-Prozessor Version). Dieser Fehler ist nun beseitigt.
Allgemein ist der Code des Programmes sauberer, verschiedene Probleme dort solten jetzt beseitigt sein.

Was wurde seit Rybka 2.2 verändert?
Ich habe sehr lange am Multi-Prozessor-Code gearbeitet, ihn neu geordnet und bereinigt. Die Leistung der Multi-Prozessor-Version ist nun um etwa 5 Elopunkte höher. Die neue Version zeigt nun Knoten/s Werte an, die zusätzliche Prozessoren berücksichtigen (dabei wird aber die verschwendete Rechenarbeit herausgerechnet).
Man kann also die Stärke von verschiedenen Systemen mit den Knoten/s-Werten von Rybka bestimmen. Das System mit den höheren Knoten/s-Werten ist besser.

Außerdem wurden einige kleinere Dinge verändert und neue Parameter hinzugefügt:
a) "Display Current Move" (= Zeige momentanen Zug) - Standardmäßig aktiviert. Wenn diese Option nicht aktiviert ist, sendet Rybka keine Informationen über den Zug an, der gerade berechnet wird. Das ist eine Idee von Aaron Gordon, Sie können im Rybka Forum mehr darüber lesen. ich nutze Chess Assistant 9 für meine Tests und habe nie eine Verlamsung oder Leistungseinbrüche bemerkt, aber es gibt keinen Grund den Anwendern nicht die Möglichkeit zu geben, damit herumzuexperimentieren.

b) "Display PV Tips" (= Zeige PV Hinweise) - Standardmäßig deaktiviert. Wenn es aktiviert wird, zeigt Rybka die längste mögliche prinzipielle Variante anzeigen. Diese Varianten sind meist nicht besonders gut und können auch schwere Fehler enthalten. Aber genau wie bei "Display Current Move" gibt es keinen Grund den Anwendern nicht die Möglichkeit zu geben, damit herumzuexperimentieren.

c) "CPU Usage" (=Prozessornutzung) - 100 ist der Standardwert. Niedrigere Werte führen dazu, daß Rybka innerhalb der Suche "schläft" und so Rechenleistung für andere Prozesse freigibt. Das ist eine Alternative zu dem Prioritätensystem von Windows. Wenn Sie Probleme mit Ihrem System oder der graphischen Oberfläche haben, können Sie diesen Parameter verändern. Beginnen Sie bei 99 und tragen Sie immer kleinere Werte ein. Auf einigen Laptops, bei denen im Hintergrund sehr viele Anwendungen laufen und dadurch das System langsamer wird, ist diese Option sehr nützlich.

d) "Win Percentage to Hash Usage" (=Gewinnchancen statt Hashnutzung)- Standardmäßg deaktiviert. Wenn diese Option aktiviert wird, zeigt Rybka statt der aktuellen Nutzung der Hashtabellen die berechneteb Gewinnchancen in prozent an. Dieser Wert wird (z.B. bei Arena) meist im Fenster mit der Engineausgabe angezeigt.

Was ist mit dem "Contempt" Parameter passiert?
Den habe ich aus Versehen beim Aufräumen des Quelltextes von Rybka entfernt. Wenn Sie ihn unbedingt benötigen, sollten Sie einfach Rybka 2.2 nutzen. Sonst können Sie einfach auf Rybka 2.3 warten, dann ist er auf jeden Fall wieder da.

Warum werden Zugriffe auf die Endspieldatenbanken nicht angezeigt?
Das ist ein Fehler in Rybka 2.2n2, der in Rybka 2.3 behoben sein wird.

Rybka 2.1
26. Juli, 2006

FAQ

Was wurde seit Rybka 2.1 verbessert?
1) Unterstützung für mehrere Prozessoren
2) Mehr Endspielwissen, das Rybka zu verstehen hilft, daß in einigen Endspieltypen kleine Vorteile keine Bedeutung haben
3) Effizientere Suche (d.h. weniger Zeit wird auf wenig versprechende Varianten verwendet und mehr auf kritische Varianten)
4) Einige zusätzliche Parameter, die die Interaktion zwischen der Engine, der graphischen Oberfläche und dem Betriebssystem kontrollieren
5) Eine Reihe kleinerer Fehler wurde behoben und die Engine weiter optimiert

Welche Verbesserungen sind für Rybka 2.2 geplant?
1) Schachwissen hinzufügen
2) Verbesserung der Suche und der Multi-Prozessor-Unterstützung
3) Implementierung von taktischen Suchen, die stärker auf forcierte taktische Varianten achten und dem Benutzer schneller eine grobe Einschätzung der Stellung geben (d.h. klar gewonnen/klar verloren)

Kannst Du die Parameter von Rybka 2.1 erklären?

Parameter der Engine:

1) Display Draw Scores(=Zeige Remis-Werte):
Wenn dieser Parameter auf "false"(=falsch) gesetzt wird, werden während einer Partie Bewertungen zwischen -0.03 und +0.03 auf -0.03 und 0.03 gerundet. Dies verhindert, daß die graphische Oberfläche Remis anbietet. Dieser Parameter hat keinen Einfluss auf die Analyse mit Rybka.
2) Preserve Analysis(=Behalte Analyse): Wenn dieser Parameter auf "true" gesetzt wird, werden tiefe Einträge aus dem Speicher der Engine während der Analyse gespeichert. Das ist ganz nützlich, wenn man eine Partie analysiert und dabei von hinten anfängt. Die Berechnungen der tieferen Varianten werden gespeichert und in den früheren Stellungen der Partie benutzt. Der Speicher der Engine sollte geleert werden, bevor man diese Option nutzt. 3) Contempt(=Verachtung (von Remisen)): Wird benutzt um Remisen gegen schwächere Spieler zu vermeiden (oder gegen stärkere Spieler Remisen zu suchen). Ein positiver Wert bedeutet, daß Remisen vermieden werden (die Engine bevorzugt einen Nachteil von "Contempt XY" gegenüber einem Remis), ein negativer Wert führt dazu, daß Rybka Remisen sucht.
4) Outlook(=Ausschau): Je optimistischer dieser Parameter eingestellt wird, desto mehr Zeit verbraucht Rybka mit der Analyse von wahrscheinlich schlechten taktischen Varianten (wie z.B. solchen mit Figurenopfern), die aber sehr gut sein können, wenn sie funktionieren. Pessimistischere Einstellungen führen dazu, daß Rybka nicht danach sucht, sondern positionelleres Schach spielt.
5) Rate of Play(=Spielgeschwindigkeit): Stellt Rybka's Spielgeschwindigkeit in Partien ein. Beachten Sie, daß Rybka standardmäßig bereits relativ schnell spielt.
6) Time Usage(=Zeitnutzung): Bestimmt, ob Rybka ihren Zeitverbrauch der Stellung anpassen soll. In der Standardeinstellung nimmt sich Rybka in interessanten Stellungen deutlich mehr Zeit. Mit der Einstellung "constant" verbraucht Rybka immer gleich viel Zeit für jeden Zug.
7) Emergency Time Buffer(=Notfall-Zeitpuffer): Legt fest, wieviel Zeit sich Rybka mindestens aufhebt.


Parameter für Probleme mit dem System:

Überblick:
Auf einigen System kann es Probleme bei dem Austausch zwischen Engine und graphischer Oberfläche kommen. Dadurch reagiert z.B. die Oberfläche langsamer oder es treten andere Probleme auf. So können diese dazu führen, daß Rybka auf Zeit verliert oder Informationen zwischen Engine und Oberfläche ganz verloren gehen.
Diese Probleme scheinen auf Multi-Prozessor-Systemen häufiger aufzutreten, bei denen alle Prozesse die volle Kapazität benutzten.

Die folgenden Parameter sollen bei diesen Problemen helfen. Die Standardeinstellungen sollten solche Probleme bereits vermeiden, aber fortgeschrittene Nutzer können mit den Optionen herumspielen um die optimalen Einstellungen für ihr System zu erreichen.

8) Output(=Ausgabe): Ändert die Informationen, die von der Engine an die Oberfläche weitergegeben werden. Bei der Einstellung "Verbose"(=ausführlich) werden sehr viele Informationen ausgegeben, "Sparse"(=wenig) begrenzt die Ausgabe auf ein Minimum.
9) Engine Priority(=Enginepriorität): Rybka stellt ihre Priorität immer selbst ein, unabhängig von der Priorität in der sie von der Oberfläche gestartet wurde. Dieser Parameter stellt diese Priorität ein. "Normal" führt dazu, daß die Priorität des Hauptprozess von Rybka und der Prozesse der anderen Prozessoren (bei Multi-Prozessor-Systemen) auf "normal" gesetzt wird. Bei 'Low'(=Niedrig) wird die Priorität aller Prozesse auf "niedrig" gesetzt. Die Standardeinstellung "NormalAndLow"(Normal und niedrig) bewirkt, daß der Hauptprozess die Priorität "normal" erhält und die anderen Prozesse auf "niedrig" gesetzt werden, damit die Oberfläche mehr Ressourcen zur Verfügung hat.
10) IO Supplementation(=IO-Ergänzung): Wenn diese Option aktiviert wird, sendet Rybka ihren Zug nochmal, wenn sie bereits einen Zug ausgegeben hat und die Oberfläche für mindestens 0,5 Sekunden den Zug ignoriert (Dies ist für den Fall gedacht, daß Informationen, die von der Engine gesendet werden, völlig verschwinden.)
11) Compensate Lost Time(Kompensiere verlorene Zeit): Stellen Sie sich folgenden Fall vor: Rybka beginnt eine Suche mit 30 Sekunden auf ihrer Uhr. Sie sucht 2 Sekunden lang und spielt ihren Zug. Wenn sie jedoch den Befehl bekommt ihre nächste Suche zu starten, wird ihr mitgeteilt, daß sie nur noch 27 (statt der erwarteten 28) Sekunden auf der Uhr hat. Diese eine Sekunde wird "lost time"(=verlorene Zeit) genannt und wenn diese Option auf "true"(=wahr) gesetzt wird, wird Rybka annehmen, daß sie genau die gleiche Zeit bei der nächsten Suche verlieren will und daher ihren Zeitverbrauch ändern. (Dieser Parameter hat den Nachteil, daß er auf einigen Systemen und Oberflächen zu Problemen mit dem System und der Oberfläche führen kann.)
12) Server Buffer(=Serverpuffer): In einigen Fällen senden Schachserver die verfügbare Zeit für die Engine falsch angeben. Das ist normalerweise nur bei sehr langen Partien wichtig(mit mehr als 100 Zügen). Wenn diese Option ausgewählt wird, nimmt Rybka an, daß die wirkliche Zeit geringer ist als die Zeit, die von der Oberfläche gemeldet wird.
13) NalimovUsage(=Nalimov(-Endspieldatenbanken)-Nutzung): Für einige Nutzer kann die Nalimov Endspieldatenbankenunterstützung in Rybka 2 verschiedene Probleme verursachen. Ein neuer Wert "Never"(=nie) wurde hinzugefügt und wird die Standardeinstellung bleiben, bis ich mir ganz sicher bin, daß diese Probleme 100% gelöst sind.
Es wird natürlich empfohlen Endspieldatenbanken zu nutzen und daß die Oberfläche in Datenbankstellungen übernehmen kann.
14) Max CPUs: Diese Option legt einen Grenzwert für die maximale Zahl der genutzten Prozessoren fest. Bei dem Standardwert nutzt Rybka alle Prozessoren und startet für jeden Kern genau einen Prozess. Jeder Wert ab 1 ist in Ordnung.
Nutzer können diese Option nutzen um Rechenkapazität für andere Prozesse zu sparen.

Wenn Sie weitere Fragen haben, könnten die Rybka 2.0 Beta FAQ hilfreich sein.
Außerdem können Sie das Rybka Forum besuchen, um mehr über Rybka zu erfahren und Fragen (auf Englisch) direkt an den Programmierer (Vasik Rajlich) zu stellen.

Rybka 2.0 Beta (nur Multi-Prozessor)
10. Juni, 2006


Rybka 2.0 Beta ist die erste Veröffentlichung der Rybka 2 Serie. Jeder, der diese Version erworben hat, wird kostenlos die neue Versionen bis zum 13. Juni 2007 erhalten.

Der vollständige Rybka 2 Zeitplan ist folgender:

10. Juni: Rybka 2.0 Beta (nur Multi-Prozessor)
15. Juli: Rybka 2.1 (Multi-Prozessor und Version für nur einen Prozessor)
15. Nov.: Rybka 2.2 (Multi-Prozessor und Version für nur einen Prozessor)
12. Feb.: Rybka 2.3 (Multi-Prozessor und Version für nur einen Prozessor)


FAQ

Wieviel kostet Rybka 2?
Die Multi-Prozessor Version kostet 59 Euro. Die Version für nur einen Prozessor kostet 34 Euro.

Ich besitze ein AMD Dual-Core System. Wird es von der Multi-Prozessor Unterstützung profitieren?
Ja. Aus der Sicht von Programmen verhalten sich Systeme mit mehreren Kernen (fast) wie Multi-Prozessor Systeme und profitieren davon (fast) genauso viel. In diesen "FAQ" sind "Kern" und "Prozessor" austauschbar.

Wie werde ich Rybka 2.0 Beta und die folgenden Versionen Rybka 2.1, Rybka 2.2 und Rybka 2.3 erhalten?
Sie werden Links zum Herunterladen von Rybka per E-Mail erhalten. Bitte beachten Sie, daß wir diesmal keine Yahoo-Group nutzen werden, wie es bei Rybka 1 war.

Gibt es einen Kopierschutz?
Nicht für die Rybka 2.0 Beta Version. Ich persönlich denke, daß es Zeitverschwendung für alle ist, aber ich behalte es mir vor, das zu ändern und einen Kopierschutz für spätere Versionen von Rybka 2 hinzuzufügen. (Der Grund dafür wird später klar sein.)

Multi-Prozessor Unterstützung

Wenn Sie ein normaler Nutzer sind, nehmen Sie die Rybka 2.0 Beta.exe, installieren sie wie Sie jede andere UCI-Engine installieren würden und benutzen Sie wie eine ganz normale UCI-Engine. Von der Installation und Benutzung her gibt es keine großen Unterschiede zur Version für nur einen Prozessor.
Aus meiner Erfahrung können Besitzer von Computern mit mehreren Prozessoren sehr gut über Hardware und Leistung informiert. Wenn das auch auf Sie zutrifft und Sie besser verstehen wollen, wie die Multi-Prozessor Version funktioniert und welche Leistung zu erwarten ist, sollten Sie die folgenden FAQ lesen.

Ich werde mit ein paar einfacheren Fragen beginnen ..

Ist die Programmierung einer Multi-Prozessor-Engine schwierig?
Eine Multi-Prozessor Version mit einem leichten Geschwindigkeitszuwachs aus einer Engine zu basteln ist nicht so schwer. Aber die Engine so zu programmieren, daß sie die Prozessoren optimal nutzt ist eine endlose Arbeit.
ist die Multi-Prozessor Leistung wichtig?
Es gibt hier zwei Punkte:
Der eine ist, daß Experten davon ausgehen, daß Ende 2007 etwa 70% der neuen Computer mehr als einen Kern haben werden. Das ist der offensichtlichere Punkt.
Der weniger offensichtliche Grund ist, daß Schwächen in der Multi-Prozessor-Unterstützung bei Systemen mit vielen Kernen immer deutlicher werden. Auf einem System mit 2 Kernen ist selbst eine schlechte Unterstützung recht nah am Optimum. Wenn sich aber die Zahl der Kerne erhöht wird der Unterschied zwischen einer guten und einer schlechten Unterstützung immer deutlicher. Mehr dazu weiter unten.

Welchen Geschwindigkeitszuwachs erreichst Du bei deiner Multi-Prozessor Unterstützung?
OK, hier beginnt der Spaß. Die standardmäßige Unterstützung in Rybka 2.0 ergibt folgenden Gewschwindigkeitszuwachs:

2 Prozessoren: 1.7
4 Prozessoren: 2.8
8 Prozessoren: 4.4

Hier ist der Zuwachs als effektiver Zuwachs an Geschwindigkeit definiert. In anderen Worten: Wenn Sie einen Wettkampf zwischen Rybka auf zwei Prozessoren und Rybka auf einem Prozessor spielen und der Version für nur einen Prozessor 1.7 mal mehr Zeit geben (ohne Pondern), ist der Kampf ausgeglichen.

Da die programmierte Unterstützung sehr sicher ist, gibt es kaum Zweifeln an den obigen Werten. Sie weichen nicht mehr als etwa 5% von den tatsächlichen Werten ab. Wenn man eine bessere Unterstützung einbauen will, bei der die Suche stark von der Suche der Version für nur einen Prozessor abweicht, ist es viel schwieriger den Gewschwindigkeitszuwachs festzustellen. In diesem Fall wäre es vielleicht notwendig die tatsächliche Spielstärke direkt zu messen, um wirklich sicher zu sein.

Um wieviel stärker wäre eine perfekte Multi-Prozessor Unterstützung?
Hier ist "perfekt" eine Unterstützung, bei der der Geschwindigkeitszuwachs 2.0 für zwei Kerne, 4.0 für vier Kerne, usw. ist. Es ist (vielleicht) nicht ganz möglich das zu erreichen. Diese Frage ist nur relevant für uns, um einen Grenzwert für die mögliche Multi-Prozessor-Leistung festzulegen.

Die folgende Tabelle zeigt wie die aktuelle Leistung von Rybka sich von der theoretischen Obergrenze unterscheidet, wenn man die Zahl der Kerne erhöht.

# der Kerne Geschwindigkeitszuwachs Obergrenze Obergrenze / Geschwindigkeitszuwachs Elo Unterschied zw. Obergrenze und aktuellem Wert
2 1.7 2.0 1.17 ~11.9
4 2.8 4.0 1.42 ~29.4
8 4.4 8.0 1.81 ~56.7

Die Werte der letzten Spalte wurden mit folgender Gleichung berechnet: ((Obergrenze)/(aktueller Geschwindigkeitszuwachs)-1.0)*70)
Diese Formel geht also davon aus, daß sich bei einer Verdopplung der Geschwindigkeit die Elo um 70 Punkte erhöht.
Der Punkt ist, daß für die Systeme mit 2 Kernen, die heute üblich sind, die Multi-Prozessor Unterstützung von Rybka 2.0 Beta nahezu perfekt ist. Für größere Rechner wird sich aber noch weitere Arbeit an der Multi-Prozessor Unterstützung lohnen.

Planst Du also noch die Multi-Prozessor Unterstützung zu verbessern?
Ja. Tatsächlich wird die Arbeit schon fortgesetzt - die veröffentlichte Multi-Prozessor Unterstützung ist einfach die sicherste, die ich im Moment habe. Wenn Sie einen Computer mit 4 oder mehr Kernen haben, können Sie noch eine Steigerung der Leistung erwarten.

Warum sind die Knoten pro Sekunde Raten so niedrig bei der Multi-Prozessor Version?
Es werden nur die Knoten des Hauptprozesses gezählt. Die Knoten pro Sekunde spiegeln die MP Effizienz sowieso nicht wider.

Warum nutzt du Prozesse und nicht "Threads"?
Ich experimentiere immer noch damit herum, aber zum jetzigen Zeitpunkt ist es so sicherer, vor allem wenn man NUMA (non-uniform memory architecture) Systeme benutzt. Prozesse haben ihre eigene Speicherzuordnung und es wird so sichergestellt, daß das System seinen Speicher dem richtigen Segment zuweist.

Eine schöne Konsequenz ist, daß man Rybka mit Programmen wie dem "task manager" beobachten kann.

Wenn ich denn Hashspeicher auf 512 MB setze zeigt der Task manager für jeden Prozess 512 MB an. Ist das richtig?
Nein - das ist ein Fehler im "task manager" ist gibt nur eine Hashtabelle, die von den Prozessen geteilt wird.

In anderen Worten kann man fast die Hälfte des Arbeitsspeichers für die Hashtabelle benutzen, auch wenn der "task manager" etwas anderes anzeigt

Was ist der Sinn der "Max CPUs" Option?
Sie setzt eine Obergrenze für die Anzahl der Kerne, die von Rybka genutzt werden. Wird der Standardwert beibehalten, so startet Rybka immer einen Prozess für jeden Kern im Computer.

Dadurch können Anwender CPU-Zeit für andere Prozesse nutzen.

Muss man den "Max CPUs" Wert mindestens auf 2 setzen?
Nein. Jeder Wert von mindestens 1 ist gut.

Gibt es eine Grenze für die Prozessorenzahl, die Rybka 2.0 Beta nutzen kann?
Theoretisch nein. Wir haben bis zu 8 Prozessoren getestet. Wenn Sie eine größeren Rechner haben, wäre ich daran interessiert auf ihm meinen Benchmark laufen zu lassen.

Gibt es irgendwelche Interaktionen zwischen der 32-bit und 64-bit Version und der MP Unterstützung?
Nein. Die 64-bit Version bleibt weiterhin etwa m60% schneller als die 32-bit Version, egal wieviele Prozesse genutzt werden.