Ajedrez, Infoajedrez, Motores

Instalar motores UCI en programas ChessBase

Este artículo está orientado a las personas que aún no saben que existen montones de motores de ajedrez gratuitos mucho más fuertes que los que vienen con los propios programas de la casa ChessBase, ya sea el propio gestor de bases de datos ChessBase o bien cualquier programa de juego tal como Fritz, que sigue siendo el más conocido de todos ellos.

Por otra parte, tampoco saben que dichos motores se pueden bajar de la página de su creador y se pueden instalar sin problemas en cualquiera de los mencionados programas para analizar o jugar contra ellos.

1. Introducción

En las líneas que siguen vamos a explicar cómo se instala un módulo o motor de juego (“engine” en inglés) en cualquier programa de la casa ChessBase, ya sea el propio ChessBase o bien Fritz, que son los más conocidos, aunque por extensión incluye a KomodoHoudini, RybkaShredder, Junior, etc.

En primer lugar conviene dejar claro que la mayoría de los motores actuales son de tipo UCI (“Universal Chess Interface”) y para utilizarlos sólo se necesita tener instalado un GUI (“Interface Gráfico de Usuario” o “Graphic User Interface” en inglés), que puede ser cualquier programa de la casa ChessBase (Fritz, Rybka, Hiarcs, Shredder, Junior…) o bien otros programas gratuitos tales como Winboard.

Por tanto, no hay que confundir por ejemplo el motor de juego Fritz 12 (un archivo individual muy pequeño, de menos de 1 MegaByte, que es el que realmente juega) con el GUI Fritz 12, que es el programa que se instala desde un DVD y con el que podemos jugar, ver partidas de una base de datos, guardar nuevas partidas o analizarlas. Además, una vez instalado un motor en cualquier GUI de la casa ChessBase, éste automáticamente se puede utilizar desde cualquier otro programa de ChessBase.

Como podéis ver en la prestigiosa web CCRL (“Computer Chess Rating List“), Komodo 9 se ha posicionado como nuevo número uno nada más salir al mercado, por delante de Komodo 8 y Stockfish 6, aunque a poca distancia de ellos. Para los que no estéis al tanto de estas cosas, sólo mencionaré que le saca más de 200 puntos Elo estimados a Deep Fritz 14, última versión de Fritz que salió a la venta el año pasado.

2. Descargar el motor

Los motores UCI constan realmente de un solo archivo ejecutable (es decir, un archivo con un nombre que termina con la extensión “.exe”), pero normalmente se distribuyen junto con otros archivos, por ejemplo con versiones para distintos sistemas operativos, o bien archivos con explicaciones, o incluso una carpeta con el código fuente del programa cuando éste es gratuito (es decir, el código en un lenguaje de programación que han escrito los programadores del módulo para que cualquiera pueda contribuir a mejorarlo).

Así que lo primero que debemos hacer es conseguir el archivo del motor, ya sea comprándolo o bajándolo de su web en el caso de que sea un motor gratuito.

Por ejemplo, el mejor motor de juego gratuito en la actualidad es Stockfish 6 (con permiso del novedoso Sugar que está empezando a despuntar… y otros más veteranos que siguen en la cresta como son Fire, Gull, Equinox o Critter). La web de Stockfish es https://stockfishchess.org, y ahí en la página principal podéis ver un botón bien gordo “Download Stockfish 6 for Windows” para bajar el archivo del motor. Si tenéis otro sistema operativo que no sea Windows, o bien queréis ver las versiones existentes, basta con ir a la sección “Download” que aparece en el menú de la parte superior.

Una vez que tengáis guardado el archivo en una carpeta de vuestro disco duro, pasamos al apartado siguiente. Sobre dónde se guarda el archivo, vosotros decidís. Cada navegador, usuario y equipo es un mundo. Si no sabéis dónde está, buscad en una carpeta llamada “Downloads” o “Descargas” de vuestro disco duro…

3. Descomprimir el archivo del motor

Una vez descargado el archivo, abrimos el Explorador de archivos de Windows (ya sea desde “Mi PC“, “Equipo” o cualquier otro enlace que tengáis) y vais a la carpeta donde lo hayáis descargado.

Aquí tampoco puedo saber qué programa tenéis cada uno para descomprimir archivos (o si no tenéis ninguno, en cuyo caso depende de que el propio sistema operativo sea capaz de descomprimirlo, como ocurre con los archivos “.zip” en Windows 7). Si tenéis WinRAR, WinZIP o los gratuitos 7-Zip y PeaZip, bastará con hacer clic sobre el archivo con el botón derecho del ratón y seleccionar la opción “Extraer aquí” o similar.

Si no sabéis si se va a crear una nueva carpeta (a mí me gusta tener cada cosa en su propia carpeta…), también podéis elegir la opción “Extraer en…” o similar para indicar un nombre de carpeta concreto.

El resultado es que tendréis descomprimido el archivo o archivos del motor. Suelen aparecer varios archivos ejecutables, o al menos dos que corresponden a las versiones de 32 y 64 bits del motor. Por ejemplo, en el caso de Stockfish 6 os interesa una carpeta llamada “Windows” donde hay 4 archivos ejecutables:

  • stockfish-6-32.exe: para Windows de 32 bits.
  • stockfish-6-64.exe: para Windows de 64 bits.
  • stockfish-6-bmi2.exe: para microprocesadores “Haswell” (todos los Intel Core i3/5/7 de cuarta generación fabricados a partir de junio de 2013 con la nomenclatura i3/5/7-4nnn o similar).
  • stockfish-6-sse42.exe: para microprocesadores Intel Core i3/5/7 de cualquier generación o los AMD Phenom-II y posteriores.

En el caso de Komodo 9 aparecerá también una carpeta llamada “Windows” pero en este caso con solo 2 archivos:

  • komodo-9.01-32bit.exe: para Windows de 32 bits.
  • komodo-9.01-64bit.exe: para Windows de 64 bits.

¿Cuál elegir de todo ellos?

4. Identificar el sistema operativo

Para poder instalar el archivo del motor adecuado es necesario identificar si disponemos de una versión de Windows de 32 o de 64 bits. No entraremos en detalles, pero un programa de 64 bits funciona más rápido que el mismo en versión de 32 bits. Así que lo lógico es instalar una versión de 64 bits del motor si disponemos de una versión de Windows de 64 bits, aunque también funcionará la versión de 32 bits, pero analizará menos posiciones por segundo (es decir, jugará ligeramente peor). Por el contrario, la versión del motor de 64 bits no funciona en una versión de Windows de 32 bits.

Para consultar nuestra versión de Windows basta con ir a la ventana de propiedades del sistema. Por ejemplo en Windows 7 hay que ir a “Inicio – Panel de control – Sistema”. Sin embargo, también se puede acceder a dicha ventana pulsando la combinación de teclas “Windows+Pausa”.

En la ventana de “Propiedades del sistema” hay que fijarse en el apartado “Sistema”, en mi caso aparece así:

Es decir, se trata de un sistema operativo de 64 bits corriendo en un microprocesador Intel Core i7-920. Por tanto, el archivo del motor que debería elegir en mi caso sería:

  • “stockfish-6-64.exe” o bien “stockfish-6-sse42.exe” en el caso de Stockfish,
  • y “komodo-9.01-64bit.exe” en el caso de Komodo.

5. Copiar el archivo del motor a la carpeta “Engines”

Una vez identificado el archivo del motor adecuado para nuestro sistema, ya podemos instalarlo en el GUI que queramos. Aunque podemos dejar el archivo en la carpeta donde lo hemos descomprimido, yo recomendaría poner todos los motores en una misma carpeta de nuestro disco duro.

Lo más adecuado es copiarlo a la carpeta de motores (“engines”) de ChessBase. Por defecto esta carpeta ya la creó el propio GUI cuando lo instalasteis en vuestro ordenador, normalmente en “C:\Archivos de programa\Chessbase\Engines”). Personalmente prefiero tener los motores fuera de la carpeta de programas, así que yo los copio a una carpeta que creé en “Mis documentos\Chessbase\Engines”. Es cuestión de gustos…

Por tanto, sólo tenéis que decidir vuestro sitio preferido y copiar/pegar allí el archivo en cuestión.

6. Instalar el módulo en ChessBase/Fritz

Bien, hemos llegado a la parte de instalación, que es de lo más sencillo. Sin embargo, la opción que debemos elegir puede encontrarse en un lugar diferente en función del GUI que utilicemos. Eso sí, recordemos que una vez que lo instalemos digamos desde Fritz, automáticamente lo tendremos disponible por ejemplo en ChessBase y viceversa. No hay que instalarlo por separado en cada programa.

Veamos algunos ejemplos:

6.1. ChessBase 2009

Aunque ya está algo desfasado (¡6 años en informática son muchos!), yo sigo utilizándolo para algunas cosas porque es una versión ligera y rápida.

Aquí primero debemos abrir una base de datos de partidas y a continuación debemos abrir una partida de dicha base de datos (o bien directamente podemos abrir un tablero nuevo de partida). Una vez abierto el tablero, seleccionaremos la opción del menú Módulo – Crear módulo UCI, accediendo al siguiente cuadro de diálogo:

Aquí sólo habrá que hacer clic en el botón de selección de archivos (señalado en rojo en la imagen), buscar en nuestras carpetas el archivo del motor que queremos instalar como se explicó anteriormente, seleccionar el archivo, aceptar y pulsar finalmente “Ok”. De esta forma el motor ya nos aparecerá en la lista de motores instalados y podremos utilizarlo para realizar nuestros análisis.

6.2. ChessBase 11/12

Aquí también tendremos que abrir un tablero de partida, pero en este caso la opción Crear módulo UCI aparece directamente en la pestaña “Inicio” de la cinta de opciones:

El resto es exactamente igual que en el caso anterior.

6.3. Fritz 12/13

Nada más abrir Fritz 12/13, iremos a la pestaña “Módulo” de la cinta de opciones, y ahí encontraremos la opción “Crear módulo UCI”:

7. Núcleos del microprocesador para el motor

Para finalizar me gustaría hablar de los núcleos del microprocesador de nuestro PC que podemos o debemos utilizar para analizar con el motor.

Cuantos más núcleos utilice un motor, más variantes y subvariantes podrá analizar simultáneamente, y por tanto más fiables serán los resultados, es decir, mejor jugará.

Sin embargo, no debemos asignarle al motor toda la capacidad del proceso del micro porque entonces el sistema se quedará prácticamente parado al no disponer de recursos para el resto de sus “quehaceres” habituales. No es que hayamos hecho nada mal, sencillamente le estamos intentando exigir más de lo que puede dar de sí…

Para no extendernos sobre el tema, creo que la forma más fácil de ver el número de núcleos disponible en nuestro sistema es acudir al “Administrador de tareas” de Windows. Para abrirlo se puede situar el puntero del ratón en una zona vacía de la Barra de tareas (parte inferior de la pantalla), hacer clic derecho y seleccionar la opción Iniciar el Administrador de tareas”. O también se puede pulsar directamente la combinación de teclas Control+Mayús+Esc.

Una vez abierto, se selecciona la pestaña Rendimiento, que en mi caso muestra el siguiente aspecto:

En el apartado Historial de CPU se pueden apreciar 8 barras de uso de CPU (“Central Processing Unit” en inglés, que no es más que el nombre técnico que se le da al microprocesador), lo que indica que mi microprocesador tiene 8 núcleos de proceso (bueno, en realidad sólo dispone de 4 núcleos físicos y 8 núcleos lógicos, pero ésta ya es otra historia…). Yo normalmente selecciono en el motor 4 núcleos de análisis y me va bien.

Los núcleos se pueden seleccionar en varios sitios en ChessBase/Fritz. Por ejemplo en el panel de análisis:

  • Se puede hacer clic en el botón  para seleccionar el número de núcleos a utilizar.
  • También haciendo clic en  para acceder al cuadro de módulos (a veces tarda un ratillo en abrirse…) y seleccionando el botón “Propiedades del módulo”. En las propiedades del módulo los núcleos suelen aparecer con el nombre “Threads” (que significa “hilos de ejecución”):

Y esto es todo. Espero que este sencillo manual os sea de ayuda…

Saludos. 

13 Comments

  1. Oliver

    Muy buena ayuda, sería bueno que hagas uno instalando Modulos UCI pero en ANDROID

  2. Anthony

    Muy bien explicado! Muchas gracias.

  3. ricardo

    gracias por la explicación pero una pregunta hay forma de acelerar el modulo

    • Juan A. R. Parra

      Hola, Ricardo.
      Si te refieres a que el módulo analice más posiciones por segundo, como comenté en el artículo, depende de los hilos de ejecución que asignes al módulo para analizar. Es decir, si el microprocesador admite un máximo de 8 hilos (threads) y le asignas los 8, será lo más rápido que pueda analizar, aunque ya comenté que así no dejarás nada libre para que Windows realice otras tareas, y tendrás la impresión de que el ordenador está casi parado. Eso sí, seguramente notarás que los ventiladores hacen más ruido porque giran más rápido para disipar el aumento de calor (la capacidad de proceso siempre genera calor…).
      Si quieres que el módulo profundice más en el análisis de una determinada posición, la única posibilidad es dejarlo más tiempo analizando, aunque todo tiene un límite y al cabo de 5, 10 o 15 minutos verás que ya prácticamente no se mueven los análisis porque la profundidad a la que ha llegado el módulo tiene tal número de ramificaciones que el microprocesador ya no puede con ellas.
      Para que te hagas una idea, Stockfish puede analizar de media (porque depende de cada posición) unos 6 u 8 millones de posiciones por segundo en mi antiguo Intel Core i7-920 2.66GHz analizando con 4 hilos. Mientras que el i7-5960X 4,5GHz (es decir, de quinta generación de hace un par de años que todavía se venden en el mercado a buen precio), analiza unos 20 millones de posiciones por segundo. Puedes ver una comparativa en:
      https://sites.google.com/site/computerschess/stockfish-chess-benchmarks
      Esto es como decir que Stockfish en esos micros aplastaría sin contemplaciones a Stockfish en mi “viejo” ordenador…
      Pues esto no es nada, porque los últimos AMD Ryzen Threadripper llegan hasta los 40 millones y los novísimos Intel Core i9-7960X se van nada menos que hasta los 75 millones de posiciones por segundo (claro que hay que desembolsar más de 1000 o 2000 dólares solamente por el micro…).
      http://www.ipmanchess.yolasite.com/amd—intel-chess-bench.php
      En esta gráfica puedes ver incluso ordenadores con placas bases especiales que admiten varios de estos microprocesadores y alcanzan la friolera de 277 millones de posiciones por segundo.
      Saludos.

  4. Ramón Au Cardero

    Y que tamaño de tablas hash poen en estas máquinas modernas para analizar una posición.

    • Juan A. R. Parra

      Hola, Ramón.

      Siento no haber podido contestarte antes…
      En primer lugar, el tamaño de las tablas hash depende de la velocidad del microprocesador, del tiempo medio que vas a analizar cada jugada y, por supuesto, de la cantidad de memoria RAM del ordenador. Si tenemos unos pocos GBs y los utilizamos casi todos en las tablas hash, Windows usará “memoria virtual” (es decir, utilizará memoria simulada en disco), y conseguiremos un efecto totalmente contrario ralentizando enormemente la capacidad de las tablas hash.

      Dicho esto, existe una fórmula aproximada para calcular el tamaño de tablas hash teniendo en cuenta estos factores:

        Tamaño hash = (T x S / 100) MB

      siendo T el tiempo medio de análisis en segundos y S (speed) la velocidad media de análisis en kN/s (kilonodos por segundo). Tienes una explicación aquí:
      http://www.cruxis.com/chess/manual/index.html?some_frequently_asked_question.htm

      Existe una pequeña aplicación llamada HasTable para realizar este cálculo. La puedes descargar aquí:
      http://upd.webhispana.net/download.php?id=HashTable

      Un saludo.

  5. Ramón Au Cardero

    En la carpeta del stockfish viene un ejecutable stockfish.popcnt este para que procesadores es.
    Yo tengo un I7 6700HQ

    • Juan A. R. Parra

      Hola, Ramón.

      Las versiones estándar, POPCNT y BMI2 de los motores están relacionadas con el juego de instrucciones en código máquina de las que dispone el microprocesador. Esto es difícil de explicar en dos palabras, ya que nos meteríamos en el terreno de la arquitectura de procesadores y de la programación, pero si te interesa puedes encontrar información sobre el tema en Internet (por ejemplo https://en.wikipedia.org/wiki/SSE4). Quédate con que existen instrucciones internas del microprocesador POPCNT/BMI2 que permiten realizar cálculos en un solo paso o de forma más rápida que utilizando varias instrucciones estándar.

      No sé de memoria qué versión de motor soportaría tu microprocesador, pero es posible que cualquiera de las tres. Yo utilizo POPCNT, pero mi i7 es antiguo, así que posiblemente el tuyo también soporte BMI2. En cualquier caso, no hay problemas en probar cualquiera de ellas. Lo pones a analizar, y si no funciona, sencillamente es que no lo soporta.

      Para ver si es mejor POPCNT/BMI2, utiliza el benchmark que integran los programas de ChessBase, o bien sencillamente analiza una misma posición con ambas versiones y fíjate en los kilonodos por segundo que aparecen a la derecha. De todas formas, juraría haber visto una comparativa en la que normalmente se obtenían mejores resultados con POPCNT que con BMI2.

      Un saludo.

  6. Ramón Au Cardero

    Muchas gracias por las respuestas.

  7. Ramón Jesús

    Buenos días, Juan. ¿Es posible analizar a la vez con 2 o más módulos simultáneamente?
    Gracias. Saludos.

    • Juan A. R. Parra

      Hola, Ramón.

      Siguiendo el procedimiento descrito en el artículo, se pueden instalar todos los motores que se deseen.
      Cualquier partida se puede analizar con varios módulos a la vez, sin más que elegir la opción “Módulo – Añadir apuntador”.

      De la misma forma, en ChessBase puedes tener varias partidas abiertas, analizando cada una de ellas con uno o varios módulos.

      Ahora bien, ya he comentado en el propio artículo y en otros comentarios, que los módulos consumen CPU, es decir, capacidad de proceso del microprocesador del ordenador. Si utilizas todos los núcleos o hilos de ejecución (“threads”) de tu procesador para analizar con varios módulos simultáneamente, dejarás tu PC prácticamente “congelado”.

      Además, al tener que asignar menos núcleos a cada módulo, éstos serán más lentos y analizarán peor. Es decir, no es lo mismo analizar una partida con un sólo módulo utilizando 8 núcleos o hilos de ejecución del procesador, que analizar con 8 módulos a la vez utilizando cada uno un solo núcleo. En este segundo caso los análisis serán mucho menos “fiables”…

      Espero haber respondido a tu pregunta.

      Un saludo.

  8. RAMON JESUS ALTÉS

    Buenos días, Juan.
    Tu respuesta me parece bastante completa. Responde y amplía mi consulta. Muchas gracias!
    Además de saber si el programa lo podía hacer, siendo que sí, trataba de comparar los módulos dos a dos, para ver con cuál debía quedarme, Houdini, Komodo, Stockfish… El que tengo instalado es Houdini, que a mí me va bien. Si no es conveniente analizar con dos a la vez, entiendo que será mejor analizar con uno y después analizar con el otro, aunque me gustaría comparar las jugadas de ambos módulos en directo, pero bueno, apunto las jugadas de un módulo y después la compararé con las del otro.
    Un afectuoso saludo.
    Ramón Jesús.

    • Juan A. R. Parra

      Hola, Ramón.

      Si quieres saber qué módulo, en general, es mejor, te recomiendo consultar CCRL (http://www.computerchess.org.uk/ccrl/4040/), donde están permanentemente enfrentándolos y tienes listas de la fuerza estimada de cada uno (si le das a “Complete list” verás distintas versiones de cada módulo). Claro que volvemos al tema del hardware, es decir, no jugarán igual en los ordenadores de CCRL que en el tuyo.

      Si quieres compararlos en tu ordenador, puedes analizar con 2 a la vez, más que nada por ver las opiniones y valoración de cada uno en distintas posiciones. Teniendo en cuenta que los mejores módulos juegan muy bien, a veces es más cuestión de gustos.

      Otra posibilidad es que los enfrentes en torneos en tu propio ordenador, cosa que no te permiten los programas ChessBase pero sí los interfaces de juego de Fritz, Komodo o Houdini, o sea, lo que llaman los “ChessProgram”. En ellos tienes varias opciones, como enfrentamiento de módulos o torneo entre módulos. En estas pruebas es siempre importante que jueguen en las mismas condiciones, lo que básicamente se traduce en desactivar la opción “Pensar siempre”, asignarles el mismo tamaño de tablas hash, tablas de finales, un mismo libro de aperturas (por ejemplo Perfect 2017 es un libro especial para esto con sólo 8 jugadas en cada línea de apertura), desactivando el interno que incorporan algunos módulos, o bien no ponerles ningún libro de aperturas, lo cual siempre resulta interesante para ver cómo se desenvuelven al inicio. El tiempo por partida ya depende de tu paciencia, pero es conveniente que siempre sea con incremento (por ejemplo, 1 minuto + 10 segundos, que se traduce en 11 minutos para 60 movimientos), y también conviene que sean torneos a varias vueltas, para que cada módulo se enfrente varias veces con los demás.

      Un saludo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_bye.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_good.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_negative.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_scratch.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_wacko.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_yahoo.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_cool.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_heart.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_rose.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_smile.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_whistle3.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_yes.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_cry.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_mail.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_sad.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_unsure.gif 
http://guapaweb.skn1.com/wp-content/plugins/wp-monalisa/icons/wpml_wink.gif