thumb|280px|Una Cray-1 preservada en el Deutsches Museum.

El Cray-1 fue un superordenador diseñado por un importante número de informáticos encabezados por Seymour Cray para Cray Research. El primer sistema Cray-1 fue instalado en el laboratorio nacional de Los Álamos en marzo de 1976. Es uno de los supercomputadores más conocidos y exitosos de la historia, y de los más potentes en su época.

Anunciado en 1975, desató una escalada de ofertas por parte del Laboratorio Nacional de Los Álamos y el Lawrence Livermore, ganando finalmente el primero.

A lo largo de los años, la empresa Cray Research esperaba vender una docena de superordenadores Cray-1, a un precio de entre 5 y 8 millones de dólares, pero finalmente vendió más de ochenta. La máquina dio la fama a Seymour Cray y a Cray Research, siendo continuada en diversas versiones hasta los años 90.

Como características técnicas, la primera versión (Cray-1A) operaba con procesadores vectoriales a 80 MHz, era un sistema de 64-bits y pesaba 5,5 toneladas, incluyendo el sistema de refrigeración por freón; pese a su gran tamaño solo tenía 8 MB de Ram.

Historia En los años 1968 a 1972 Cray estaba trabajando en Control Data en una nueva máquina conocida como el CDC 8600, el lógico sucesor de sus anteriores CDC 6600 y CDC 7600. El 8600 estaba esencialmente compuesto de cuatro 7600s en una caja.

Jim Thornton, exsocio de ingeniería Cray en diseños anteriores, había comenzado un proyecto más radical conocido como el CDC STAR-100. A diferencia del 8600, que utilizaba la fuerza bruta, STAR tomó una ruta completamente diferente. De hecho, el procesador principal del STAR tenía menos rendimiento que el 7600, pero añadió hardware adicional e instrucciones para acelerar las tareas, algo común en las supercomputadoras.

En 1972, el 8600 había llegado a un callejón sin salida. La máquina era tan increíblemente compleja que era imposible conseguir que funcione bien, incluso un único componente defectuoso haría la máquina no operativa. Cray fue a William Norris, CEO de Control Data, diciendo que era necesario rediseñar la máquina desde cero. En un momento en que la empresa se encontraba en graves problemas financieros, y con la STAR en la cadena de montaje, Norris simplemente no pudo invertir dinero. Cray deja Control Data e inició una nueva empresa a unos metros de la sede del laboratorio de la CDC, en el patio trasero de la propiedad que él compró en Chippewa Falls, WI; Cray y un grupo de ex empleados de la CDC comenzaron a buscar ideas. Al principio, el concepto de construcción de otro superordenador parecía imposible, pero después que el director Técnico viajara a Wall Street y encontrara un grupo de inversores más que dispuestos a apoyar a Cray, todo lo que se necesitaba era un diseño.

En 1975, el Cray-1 de 80 MHz fue anunciado. La expectativa fue tan grande que se inició una guerra por la primera máquina entre el Lawrence Livermore National Laboratory y Los Alamos National Laboratory, siendo este último el ganador y recibió la máquina número de serie 001 en marzo de 1976, para un período de prueba de seis meses. El Centro Nacional de Investigaciones Atmosféricas (NCAR) fue el primer cliente oficial de Cray Research, en julio de 1977, pagando 8,86 millones de dólares (7,9 millones de dólares, más 1 millón de dólares para los discos). La máquina fue dada de baja en enero de 1979. La compañía esperaba vender una docena de máquinas, pero se vendieron más de 80 Cray-1 de todos los modelos, con precios desde $5M a $8M. La máquina convirtió a Cray en una celebridad, y a la empresa en un éxito, hasta la caída de las supercomputadoras a principios de 1990.

El Cray-1 fue sucedido en 1982 por el Cray X-MP de 800 MFLOPS, la primera computadora multiproceso. En 1985, el muy avanzado Cray-2, con capacidad de alcanzar picos de 1,9 GFLOPS, sucedió a los dos primeros modelos, pero solo consiguió un limitado éxito comercial a causa de ciertos problemas en alcanzar un rendimiento sostenido en las aplicaciones del mundo real. Por lo tanto, se hizo un modelo de diseño más conservador como sucesor de los Cray-1 y X-MP, llamado Cray Y-MP, lanzado en 1988.

Antecedentes Un trabajo científico típico consistente en la lectura de grandes volúmenes de datos, transformarlos de alguna manera y, a continuación, devolver los resultados. Normalmente, las transformaciones que se aplican son idénticas a lo largo de todo el conjunto de datos. Por ejemplo, el programa podría sumar 5 a cada número en un conjunto de un millón de números. En los computadores tradicionales el programa realiza una iteración en el millón de números para sumarle cinco a cada uno, lo que generará un millón de instrucciones diciendo a = sumar b, c. Internamente el equipo resuelve esta instrucción en varios pasos. En primer lugar, lee la instrucción de la memoria y decodifica y, a continuación, recoge toda la información adicional que necesite, en este caso los números B y C; finalmente se ejecuta la operación y se almacena el resultado.

Máquina vectorial En el STAR, las nuevas instrucciones escribían los bucles para el usuario. El usuario le indicaba a la máquina en qué lugar de la memoria se almacenó la "gran lista de números", a continuación, se ingresaba una sola instrucción: a(1..1000000) = sumarv b(1..1000000), c(1..1000000). A primera vista parece que el ahorro es limitado, en este caso la máquina sólo lee y decodifica una sola instrucción en lugar de 1.000.000, con el consiguiente ahorro de 1.000.000 de lecturas y decodificaciones y, tal vez, ¼ del tiempo total. Pero el verdadero ahorro no es tan evidentes. Internamente la CPU de la computadora se construye a partir de una serie de partes dedicadas a una sola tarea, por ejemplo, añadir un número o leerlo de la memoria. Normalmente, mientras la instrucción fluye a través de la máquina, sólo una parte está activa en cualquier momento, significando que el proceso entero debe completarse antes de poder emitir el resultado. Sin embargo, la segmentación de las instrucciones cambió esto, de manera que en estas máquinas la CPU puede "mirar hacia adelante" y comenzar a buscar la próxima instrucción mientras que aún se trabaja con la primera. En esta cadena de montaje una instrucción sigue ocupando todo el proceso, pero tan pronto como se termina una, la próxima ya está casi finalizada.

Los procesadores vectoriales utilizan esta técnica con un "truco" adicional. Debido a que el diseño de los datos es "conocido", básicamente un conjunto de números dispuestos linealmente en la memoria, las líneas de ejecución se pueden ajustar para mejorar el rendimiento. Cuando se recibe una instrucción vectorial, un hardware especial establece el acceso a la memoria para leer en el obtener los datos y colocarlos en el procesador lo más rápido posible.

El enfoque de CDC en el STAR utilizó lo que hoy se conoce como arquitectura memoria-memoria. Esto se refiere a la forma en que la máquina se reúne los datos, ajustando las líneas de ejecución para leer y escribir directamente en la memoria. Esto le permitió el uso de vectores de cualquier longitud o ancho, por lo que es muy flexible. Lamentablemente, la línea de ejecución tenía que ser muy "profunda" con el fin de permitir que tenga suficientes instrucciones leídas al vuelo para compensar la lentitud de la memoria, y eso significa que la máquina tuvo un costo muy alto al pasar de procesamiento vectorial a datos normales. Además, el bajo rendimiento en modo "normal" de la máquina significa que, luego de cambiar el modo y funcionando con instrucciones lógicas típicas, el rendimiento era bastante pobre. El resultado fue un desempeño más bien decepcionante en el mundo real, algo que podría haber sido obvio si los diseñadores hubieran examinado la ley de Amdahl.

Enfoque de Cray Cray fue capaz de ver el fracaso de la STAR y aprender de ella. Se decidió que, además del rápido procesamiento vectorial, su diseño también requeriría unas prestaciones excelentes en todos los componentes lógicos. De esta forma cuando el equipo cambiara de modo, seguiría siendo el más rápido. Además se observó que el volumen de trabajo podría ser mejorado de manera espectacular, en la mayoría de los casos, mediante la utilización de registros.

Así como en las primeras máquinas se ignoraba el hecho de que la mayoría de las operaciones se aplicaban a muchos puntos de datos, STAR ignorado el hecho de que esos mismos datos se procesaban varias veces. Considerando que la STAR podía leer y procesar la misma memoria cinco veces para aplicar cinco operaciones vectoriales a un conjunto de datos, sería mucho más rápido leerlos todos juntos una sola vez y aplicar las cinco operaciones vectoriales mientras los datos se encontraban en los registros de la CPU. Los registros son extremadamente caros en términos de circuitería de modo que sólo podrían ser unos pocos, lo que significa que el diseño de Cray tendría menos flexibilidad en términos del tamaño del vector. En lugar de leer vectores de cualquier tamaño varias veces como en el STAR, en el diseño de la máquina Cray tendría que leer pequeñas partes de datos a la vez, pero luego ejecutar en ellos varias operaciones al mismo tiempo. Dado el volumen de trabajo típico, Cray consideró que la pequeña pérdida debido al acceso de la memoria en pasos era un costo que valía la pena pagar.

Debido a que la típica operación vectorial implicaría cargar un pequeño conjunto de datos en los registro vectoriales y ejecutar varias operaciones sobre el mismo, el sistema vectorial del nuevo diseño tuvo su propia línea de ejecución separada. Por ejemplo, las unidades de multiplicación y de suma se implementaron en hardware separados, dando como resultado que una línea de ejecución podía ser conducida a la siguiente, y la instrucción ya decodificada podía ser ejecutada en la línea de ejecución principal. Cray se refirió a este concepto como "encadenamiento", ya que permitía a los programadores "encadenar" varias instrucciones y extraer un mayor rendimiento.

Descripción La nueva máquina fue el primer diseño de Cray en utilizar los circuitos integrados (CI). Aunque los CI ya estaban disponibles desde la década de 1960, fue sólo en la década de 1970 que alcanzaron el rendimiento necesario para aplicaciones de alta velocidad. El Cray-1 utiliza sólo 4 diferentes tipos de CI, un ECL doble compuerta NAND (4 de entrada + 5 de entrada, cada una con salida diferencial), otro más lento MECL 4/5 NAND utilizados para expansiones de direcciones, una RAM estática (SRAM) de 16x1 de alta velocidad (6 ns) utilizada para los registros, y una RAM estática de 1k x 1 y 50 ns utilizada para la memoria principal.R.M. Russell, "The CRAY-1 Computer System," Comm. ACM, Jan. 1978, pp. 63–72. En total, la Cray-1 utilizaba cerca de 200.000 compuertas, aproximadamente la misma cantidad que el Intel 386 de la década de 1980.

Los CI fueron montados en grandes placas de circuitos impresos cinco capas, con hasta 144 CI por tarjeta. Se montaban espalda con espalda para refrigeración (véase más adelante) y se colocaron en veinticuatro racks de 71 cm, cada uno con 72 parejas de placas. Un módulo típico (unidad de procesamiento distinta) requerían uno o dos placas. Toda la máquina contenía 1.662 módulos en 133 variantes.