Deep Blue (computadora)
Deep Blue fue una súper computadora que desarrollada por
el fabricante estadounidense IBM para
jugar ajedrez. Fue la primera que venció a un campeón del mundo vigente, Gary
Kasparov con un ritmo de juego lento.
Esto ocurrió el 10 de febrero del 1996, en una memorable partida. Sin embargo
Kasparov gano tres y empato dos de la siguiente partida, derrotando a Deep
Blue por 4-2.en el encuentro concluyo el 17 de febrero del 1996,
Una nueva versión llamada Beeper Blue (azul más profundo) jugo de nuevo contra
Kasparov en mayo del 1997, ganando el
encuentro a 6 partidas por
tresmedios-dosmedios lo que lo convirtió en la primera computadora en
derrotar a un campeón del mundo vigente,
en un encuentro con ritmo de juego de torneo estándar. El encuentro concluyo el
11 de mayo.
El sistema saca su fuerza del juego principalmente en la fuerza
bruta que calcula el sistema central. Era una computadora de procesamiento paralelo masivo basada en el RS/6000 con
30 nodos, cada uno con 30 microprocesadores
P2SC de 120 MHz, ampliados con 480 procesadores VLSI de uso
especial, especializados en
ajedrez. Su programa de ajedrez fue escrito en el lenguaje C y corrió
bajo el sistema operativo
AIX. Era capaz de calcular 200 millones de posiciones por segundo, dos veces más rápido
que la versión de 1996. En junio del 1997, Deep Blue era el 259
súper ordenado más poderoso
y capas de calcular 11, 38 gigaflops , aunque todas estas potencias no estaban pensando en realidad para jugar al ajedrez.
El Deep Blue es un
software de ajedrez el cual trabaja
sobre un sistema de propósitos especiales (especiales purpose ) y
paralelismo masivo que se utiliza una
computadora de alto rendimiento IBM RS/6000 SP de 32 nodos. Esta computadora posee el procesador
power two súper chip (P2SC).
Cada nodo del IBN RS/6000 SP utiliza una tarjeta
microcanal la cual contiene 8 procesadores VLSI
dedicados de Ajedrez, totalizando
256 procesadores trabajando en paralelos.
El resultado es un sistema altamente
paralelo y escalable que es capaz de calcular entre 100 y 200 miles de millones de movidas en 3 minutos. Un humano
en estado de concentración y a nivel de
gran maestro de ajedrez es capaz de calcular un unas 3 posiciones por segundo (540 posiciones
en 3 minutos) el sistema fue creado especialmente para solo un juego de ajedrez
, sino que a nivel de arquitectura se
pretende obtener una computadora que pueda realizar una enorme cantidad de cálculos
por
segundo en forma paralelas . el tipo de cálculos que se pueden realizar con este sistema no es optimizado,
es decir no se paraleliza cada calculo,
sino que se puede realizar varios cálculos en paralelo con la ayuda de procesadores dedicados que son mas rápidos
y que poseen una propia memoria local además comparte una memoria global. La memoria local de cada
procesador es de tamaño muy pequeño
comparado con la memoria global del computador.
La arquitectura del sistema se puede resumir en la utilización
de procesadores aceleradores de cálculos
especiales paralelos combinados con un sistema multipropósito que los controla.
El Sistema RS/6000
El sistema RS/6000 SP entrega un gran escalabilidad que
permite soportar muchas aplicaciones paralelas.
El sistema es escalable desde 2 hasta
128 nodos del procesador (e incluso hasta 512 nodos en forma no
comercial), los cuales pueden estar contenidos en múltiples frames. Un solo
frame puede contener desde 2 hasta 16 nodos. Los nodos pueden ser de tipo
angosto o ancho , lo que determina el ancho
de banda del acceso a los datos.
En el caso de Deep
Blue, el procesador tiene 32 nodos cada
uno conectado a 8 procesadores acelerados de ajedrez y los nodos son de tipo
ancho.
Cada procesador conectado a un nodo del computador puede
operar como un procesador independiente trabajando simultáneamente con los otros en un trabajo especifico para
acelerar el cálculo final. El elemento clave es entonces el subsistema de comunicación
, el cual es llamado (escalable power parallel switch ) cuya responsabilidad es
intercambiar mensajes simultáneamente entre los nodos para apoyar la aplicación
paralela del usuario.
El switch de comunicación se diagrama en la siguiente
figura optimizada para 32 nodos:
Para el caso de mas nodos se puede utilizar un conjunto
de switch intermedios entre los distintos
frames o conjuntos de nodos :
Utilizando entonces el switch de comunicación, el
procesador puede enviar mensajes a los procesadores conectados a los nodos.
Cada procesador dedicado de Ajedrez recibe entonces una movida a partir del
tablero que se encuentra en memoria global mediante un mensaje por el switch. Además
recibe la profundidad y otros parámetros útiles (tiempo, dirección en memoria
de la tabla de hashing para evitar repetición de movidas entre los
procesadores, etc).
Cada nodo se conecta a la tarjeta microcanal utilizando un switch que permite detectar los errores en los mensajes. Esta tarjeta consta de diversas partes incluído un microprocesador PowerPC 601
Cada nodo se conecta a la tarjeta microcanal utilizando un switch que permite detectar los errores en los mensajes. Esta tarjeta consta de diversas partes incluído un microprocesador PowerPC 601
Este switch se encarga de diversas
tareas sobre el envío y recepción de mensajes y está optimizado para el uso de
mensajes de gran tamaño. Para ello utiliza una cola FIFO y un microprocesador
para detectar errores. El ancho de banda alcanzable gracias a este switch es de
unos 150 Mb por segundo unidireccional y 300 Mb por segundo bi-direccional.
El
Procesador de Ajedrez
Como ya se dijo, este
procesador esta encargado de analizar cuán buena es una jugada a partir de un
tablero y una movida. Para ello tiene lee una función de evaluación y utiliza
fuerza bruta para encontrar el valor de esta función hasta la profundidad que
alcance hasta que le llegue el mensaje de detener la búsqueda. Cuando termina
de buscar, retorna el valor de la función para esa movida.
El procesador consta principalmente de un chip que posee más de un millón de transistores. En si interior tiene integrados 48 bloques de RAM y 3 bloques de ROM. os bloques de RAM se utilizan para almacenar los tableros que se vayan generando a medida que realiza la búsqueda y los bloques de ROM contienen información sobre finales de partidas.
No todos los bloques de RAM y ROM son del mismo tamaño. Por ejemplo el bloque de RAM más grande son de 1024 palabras de profundidad por 10 bits de ancho. Existe un bloque de ROM de mayor tamaño que posee 128000 palabras más un bit para cada una almacenando información booleana (triunfo/tablas) acerca de finales de Peón-Rey contra Rey.
El procesador consta principalmente de un chip que posee más de un millón de transistores. En si interior tiene integrados 48 bloques de RAM y 3 bloques de ROM. os bloques de RAM se utilizan para almacenar los tableros que se vayan generando a medida que realiza la búsqueda y los bloques de ROM contienen información sobre finales de partidas.
No todos los bloques de RAM y ROM son del mismo tamaño. Por ejemplo el bloque de RAM más grande son de 1024 palabras de profundidad por 10 bits de ancho. Existe un bloque de ROM de mayor tamaño que posee 128000 palabras más un bit para cada una almacenando información booleana (triunfo/tablas) acerca de finales de Peón-Rey contra Rey.
Este procesador puede analizar entre 2 y 3 millones de posiciones del tablero de ajedrez por segundo. Considerando que el análisis de una posición consiste de unas 3000 instrucciones de máquina como promedio, entonces el procesador tendría una velocidad entre 6 y 9 mil millones de instrucciones por segundo.
En Deep Blue hay 256 de estos procesadores (8 por cada nodo).
Deep Blue
Deep Blue es un software que utiliza fuerza bruta
para jugar ajedrez. Se utiliza fuerza bruta pues la idea del sistema es poder
demostrar el uso masivo de paralelismo y su extensión a otras aplicaciones. No
se pretende crear un software que sepa jugar Ajedrez sino un software que pueda
aprovechar el paralelismo masivo para un problema complejo, como por ejemplo el
ajedrez. Esto se contrapone con la tecnología desarrollada para crear
procesadores dedicados de ajedrez, por lo tanto se puede deducir que el interés
por el desarrollo de Deep Blue es puramente comercial.
Deep Blue es sólo una combinación de estrategias y rápidos cálculos en paralelo que permiten encontrar en forma muy precisa aquella movida que considera "mejor" dado que en promedio existen 20 posibles movidas en cada turno. Deep Blue utiliza Fuerza Bruta. Las movidas que analiza son escogidas selectivamente utilizando una estrategia modelada a prueba y error con la ayuda de varios Grandes Maestros de Ajedrez y algunos conceptos del juego. Una vez generada una jugada se analiza mediante una función de evaluación que mide cuán buena es una posición. Esta función se basa en 4 conceptos de Ajedrez: Material, Posición, Seguridad del Rey, y Tiempos.
La generación de movidas se hace por software en forma estratégica para cada procesador de Ajedrez y evalúa la posición rápidamente gracias a las características del procesador de Ajedrez. Posteriormente descarta o sigue profundizando según lo ordene el procesador principal. De esta forma puede evaluar 256 "ramas" o movidas en forma paralela.
Los procesadores de ajedrez son controlados por el procesador principal mediante el sistema de mensajes.
Deep Blue es sólo una combinación de estrategias y rápidos cálculos en paralelo que permiten encontrar en forma muy precisa aquella movida que considera "mejor" dado que en promedio existen 20 posibles movidas en cada turno. Deep Blue utiliza Fuerza Bruta. Las movidas que analiza son escogidas selectivamente utilizando una estrategia modelada a prueba y error con la ayuda de varios Grandes Maestros de Ajedrez y algunos conceptos del juego. Una vez generada una jugada se analiza mediante una función de evaluación que mide cuán buena es una posición. Esta función se basa en 4 conceptos de Ajedrez: Material, Posición, Seguridad del Rey, y Tiempos.
La generación de movidas se hace por software en forma estratégica para cada procesador de Ajedrez y evalúa la posición rápidamente gracias a las características del procesador de Ajedrez. Posteriormente descarta o sigue profundizando según lo ordene el procesador principal. De esta forma puede evaluar 256 "ramas" o movidas en forma paralela.
Los procesadores de ajedrez son controlados por el procesador principal mediante el sistema de mensajes.
No hay comentarios.:
Publicar un comentario