1.
Definición:
fue una supercomputadora desarrollada por el fabricante estadounidense IBM (International Business Machines Corp.) para jugar al ajedrez. Es una supercomputadora de procesamiento
paralelo masivo basada en RS/6000 con 30 nodos, cada uno con 30
microprocesadores P2SC de 120 MHz,
ampliados con 480 procesadores VLSI (Very Large Scale Integration) especializados en ajedrez.
2.
Tipo
de Arquitectura: El sistema no fue creado especialmente
para sólo un juego de ajedrez, sino que a nivel de arquitectura se pretende
obtener un computador que pueda realizar una enorme cantidad de cálculos por
segundo en forma paralela.
El tipo de cálculos que se puede realizar
con este sistema no es optimizado, es decir no se paraleliza cada cálculo, sino
que se pueden realizar varios cálculos en paralelo con la ayuda de procesadores
dedicados que son más rápidos y que poseen su propia memoria local y además
comparten 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.
3.
Formato
de Instrucciones:
Desarrollo del Software: El software,
se basó en un algoritmo minimax para
'maximizar las ganancias y minimizar las pérdidas' de cada jugada, con la
finalidad de ir mejorando la partida -- a su favor -- en cada nuevo movimiento.
El Software fue creado
en lenguaje C y corre bajo Sistema Operativo AIX
(Advanced Interactive Executive). Fue instalado por primera vez en Estados
Unidos para el año 1996 y para 1997 ya existía otra versión superior al
original.
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 unas 3 posiciones por
segundo (540 posiciones en 3 minutos).
Junto con el algoritmo
minimax, que nunca ha llegado a distribuirse de forma pública y cuya
implementación en Deep Blue seguirá en alguna caja fuerte de IBM, también fue
fundamental el autoaprendizaje del software.
Ejecución del juego de Ajedrez: 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.
Lectura de la instrucción
|
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.
|
Lectura de los operandos fuente
|
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.
|
Ejecución de la instrucción y almacenamiento de
destino
|
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 movidas en forma paralela.
|
Comprobación de interrupciones
|
Cada nodo
se conecta a la tarjeta microcanal utilizando un switch que permite detectar
los errores en los mensajes. 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.
|
4.
Característica del
Procesador de Ajedrez: El
procesador consta principalmente de un chip
que posee más de un millón de
transistores, internamente posee 48 bloques integrados de RAM y 3 bloques de
ROM. Los 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.
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. El Deep Blue contiene 256
de estos procesadores (8 por cada nodo).
Los procesadores de ajedrez son
controlados por el procesador principal mediante el sistema de mensajes. La
búsqueda se reduce entonces a un simple control lógico a nivel del procesador
manejando variables como tiempo, mate cercano, etc.
El
Sistema RS/6000: entrega una 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 sólo 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.
5.
Segmentación
de Instrucciones: En el caso de Deep Blue, el procesador tiene 32 nodos cada
uno conectado a 8 procesadores aceleradores de Ajedrez y los nodos son del 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 específico para acelerar el cálculo final.
El elemento clave es
entonces el subsistema de comunicación, el cual es llamado Scalable 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:
6.
Modos de
Direccionamiento: Para el caso de más nodos se puede
utilizar un conjunto de switch intermedios entre los distintos frames o
conjuntos de 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. 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 bidireccional.
Esta tarjeta consta de diversas partes incluido un
microprocesador Power PC601, como se observa en la figura:
7.
Jerarquía de
Memoria:
Registros
|
Internamente
posee 48 bloques integrados de RAM y 3 bloques de ROM.
Los 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.
|
Memoria
caché
|
Utilizando el algoritmo minimax se
concentra en al menos 700.000 de las mejores partidas de ajedrez de la
historia, de forma que Deep Blue aprendió las técnicas utilizadas en ellas
para poder aplicarlas en los enfrentamientos futuros.
|
Memoria
principal
|
De tipo
SRAM (Static Random Access Memory) de 512.KB.
|
Memoria
Externa
|
No aplica
|
Memoria
Virtual
|
Utiliza un sistema de comunicación denominado Scalable
Power Parallel 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, utiliza una cola FIFO y un microprocesador para detectar errores.
|
8.
Historia: Deep
Blue vs Kasparov: es la denominación genérica para los
famosos matches de ajedrez, jugados a 6 partidas entre la
supercomputadora de IBM Deep Blue y el Campeón del mundo de ajedrez Gary
Kasparov. Se jugaron dos match: uno en
febrero de 1996 y el otro en mayo de 1997.
Gary
Kasparov nació en 1963 en Bakú, Azerbaiyán (es un país
dentro de la cultura persa ubicado en el continente Asiático). A los 13
años de edad consiguió el título de campeón juvenil de ajedrez de la Unión
Soviética. En 1985, a sus 22 años, se convirtió en el campeón mundial de
ajedrez más joven, luego de vencer al legendario jugador soviético Anatoly
Karpov. Conocido por su habilidad de cambiar de táctica en medio de una
partida, es considerado por muchos el mejor jugador de ajedrez de la historia.
El primer match
se jugó en febrero de 1996 en Filadelfia, Pensilvania.
Kasparov lo ganó 4–2, perdiendo una partida, empatando 2 y ganando 3. Lo que en
notación ajedrecística se escribe +3 =2 -1.
El
segundo match se jugó el 03 de mayo de 1997, Gary Kasparov
y una mejorada Deep Blue se enfrentaron nuevamente en una revancha, que fue
llamado «el más espectacular duelo de ajedrez de la Historia». En esa ocasión,
la supercomputadora Deep Blue, que había sido mejorada desde el anterior
encuentro, ganó a Kasparov 3½–2½ (+2 =3 -1). En esta ocasión, la computadora resultó vencedora, llevándose un premio
de 700.000 dólares. Kasparov se retiró del ajedrez profesional en el año
2005.
9.
Presente:
Deep Blue vs Watson: Por supuesto no ha sido el único computador que se ha
enfrentado a humanos. Junior es otro gran conocido desarrollado ya en el
siglo XX, pero sin duda alguna Watson también de IBM tuvo una gran
relevancia.
Las
principales capacidades de Watson están más cercanas del lenguaje que de la
matemática de Deep Blue. Fue desarrollado entre 2004 y 2011, año en el que
participó en el concurso de preguntas y respuestas americano Jeopardy!, con la
tarea de leer la pregunta, entenderla y buscar la mejor respuesta asociada a
ella.
Para resolver este problema
tenía una base de datos local de 200 millones de páginas que ocupaban 4
TB de espacio, y lo hacía utilizando un total de 90 servidores
independientes con un procesador IBM Power7 de ocho núcleos a 3,5 GHz con
cuatro hilos cada uno de ellos. La memoria RAM se alza hasta 16 TB, una cifra
increíble a pesar del entorno más profesional del equipo. Watson
superó a sus rivales y ganó el primer premio. En 2013 se anunció su
reorientación hacia la ciencia y la medicina gracias a sus capacidades
de interpretación del lenguaje natural y auto aprendizaje del entorno y los problemas
afrontados.
Deep Blue, al
contrario, tuvo una vida muy diferente a la que actualmente tiene Watson. Fue
desmantelado y no volvió a utilizarse jamás, más allá de separarse los
dos racks que lo formaban para enviarlos al National Museum of
American History y al Computer History Museum de
Estados Unidos, donde actualmente posan para el público más geek que
pueda reconocerlos y tomar una captura de estas importantes piezas históricas.
GLOSARIO DE TÉRMINOS:
AIX (Advanced
Interactive eXecutive) es un sistema operativo UNIX System V propiedad de
IBM, corre en los servidores IBM eServers pSeries, utilizando procesadores de
la familia IBM POWER de 32 y 64 bits. Algunas de las características únicas de
AIX incluyen el Object Data Manager (ODM, una base de datos de información del
sistema).
AUTOAPRENDIZAJE
DEL SOFTWARE: es un término referente a las ciencias
de la educación que relaciona el aprendizaje cognitivo (conocimiento del ser
humano) con la ejecución de tareas mecanizadas, tratándose de software se entiende
como la evolución del aprendizaje por ensayo y error para la creación de
sistemas autómatas, en donde las supercomputadoras mediante programación en
paralelo, pueden mejorar sus propias ejecuciones tras cierto número de errores
consecutivos.
ALGORITMO
MINIMAX: tiene la capacidad de aprender de acuerdo a la
información que consigue en el momento en que genera el árbol del juego, es
decir, aprende con experiencia. El algoritmo tiene una complejidad muy elevada
de implementación, pues el hecho de estructurar una base de datos de
experiencia requiere de arma y estructurar un esquema de aprendizaje óptimo.
MINIMAX:
Es un método de decisión para minimizar la pérdida máxima esperada en juegos
con adversario y con información perfecta En resumen elige el mejor movimiento
para ti mismo suponiendo que tu contrincante escogerá el peor para ti.
PROCESAMIENTO
PARALELO MASIVO (MPP): Es un método para el diseño de
sistemas de computación que implica la integración de miles de
microprocesadores en una sola computadora. Es el proceso
coordinado de un programa de computador por varios procesadores que trabajan en
partes distintas del programa, donde cada procesador utiliza su propio sistema
operativo y memoria.
SUPERCOMPUTADORA:
(superordenador) es aquella con capacidades de cálculo muy superiores a
las computadoras comunes y de escritorio y que son usadas con fines
específicos. Hoy día los términos de supercomputadora y superordenador están
siendo reemplazados por computadora de alto rendimiento y ambiente de
cómputo de alto rendimiento, son un conjunto de poderosos ordenadores
unidos entre sí para aumentar su potencia y rendimiento.
VLSI (Very
Large Scale Integration-
Integración a muy gran escala), es el proceso de creación de un circuito integrado (IC)
mediante la combinación de miles de transistores en un solo chip, permite a los
diseñadores de circuitos integrados se suman todos estos objetivos en un solo
chip
.
BIBLIOGRAFÍA:
7) Velazco, J. (2012). Inteligencia Artificial: Deep Blue y Kasparov. [Artículo
en Línea]. Consultado el 03
de agosto de 2014. Disponible en: https://hipertextual.com/2011/11/inteligencia-artificial-deep-blue-kasparov