UciFilter


Auf einigen Computern gibt es Probleme mit der CPU-Auslastung unter Arena. In den ersten Sekunden der Bedenkzeit für jeden Zug ist die CPU-Auslastung extrem gering. Die genauen Ursachen sind mir nicht bekannt, scheinen aber zumindest teilweise an Windows zu liegen. Umgehen kann man den Fehler, indem Statusinformationen, die die Engines in schneller Folge an Arena senden ausfiltert. Das tut UciFilter.


UciFilter sollte für Engines verwendet werden, für die der Taskmanager die CPU-Auslastung wie im oberen Teil der Grafik oder schlechter anzeigt. Es braucht nicht verwendet werden, wenn die CPU-Auslastung so aussieht wie im unteren Teil.


On some Computers there are problems with CPU usage under Arena. In the first seconds of the thinking time for every move, the CPU usage is extremely low. The exact reasons for that are unknown to me. They seem to come partly from windows. One can work around that bug by filtering out status informations that the engines send to arena. That is what UciFilter does.


UciFilter should be used for engines, for which the task manager shows a CPU usage like in the upper part of the following image or worse. It is not neccessary when the CPU usage looks like in the lower part.




Taskmanager: CPU-Auslastung, Aktualisierungsgeschwindigkeit hoch

task manager: CPU usage, update speed high



Installation


Anstelle der Engine, deren Ausgaben gefiltert werden sollen, wird UciFilter wird wie eine ganz normale UCI-Engine unter Arena installiert. Die Engine selbst wird dort mit komplettem Dateipfad unter Kommandozeilen Optionen eingetragen unter Motoren Verwaltung / Details / Ausgewählte Engine / Kommandozeilen Optionen. Wenn sich Leerzeichen im Dateipfad befinden, muß dieser in Anführungszeichen gesetzt werden.


Instead of installing an engine whose output is to be filtered, UciFilter must be installed like a normal UCI engine. Then the file path to the engine itself is entered under Engine Management / Details / Selected Engine / Command Line Options. When there are blanks in the file path, it has to be put in quotation marks.



Beispielinstallation

Example for installation




Download UciFilter



Optionen / options


Beim Konfigurieren der Engine erscheinen unter deren eigenen Optionen die Optionen von UciFilter. Diese enden alle auf @UciFilter.


When an Engine is configured, the options from UciFilter appear under the engines own options. They all end on @UciFilter.


Option TimeCurrmove@UciFilter

Zeit in Millisekunden, während der Statusinformationen ausgeflitert werden, die „currmove“ enthalten.

Time in milliseconds in which status information containing „currmove“ is filtered.


Option TimeInfo@UciFilter

Zeit in Millisekunden, während der alle anderen Statusinformationen ausgeflitert werden.

Time in milliseconds in which any other status information is filtered.


Option TimeQuit@UciFilter

Zeit in Millisekunden, die UciFilter nach einem quit-Kommando auf die Beendigung einer Engine wartet. Nach Ablauf dieser Zeit wird die Engine per TerminateProcess beendet.

Time in milliseconds, UciFilter waits for the engine to terminate after a quit command. After that time, the engine is terminated by TerminateProcess.


Option RemoveNonUci@UciFilter

Filtert alle Ausgaben der Engine aus, die nicht dem UCI-Protokoll entsprechen. Das sind alle Zeilen, die nicht mit bestmove, copyprotection, id, info, option, readyok oder uciok beginnen.

Removes all engine output, that is not UCI. These are all lines that do not begin with bestmove, copyprotection, id, info, option, readyok or uciok.


Option RemoveStop@UciFilter

Filtert stop-Kommandos aus, die Arena an die Engine sendet, wenn diese nicht rechnet. Das macht es möglich, einige Engines zu benutzen, die sonst nicht unter Arena laufen würden. Diese Situation kann weder von Arena noch von UciFilter hundertprozentig sicher erkannt werden. Engines, die diese Option benötigen können auch mit UciFilter mit extrem geringer Wahrscheinlichkeit abstürzen.

Removes stop commands by arena to the engine, when the engine is not thinking. This option makes it possible, to use some engines, which else would not run under arena. This situation can neither be recognised by Arena nor by UciFilter in every case. Engines that depend on this option may crash even with UciFilter, but the chance is extremely low.