# Cray-2

La Cray-2 es una supercomputadora vectorial construida por Cray Research, Inc. (CRI), en 1985. Fue la computadora más veloz en el mundo cuando fue lanzada, remplazando a la X-MP (también de CRI) en ese puesto. Era capaz de alcanzar picos de 1,9 GFLOPS y sólo fue desplazada del primer puesto por la ETA-10G en 1990. Solo realiza cálculos matemáticos muy complejos y operaciones lógicas de alto nivel.

## Diseño inicial

Luego del éxito alcanzado con su afamado Cray-1, Seymour Cray comenzó a diseñar su sucesor. Para 1979 estaba cansado de las interrupciones a su trabajo debido al tiempo que le exigía administrar y dirigir la que ahora era una gran empresa. Decidió, como lo había hecho antes, renunciar a su puesto directivo y formar un nuevo laboratorio. Al igual que su mudanza original a Chippewa Falls, Wisconsin desde la sede de Control Data en Minneapolis, MN, el directorio de Cray comprendió su necesidad y apoyó mudanza a un nuevo laboratorio en Boulder, Colorado. Trabajando como un consultor independiente en los nuevos Laboratorios Cray, formó un equipo y comenzaron a trabajar en un diseño completamente nuevo. Este laboratorio quedaría chico, y una década más tarde se abriría uno nuevo en Colorado Springs.
Cray había encarado previamente el incremento de la velocidad con tres avances simultáneos: más unidades funcionales para darle al sistema un mayor paralelismo, componentes más pequeños para disminuir el retraso de las señales y componentes más rápidos que permitieran trabajar a velocidades de reloj más altas. Un ejemplo clásico de este diseño es el CDC 8600, el cual consistía de cuatro máquinas similares al CDC 7600 basadas en lógica ECL dentro de un cilindro de 1 x 1 m y corriendo con un ciclo de reloj de 8 ns (125 MHz). Lamentablemente, la densidad necesaria para lograr este ciclo de tiempo condujo a la caída de la máquina. Las placas dentro de la máquina eran muy densas, y debido a que la falla de un solo transistor podía hacer que el módulo entero falle, al colocar más de ellos en las tarjetas las probabilidades de fallas aumentan considerablemente.
Una solución a este problema, que muchos fabricantes ya habían adoptado, fue usar circuitos integrados (CIs) en lugar de componentes individuales. Cada CI incluía una selección de componentes de un módulo pre-cableado en un circuito mediante un proceso de construcción automatizado. Si un CI no trabajaba, simplemente se tiraba y se probaba con otro. Para la época que se diseñó el 8600 la tecnología basada en MOSFET simplemente no podía ofrecer la velocidad que Cray necesitaba. Sin embargo, grandes mejoras cambiaron las cosas a mediados de la década de 1970, y el Cray-1 pudo usar los nuevos CIs y alcanzar la respetable velocidad de 12,5 ns (80 MHz). De hecho, el Cray-1 fue algo más rápido que el 8600 debido que incorporaba mucha más lógica dentro del sistema gracias al pequeño tamaño de los CIs.
A pesar de que el diseño de los CIs continuaba mejorando, el tamaño físico continuaba limitado por consideraciones mecánicas; el componente resultante debía tener un tamaño suficiente como para poder ser soldado a las placas del sistema. Fueron posibles grandes incrementos en la densidad, demostrado en los rápidos avances en el diseño de los microprocesadores, pero para el tipo de CI usado por Cray, que representaban una parte muy pequeña de un circuito completo, el diseño había tocado techo. Pero para poder alcanzar un rendimiento 10 veces superior al del Cray-1, el objetivo de Cray, la máquina tenía que crecer en complejidad. Se recurrió nuevamente a una solución al estilo del 8600, duplicando la velocidad de reloj mediante un aumento en la densidad, agregando más de esos procesadores pequeños dentro del sistema básico, para luego tratar de resolver el problema de refrigerar la máquina.
Otro problema de diseño fue la diferencia de rendimiento cada vez mayor entre el procesador y la memoria principal. En la época del CDC 6600 la memoria corría a la misma velocidad del procesador, y el problema principal era alimentarlo con datos. Cray solucionó esto agregando diez pequeños computadores al sistema, lo que le permitía manejar los dispositivos de almacenamiento externo (discos y cintas), más lento, y colocar "chorros" de datos en la memoria cuando el procesador principal estaba ocupado. Esta solución no ofrecía ninguna ventaja; la memoria era suficientemente grande como para que todo el conjunto de datos se pudiera leer en ella, pero el procesador corría mucho más rápido, y a menudo pasaba mucho tiempo ocioso hasta que llegaban los datos. Añadir cuatro procesadores simplemente empeoró el problema.
Para resolver este problema, el nuevo diseño reemplazaba los bancos de memoria y los dos juegos de registros (los registros B y T) con un bloque de 16 kilopalabras de la memoria más rápida posible llamada "Memoria Local", no una memoria caché, conectada a los procesadores de fondo con conductos separados de alta velocidad. Esta Memora Local era alimentada con datos por medio de procesadores frontales, los cuales eran conectados por turnos a la memoria principal a través de un canal de Gbit/s por cada CPU; en contraste, el X-MP tenía 3, para 2 cargas y almacenamientos simultáneos y el Y-MP/C-90 tenía 5 canales para evitar el cuello de botella de von Neumann. Ésta era la tarea del procesador frontal, manejar el almacenamiento y hacer eficiente el uso de los múltiples canales en la memoria principal. Manejaban los procesadores de fondo pasando las instrucciones que podían ejecutar a través de los 8 bufers de 16 palabras, en lugar de enlazar las cachés existentes a los procesadores de fondo. Las modernas CPU usan una variedad de este diseños, aunque el procesador de fondo ahora se lo llama "unidad de carga y almacenamiento" y no es una computadora completa en sí misma.
Los bancos de memoria principal estaban acomodados en cuadrantes para ser accedidos simultáneamente, permitiendo a los programadores repartir los datos en la memoria para obtener un mayor paralelismo. El inconveniente de este enfoque es que el costo de la unidad de disperción/reunión en el procesador de fondo era bastante alto. Los conflictos correspondientes la número de bancos de memoria ocasionaban una reducción en las prestaciones (latencia), como ocurría ocasionalmente con los algoritmos de potencia de dos basados en FFT. Como el Cray 2 tenía mucha más memoria que el Cray 1 o el X-MP, este problema se solucionó fácilmente agregando un elemento extra sin usar a la matriz para extender el funcionamiento.

### Placas de circuitos empaquetados y nuevas ideas de diseño

El modelo Cray-2 pronto se estableció como un diseño con grandes placas llenas de CI. Esto hacía que fueran muy difíciles de soldar, y la densidad todavía no era suficiente para alcanzar las prestaciones deseadas. Los equipos trabajaron en el diseño por alrededor de dos años antes que el propio Cray "renunciara" y decidiera si no era mejor que simplemente cancelaran el proyecto y despedir a todos los que trabajaron en él. Les Davis, antiguo colaborador de diseño de quien permanecía en la sede de Cray, decidió continuar con prioridad baja. Después de algunos movimientos menores en el personal, el equipo continuó casi como antes.
Seis meses después Cray tuvo su momento eureka. Llamó a los principales ingenieros a una reunión y les presentó una nueva solución al problema. En lugar de hacer una placa de circuito grande, cada "tarjeta" estaría formada por una pila "3D" de ocho placas, conectadas entre sí por medio de pines entre las superficies. Las tarjetas fueron acomodadas en la parte superior derecha de cada una, dando como resultado que la pila tenía sólo unos 7,5 cm de alto. Esta densidad no permitía un sistema de refrigeración por aire convencional; había poco lugar para que circule aire entre los CI. En su lugar, el sistema podía ser sumergido en un tanque de un nuevo líquido inerte de 3M, el fluorinert. El líquido refrigerante era forzado por los costados a través de los módulos a presión. El líquido caliente era enfriado usando intercambiadores de calor de agua y regresaba al tanque principal. El trabajo sobre el nuevo diseño se inició formalmente en 1982, varios años después de la fecha de inicio original.
Mientras esto sucedía, el Cray X-MP estaba siendo desarrollado bajo la dirección de Steve Chen en la sede central de Cray, y parecía que iba a dar al Cray-2 una seria carrera por el dinero. Para dar frente a esta amenaza interna, así como también a una nueva serie de máquinas japonesas del tipo Cray-1, la memoria del Cray-2 fue ampliamente mejorada, tanto en tamaño como en cantidad de líneas de conexión con los procesadores. Cuando la máquina fue finalmente entregada en 1985, los retrasos habían sido tan largos que gran parte de las prestaciones se debían a la memoria rápida, y sólo tenía sentido que sea comprada por usuarios con enormes cantidades de datos para procesar.
El primer Cray-2 entregado poseía más memoria física (256 millones de palabras) que todas las máquinas entregadas por Cray combinadas. La simulación se movió del campo 2-D o un 3-D burdo, al campo 3-D fino, debido a que no tiene que depender de una lenta memoria virtual. Esta capacidad para manejar espacio (memoria) por tiempo (velocidad) es lo que define la supercomputación (extrema, computación de alto nivel).

## Usos y sucesores

El Cray-2 fue primordialmente desarrollado para los Departamentos de Estados Unidos de Defensa y Energía. Se utilizaron para el desarrollo de armas nucleares o investigación oceanográfica. Sin embargo, el Cray-2 también fue usado en aplicaciones civiles (como el NASA Ames Research Center), universidades y corporaciones alrededor del mundo.
El Cray-2 debería haber sido reemplazado por el Cray-3, pero debido a problemas en el desarrollo solo se construyó un ejemplar de éste, que nunca fue vendido. El sucesor espiritual del Cray-2 fue el Cray X1, ofrecido por Cray.

## Historia

Debido al uso de líquido refrigerante, el Cray-2 fue apodado "Bubbles" (Burbujas), y bromas comunes sobre la máquina hacían referencia a este sistema único. Las bromas incluían carteles de "Prohibido pescar", caricaturas del monstruo del lago Ness saliendo del tanque del intercambiador de calor, peces de plástico dentro del intercambiador, etc.