Hinweise zu UCI-Engines
Hinweise zu UCI-Engines |
|||
Hinweise zu UCI-Engines |
Beim Einsatz der unterschiedlichen Engines unter der Programm-Oberfläche muß man wissen, daß die UCI-Engines im Unterschied zu "nativen" Engines wie Kommodo, Shredder, Junior oder Tiger über eine andere Schnittstelle mit der Programmoberfläche kommunizieren.
Wenn man eine native und eine UCI-Engine parallel analysieren lässt, dann ist die Verteilung der Ressourcen nicht 50:50, sondern die UCI-Engine bekommt etwas weniger CPU-Zeit. Der Grund liegt in der Prozessverwaltung von Windows. Der Vordergrund-Prozess bekommt eine höhere Priorität und damit mehr Rechenzeit.
Native Engines, wie z.B. die Fritz-Engines, laufen alle als Threads, so dass die Verteilung der Rechenzeit gleich bleibt, egal ob das Programm im Hintergrund oder Vordergrund läuft. UCI-Engine sind jedoch Prozesse. Normalerweise ist die Oberfläche der Vordergrundprozess, die UCI-Engine ein Hintergrundprozess. Da die Shredder-Engine im Vordergrundprozess läuft, bekommt sie mehr Rechenzeit. Man kann das ändern, indem man beide Prozesse in den Hintergrund schickt. Am einfachsten geht das durch Öffnen des Task-Manager, der dann im Vordergrund sein muss. Das erkennt man daran, daß die Titelleiste des Taskmanagers blau und nicht grau unterlegt ist.
In diesem Fall sind beide Engines als Hintergrundanwendung aktiv, beide bekommen dieselbe Rechenzeit. Jedes andere Programm erfüllt natürlich denselben Zweck. In Windows gibt es auch eine Einstellung, mit der man das ändern kann.
Normalerweise steht diese auf "Optimieren für Anwendungen", man kann sie umschalten auf "Optimieren für Dienste". Schaltet man um, bekommen beide Engines die gleiche Rechenzeit. Das ist in der Regel nicht empfehlenswert, weil Windows in der Bedienung hakelig wird. Gedacht ist die Option für Server, bei denen die Priorät der Dienste nicht vom Status Vordergrund/Hintergrund abhängen soll.
Auf einem Dual-Rechner gibt es keine Probleme, solange jede Engine nur einen Prozessor benutzt. Auch hier bekommen die beiden Engines die gleiche Rechenzeit, da sie sich nicht gegenseitig stören.
Das Problem tritt hier erst bei 3 Engines auf, da erst dann die vorhandenen Resourcen geteilt werden müssen. Es tritt nicht auf einem Single-Rechner mit zwei UCI Engines oder zwei nativen Engines auf, da in beiden Fällen immer beide Engines gleich behandelt werden.