Programación ajedrecística en paralelo

17/09/2003 – El proyecto de investigación Brutus, desarrollado por Chrilly Donninger, Alex Kure y Ulf Lorenz disfruta de gran reconocimiento desde que ganó el torneo de GMs de Lippstadt. Brutus difiere de los programas de ajedrez "normales" en que utiliza una tarjeta FPGA especialmente programada para fines ajedrecísticos y también puede servirse de varias de ellas funcionando en paralelo. Uno de sus autores, el profesor Ulf Lorenz, de la Universidad de Paderborn, nos lo aclara aquí.

ChessBase 14 Download ChessBase 14  Download

Programa de gestión de bases de datos de ajedrez que es referencia mundial. Todos usan ChessBase, desde el campeón del mundo al aficionado. Inicie su historia de éxito personal con ChessBase.

Más información...

Brutus paralelo: el gigante del ajedrez que se avecina

Los autores del programa de ajedrez Brutus son Chrilly Donninger, Alex Kure y Ulf Lorenz.

Un programa de ajedrez típico está formado por tres partes:

Un generador de jugadas, que simplemente establece todas las jugadas posibles que pueden efectuarse en una determinada posición.

Un módulo de evaluación, en el que se implementan hasta donde es posible los conocimientos ajedrecísticos obtenidos de expertos humanos en forma de reglas. Los valores que se obtienen son difusos y muy limitados por su naturaleza heurística.

Un algoritmo de búsqueda que organiza una previsión y que es el corazón del programa de ajedrez, puesto que hace posible que el programa desarrolle capacidades ajedrecísticas superiores a las de quienes lo construyeron:



Se denomina árbol de jugadas cuando uno realiza cualquier jugada de las blancas en una determinada posición y establece cuantas respuestas de las negras son posibles y luego cuantas continuaciones tienen las blancas para cada una, etc. En muchos casos no es posible examinar todas las potenciales continuaciones, por lo que el programa de ajedrez debe seleccionar las que considera más destacables y luego debe evaluar las posiciones finales que se alcancen con ayuda de un procedimiento de evaluación heurístico y tratar las valoraciones que se obtengan con esa forma de examinar el árbol como si fueran valores genuinos y no heurísticos.
Tras 40 años hay una divertida observación: ¡el árbol de jugadas funciona como un filtro de errores. Cuanto más rápido y sofisticado sea el algoritmo de búsqueda, mayor calidad tendrán los resultados que se obtengan! Eficiencia y velocidad de proceso tienen aquí elemental importancia.

Características de los programas de ajedrez FPGA:

  • Alta velocidad por medio de paralelismo de pequeña escala: ¡basta sólo con 9 (!) ciclos de reloj para el cálculo de un nodo! Es decir, con 9 ciclos de reloj basta para generar una jugada, evaluarla en el tablero interno y volver a la posición inicial. Más velocidad por medio de más sitio: la instalación de más sabiduría ajedrecística no significa una reducción de la capacidad de búsqueda.
  • Flexibilidad: el ajedrez cibernético es un campo muy dinámico y con rápida evolución. La dura competencia hace que los ciclos de producción sean muy rápidos. Por ello se requiere una gran capacidad de renovación y de adaptación de los programas a los nuevos chips desarrollados.

La tecnología FPGA parece ofrecer un buen compromiso para un desarrollo auténtico del hardware. Brutus comenzó a desarrollarse en octubre de 2000 y por ello es dos años y medio más viejo que uno de los mejores programas de ajedrez del mundo. Su triunfo en el torneo de grandes maestros de Lippstadt en agosto de 2003 fue, de hecho, su llegada a la cumbre.

Paralelismo de gran escala de alto nivel entre PCs: la parte más sensible y más importante del algoritmo de búsqueda de Brutus funciona distribuida en varios PCs convencionales conectados por una red Myrienet de alta velocidad. Cada PC dispone de su propia tarjeta FPGA: Uno de los procesadores toma la posición existente y comienza búsqueda secuencial alfa-beta en segundo plano. Los otros procesadores envían peticiones de trabajo a la red, buscando coincidencias y así se van realizando las tareas por partes. Con ayuda de un original sistema de notificaciones entre los procesadores, el trabajo a desarrollar se distribuye equitativamente y los solapamientos sólo se producen en escasa cuantía. Un procesador de Brutus genera alrededor de 100.000 pequeñas búsquedas por segundo en cada tarjeta FPGA.

Visión global del sistema:


 

   

 

Dr. rer. nat. Ulf Lorenz

Al artículo original en alemán


Discussion and Feedback Join the public discussion or submit your feedback to the editors


Comentar

Normas sobre los comentarios

 
 

¿Aún no eres usuario? Registro