Vous êtes sur la page 1sur 12

Sper computadoras de la familia CRAY

Un poco de historia, la familia Cray. Los supercomputadores, tal y como los entendemos hoy en da, comenzaron su poca dorada en torno a los aos 70 de la mano fundamentalmente de dos empresas "Control Data" y posteriormente "Cray Research". Otras empresas tambin asociadas al mismo campo, y en las mismas dcadas de los 70, 80 quedaron relegadas a un segundo plano debido a la brillantez de las mquinas desarrolladas por estas empresas. ( MassPar, Mips, Convex etc..). Una detalle comn a ambas en sus momentos de esplendor, trabajaba Seymour Cray , un genio en supercomputadoras cuya fama ha trascendido a su muerte y que Nacido en 1925 en Winsconsin, ingeniero elctrico y matemtico. Trabaj en el desarrollo del UNIVAC 1103 como responsable de diseo. En 1957 funda la compaa Control Data Corporation - CDC - para la construccin de ordenadores comerciales a base de transistores en lugar de vlvulas de vaco. Comienzan creando mquinas comerciales como el CDC1604, culminando con la creacin en 1963 del CDC 6600, con el que se coloca por delante de IBM en cuanto a coste y capacidad de clculo. A finales de la dcada sacan al mercado el CDC 7600, el primer supercomputador de la historia. En 1972 funda su propia empresa "Cray Research Inc.". El objeto de la compaa es producir superordenadores bajo pedido. Quiere cubrir la necesidad que va en aumento gradual de simulacin y clculo de problemas complejos para fines cientficos y militares. Realmente lo que ansiaba era investigar exclusivamente en el campo que realmente le apeteca, la construccin de supercomputadores, motivo por el que separ de CDC. Cuatro aos ms tarde, en 1976, produce el primer supercomputador, el CRAY-I, para el laboratorio de Los Alamos. De 160 MFLOPS , su coste se situaba en torno a los 10 millones de dlares. En tres aos haba vendido seis mquinas de este tipo de las que llegar a construir 50. Nada ms salir al mercado, Seymour Cray ya est pensando en mejorarla. Al Cray I le sucede el modelo XM-P, lanzado en 1983. De dos procesadores con memoria y E/S compartido era capaz de proporcionar 500 megaflops siendo el primer multiprocesador la familia. Sobre l corra el primer sistema operativo de la compaa, basado en UNIX, al que denominan UNICOS. En 1985 sacan el CRAY II, compuesto por 4 procesadores y que dispona de 256 millones de palabras y 240.000 chips. Llegaba a tener un pico de 1,9 gigaflops y una memoria de 2048 Mbytes. Era de de 6 a 12 veces ms rpido que el I. CRAY II El calor generado por la electrnica en torno a 220 KWera tal, que su interior se encontraba inundado con lquido refrigerante. A mediados de los 80 la compaa controlaba el 70% del mercado de la supercomputacin mundial. En 1988 se desarrolla el Cray Y-MP, el primer ordenador capaz de mantener de mantener de continuo 1 Gigaflops con puntas de 2,3 Gigaflops. Con la salida al mercado de este modelo, se produce una disociacin en la firma de la que Seymour Cray se desvincula parcialmente con el objeto de desarrollar un nuevo supercomputador, basado en el CRAY II pero con chips de arseniuro de galio.

Para ello crea una nueva empresa pero sin desligarse totalmente de la actual, la Cray Computer Corporation. Por entonces los procesadores de tipo Cisc y Risc haban comenzado su evolucin, abaratndose y ganando potencia. Unido esto al descenso de coste de los nuevos equipos y el aumento progresivo de la competencia, hacan insostenible las formas de desarrollo de nuevas mquinas tal y como se realizaba. Seymor no consciente del cambio, sigue en su afn de investigacin de los chips de arseniuro de galio. En 1989 el proyecto del Cray III se cancela despus de haberse invertido 189 millones de dolares. Le arrecian las crticas desde la empresa matriz. Seymou Cray decide entonces abandonar definitivamente su empresa original y seguir con su investigacin. Despus de solventar muchos problemas tcnicos logra finalmente sacar al mercado la Cray III en 1993. Sin embargo la nueva empresa se declara en quiebra en 1995. Cray Research Inc. sigue por su lado con el desarrollo de la lnea de supercomputadoras. En 1990 lanza el C90 y el T90. En 1993 lanza el primer MPP o supercomputador sistema masivamente paralelo, el T3D. A este le sigue uno todava mejor el T3E-1200 capaz de sostener 1 Teraflops y que obtiene una importante penetracin en el mercado, presente an en la actualidad en muchas universidades y empresas. En 1996 Seymour Cray muere en accidente de coche a los 71 aos. Este mismo ao Cray Research In. se termina uniendo con Silicon Graphics Inc. SGI es otra poderosa compaa de equipos de computacin de alto rendimiento, formando la primera compaa cientfica y tcnica de computacin del mundo. Este 1999 SGI crea una unidad de negocio independiente de cara a los usuarios de supercomputacin. Esta unidad ha sido vendida este ao a Tera Computer Company. La compaa se ha comprometido a duplicar el nmero de procesadores cada 6 meses.

Evaluacin del rendimiento de supercomputadores. ( Benchkmarks etc..) Para determinar el rendimiento de una mquina sobre un problema vectorial, debemos de analizar el coste de arranque y la velocidad sostenida. La forma ms sencilla y mejor de informar sobre el rendimiento de una mquina vectorial sobre un bucle, es dar el tiempo de ejecucin del bucle vectorial. Para los bucles vectoriales a menudo se da la velocidad en MFLOPS, en lugar del tiempo de ejecucin. En cualquier evento, cualquier otra medida debera de incluir los costes adicionales. Como la longitud del vector es tan importante para establecer el rendimiento de una mquina, con frecuencia se aplican medidas relacionadas con la longitud, adems del tiempo y de los MFLOPS. Estas medidas relacionadas con la longitud del vector tienden a variar de manera espectacular a travs de las mquinas y son interesantes de comparar. Tres medidas son importantes relacionadas con la longitud, que son:

1. La velocidad en MFLOPS sobre un vector de longitud infinita.. aunque sta medida puede ser de inters cuando se estiman rendimientos mximos, los problemas reales no tienen longitudes de vectores infinitas, y las penalizaciones de los costes adicionales encontrados en problemas reales sern mayores. 2. La longitud del vector necesaria para alcanzar la mitad de la medida anterior. Esto es una buena medida del impacto de los costes adicionales. 3. La longitud del vector necesaria para hacer el modo vectorial ms rpido que el modo escalar. Esto mide el coste adicional y la velocidad de los escalares relativa a los vectores. El tiempo de ejecucin de cada operacin vectorial del bucle tiene dos componentes, que son el tiempo de arranque y la velocidad de iniciacin. El tiempo de arranque depende de la latencia de las etapas o segmentos de la operacin vectorial y est determinada fundamentalmente por el nmero de etapas necesarias de la unidad funcional utilizada. La velocidad de iniciacin es el tiempo por resultado una vez que una instruccin vectorial est en ejecucin; sta frecuencia, habitualmente, es uno por ciclo de reloj para operaciones individuales, aunque algunos supercomputadores tienen operaciones vectoriales que pueden producir dos o ms resultados por reloj. Vamos a ver un modelo para comprender el rendimiento de un bucle vectorizado. Hay tres componentes clave del tiempo de ejecucin de un bucle seccionado cuyo cuerpo es una secuencia de instrucciones vectoriales: El tiempo de cada operacin vectorial en el bucle para procesar un elemento, ignorando los costes de arranque, que llamaremos TEL. la secuencia vectorial tiene, con frecuencia, un solo resultado, en cuyo caso TEL es el tiempo en producir un elemento de ese resultado. Si la secuencia vectorial produce mltiples resultados, TEL es el tiempo en producir un elemento de cada resultado. Este tiempo depende solamente de la ejecucin de las instrucciones del vector.
                 ! 

bloque seccionado. Este coste est formado por el coste de ejecucin del cdigo escalar para seccionamiento de cada bloque, TBUC, mas el costo de arranque para cada bloque, TARR. s costes adicionales del clculo de las direcciones de comienzo y la escritura del vector de control. Esto se presenta una vez para la operacin completa del vector. Este tiempo, TBASE, consta nicamente de instrucciones escalares. Estos componentes se pueden utilizar para determinar el tiempo total de ejecucin para una secuencia vectorial operando sobre un vector de longitud N, que llamaremos TN: TN = TBASE + (N/MVL) * (TBUC+TARR ) + (N*TEL)

Donde (N/MLV) representa la divisin entera truncada. Los tiempos de arranque y de bucle son dependientes de la mquina y del compilador, mientras que el valor de TEL depende principalmente del hardware. Podemos dar tres tcnicas para mejorar el rendimiento de las mquinas vectoriales. La primera se trata de hacer que una secuencia de operaciones vectoriales dependientes se ejecute con ms rapidez. Las otras dos tratan con la ampliacin de la clase de bucles que se pueden ejecutar en modo vectorial. La primera tcnica, encadenamiento, se empez a usar en el CRAY 1, pero ahora est soportada en muchas mquinas vectoriales. Las dems tcnicas estn pensadas para mquinas con capacidades mayores. El encadenamiento permite que una operacin vectorial comience tan pronto como los elementos vectoriales de su operando fuente estn disponibles: los resultados de la primera unidad funcional de la cadena se adelantan a la segunda unidad funcional. Otra tcnica ms moderna es el uso de las mscaras como mtodo para el control de vectores. Cuando se carga el registro de mscara vectorial con el resultado de un test del vector, cualquier instruccin, vectorial que se vaya a ejecutar, solamente opera sobre los elementos del vector cuyas entradas correspondientes en el registro de mscara valga 1. Otro mtodo consiste en tratar con matrices dispersas. El mecanismo principal para tratar con matrices dispersas son las operaciones de dispersar y agrupar usando vectores de ndices. Las tendencias actuales en el diseo de mquinas vectoriales se han centrado en el alto rendimiento vectorial y multiprocesamiento

CRAY- 1 Emplea tecnologa ECL de 0,7 ns y MOS de 7 ns. Funciona a una frecuencia de reloj de 12,5 ns y no puede trabajar de forma autnoma. Se necesita un computador principal (front-end host), un host para que dirija el sistema. Como frontales o host, se han utilizado un computador Eclipse de Data General o un procesador A de Cray Research, a los cuales se conecta la UCP del Cray-1 mediante los canales de E/S. La figura 2.1 muestra la interfaz entre el sistema frontal y la memoria y las secciones funcionales del Cray-1. El CRAY-1, disponible desde 1976, ha sido considerado el primer computador vectorial moderno. La arquitectura CRAY-1 consta de:
8 " " #

funcionales de segmentacin encauzada. Gracias al encadenamiento de las funciones encauzadas, los resultados intermedios se utilizan tan pronto estn disponibles.

H G E F ED C B

A @

4 7 7 6 3 & ) (4

' 5

) 04 5 ' 1 3 ' & (4

) 04 3 2 1 ' 1

) 0 ) ( '& % $

Una serie de registros de trabajo.

ones y de datos, y

La CPU contiene:
I I p

Veinticuatro canales de E/S se conectan al computador frontal, las estaciones de E/S, el equipo perifrico, el subsistema de almacenamiento masivo y una unidad de control de mantenimiento (UCM). El sistema frontal recoger los datos, los presentar al Cray-1 para su procesamiento y recibir los resultados del Cray-1 para distribuirlos a los dispositivos ms lentos. En la tabla 2.1 se resumen las caractersticas ms importantes de las tres secciones en la UCP del Cray-1. Seccin de memoria. Est organizada en 8 16 bancos con 72 mdulos cada uno. La memoria principal utiliza RAM bipolares y puede alcanzar una capacidad de un milln de palabras de 72 bits. los cuales 8 bits son comprobaciones de paridad para correccin de un error y
t s sx s t yx s w y w y s y u u t yx w t v u s t s r p q

i h g f

a e

X dc b b a `

S R Q

Y X W

UP

P q

Una seccin de computacin, eccin de memoria y

deteccin de dos errores (SECDED: Single Error Correction, Double Error Detection). entrelazamiento de diecisis vas para lograr accesos ms rpidos con pocos conflictos en los bancos. reloj) seccin de computacin puede hacerse a razn de una, dos o cuatro palabras por periodo de reloj. Con un ciclo de memoria de 50 nseg, el ancho de banda de la memoria es de 320 millones de palabras/seg, o de 80 millones de palabras por perodo de reloj. Estas velocidades de transferencia tan elevadas son necesarias para igualar el elevado ancho de banda de procesamiento que alcanzan los cauces funcionales. Seccin E/S.
} v | s x ~ w z y } v | {z y u sx w v t u t s r p q o i gk n m f l fk g h j i fd i hg e f e d

son atendidos sin distincin por todos los bancos de memoria puede transferir una palabra de 64 bits por canal durante cada perodo de reloj.

para lograr la mxima transferencia de instrucciones a la seccin de computacin. sistema y controla su rendimiento. proporciona una memoria secundaria de gran capacidad adems del milln de palabras de la memoria principal bipolar. Seccin de computacin. En la figura 2.2 se representa un diagrama de bloques de la seccin de computacin. registros con diferentes funciones. con uno a siete retardos de reloj excepto la unidad de clculo de la inversa (1/x), que tiene un retardo de 14 perodos de reloj. las computaciones con enteros de 24 bits y con nmeros en coma flotante de 64 bits. Segn su utilizacin, existen cinco tipos de registros: tres tipos primarios y dos tipos intermedios. registros de direccin (A), los registro escalares (S) y los registros vectoriales (V).Las unidades funcionales pueden acceder directamente a estos registros primarios. intermedios se denominan registros salvaguarda de direcciones (B), y registro salvaguarda de escalares (T). Los T estn para ayudar a los registros escalares, y los B para ayudar a los de direcciones. No son directamente accesibles por las unidades funcionales. Actan como memorias intermedias entre la memoria bipolar y los registros primarios. Son posibles las transferencias de bloques entre los registros B y T y los bancos de memoria bipolar.

La seccin de E/S contiene 12 canales de entrada y otros 12 de salida. Cada canal tiene una frecuencia de transferencia de 80 Mbytes/s como mximo.

Registros. Registros de direcciones A. direccionamiento de la memoria, indexacin, cuenta de desplazamientos, control de bucles y direccionamiento de canales de E/S. directamente entre la memoria bipolar y los registros A o pueden colocarse primero en los registros B y transmitidos despus a los registros A. Registros de salvaguarda de direcciones B. los datos que van a ser referenciados repetidamente durante un periodo suficientemente largo. No es conveniente retener tales datos en los registros A o en la memoria Bipolar. Ejemplo de tales usos son las cuentas de bucles, las direcciones de base de matrices variables y el control de las dimensiones. Registros escalares S. Hay ocho registros de 64 bits que sirven como depsito de los operandos fuentes y destinos para la ejecucin de instrucciones lgicas de aritmtica escalar. los registros S o pueden colocarse primero en los registros T y transferirlos despus a los registros S. Registros de salvaguarda de escalares T. la memoria bipolar mediante instrucciones de lectura o escritura de bloques. transferencia de bloques se produce a la velocidad mxima de una palabra por periodo de reloj. Registros vectoriales V. grupo de datos se almacena en los registros componentes de un registro V para formar un operando vectorial. Las instrucciones vectoriales exigen el proceso iterativo de los componentes contenidos en los subregistros. Una operacin vectorial comienza con la obtencin de operandos desde el primer componente de un registro V y finaliza con la entrega del resultado vectorial a un registro V. Los sucesivos operandos componentes se suministran en cada periodo de reloj y el resultado se entrega a los sucesivos elementos del registro V resultado. La operacin vectorial contina hasta que el nmero de operaciones realizadas coincide con un valor de cuenta especificado por el registro de longitud de vector (VL). Los vectores que tengan una longitud mayor de 64 se manejan bajo control de programa en grupos de 64 ms un resto. Los contenidos de un registro se transfieren a o desde la memoria en modo bloque especificando la direccin de la primera palabra en memoria, el incremento de la direccin de memoria y la longitud del vector.
) I H2 D ' E ) ' ) 6 G F 6 & D 6 A E DC B ' A @ 9 ) 6 & 6 ) 8 0 ( 0 & 6 7 & 6 5 0 4 2 0 0 3 ) 1 ' ( ' & & % # 2 1 !    "   !   $ #    "   !

 

 

       

    

 

 

  

 

 

    

Registro contador de programa P.


P V V V

Registro NIP. antes de que pase al registro CIP. Registro CIP. in actual, CIP (current instruction parcel), es un registro de 16 bits que se encuentra a la espera de ser lanzada a ejecucin.
V p p U a e Y `d b S be b U T r q f a e Yd c b a u X r t ra c fa q b S f cd S s p b S be b U T r q ` U b ` bd e ` f p b U T Y ed i h g b S f a e Yd c b a ` U Y X

Registro LIP.
v Y ed i W h g b S f a e Yd c b a ` U Y X

contiene la parte superior de la instruccin, y la parte inferior se almacena en el registro paquete de instruccin inferior LIP(Lower instruction parcel). Otros registros. vectores de mscara (VM), de direccin de base (BA), de direccin lmite (LA), de direccin de intercambio (XA) de indicadores (F) y el registro de modo (M), se utilizan con fines de enmascaramiento, deireccionamiento y de control de programa. Unidades funcionales.
e l h k j i hg f e d

y x

y x w

U T S R

Q W W W

Es un registro de 22 bits que seala el siguiente paquete (parcel: parte de una instruccin) de cdigo del programa que va a entrar al registro paquete de instruccin siguiente (NIP: next instruction parcel) en una secuencia lneal del programa. iere un nuevo valor en caso de instruccin de bifurcacin o de cambio de secuencia.

Encadenamiento de cauces y bucles vectoriales. El Cray-1 est diseado para permitir la realizacin de muchas operaciones aritmticas sobre operandos que residen en registros antes de devolverlos a memoria. Los recursos tales como registros y cauces funcionales deben ser reservados adecuadamente para posibilitar el procesamiento vectorial mltiple. En la arquitectura de registro-a-registro, todos los operandos vectoriales se cargan previamente en registros vectoriales rpidos antes de enviarlos a los cauces. Los resultados intermedios y finales (salidas de los cauces) tambin se cargan en registros vectoriales antes de almacenarlos en la memoria principal. Consideremos el problema de la reserva de recursos presentes en un procesador vectorial de registro-a-registro como el Cray-1. Como ilustra la figura 2.4 las instrucciones vectoriales pueden clasificarse en cuatro tipos:
p o m m m mn n n n

instruccin de tipo 1: obtiene los operandos desde uno o dos registros vectoriales y devuelve el resultado a otro registro vectorial. instruccin de tipo 2: consume un operando escalar procedente de un registro Sj y un operando vectorial, Vi. instruccin de tipo 3: transfiere datos de memoria hasta un registro vectorial. instruccin de tipo 4: transfiere datos de un registro vectorial a memoria. Un camino de datos entre memoria y los registros de trabajo puede ser considerado como un cauce de datos con un retardo de tiempo fijo. Cuando se lanza a ejecucin una instruccin vectorial, los cauces funcionales y los registros operando implicados se reservan durante una serie de periodos de reloj determinada por la longitud del vector. Las instrucciones vectoriales siguientes que utilicen el mismo conjunto de unidades funcionales o registros operando no pueden ser lanzadas a ejecucin hasta que se liberen las reservas hechas. Dos o ms instrucciones vectoriales pueden usar diferentes cauces funcionales y diferentes registros vectoriales al mismo tiempo. Tales instrucciones concurrentes pueden iniciarse en periodos de reloj consecutivos. En la figura 2.5 se muestran diferentes juegos de instrucciones en los que se especifica la compatibilidad o incompatibilidad de la concurrencia. Al igual que se reservan los registros perandos, tambin los registros resultado tienen que reservarse durante el nmero de periodos de reloj determinado por la longitud de vector y los retardos de cauce. Esta reserva asegura la transmisin correcta del resultado final al registro resultado.
p o p o p o

Un registro resultado puede convertirse en registro operando de una instruccin posterior. En el Cray-1, esta tcnica se denomina encadenamiento de dos cauces. El encadenamiento de cauces es una extensin del concepto de reexpedicin interna. Bsicamente, el encadenamiento es un proceso de enlace que ocurre cuando los resultados obtenidos en una unidad encauzada se envan directamente a los registros operando de otro cauce funcional. En definitiva permite que las operaciones subsiguientes sean iniciadas tan pronto como el primer resultado est disponible como operando. No es necesario mandar los datos a memoria y pueden ser utilizados antes de que haya terminado la operacin vectorial. Lgicamente, los cauces funcionales y los registros operandos deseados deben estar reservados adecuadamente; si no las operaciones de encadenamiento tienen que suspenderse hasta que los recursos solicitados estn disponibles.

Vous aimerez peut-être aussi