Articulo de referencia

Cray MTA

El Cray MTA , anteriormente conocido como Tera MTA , es una arquitectura de supercomputadora basada en miles de hilos independientes, comunicación y sincronización de grano fino...

El Cray MTA , anteriormente conocido como Tera MTA , es una arquitectura de supercomputadora basada en miles de hilos independientes, comunicación y sincronización de grano fino entre hilos, y tolerancia a la latencia para cálculos irregulares.

Cada procesador MTA ( CPU ) tiene una ALU de alto rendimiento con muchos conjuntos de registros independientes, cada uno ejecutando un hilo independiente. Por ejemplo, el Cray MTA-2 usa 128 conjuntos de registros y, por lo tanto, 128 hilos por CPU/ALU. Todos los MTA hasta la fecha usan una configuración de procesador de barril , con un cambio de hilo en cada ciclo, omitiendo los hilos bloqueados (detenidos) para evitar el desperdicio de ciclos de la ALU. Cuando un hilo realiza una lectura de memoria, la ejecución se bloquea hasta que se reciben los datos; mientras tanto, otros hilos continúan ejecutándose. Con suficientes hilos (concurrencia), casi siempre hay hilos ejecutables para "cubrir" los hilos bloqueados, y las ALU se mantienen ocupadas. El sistema de memoria usa bits llenos/vacíos para asegurar el orden correcto. Por ejemplo, una matriz A se escribe inicialmente con bits "vacíos", y cualquier hilo que lea un valor de A se bloquea hasta que otro hilo escribe un valor. Esto asegura el orden correcto, pero permite una intercalación granular y proporciona un modelo de programación simple. El sistema de memoria también es aleatorio, de modo que las direcciones físicas adyacentes se asignan a diferentes bancos de memoria. Por lo tanto, cuando dos hilos acceden a la memoria simultáneamente, rara vez entran en conflicto, a menos que accedan a la misma ubicación.

Uno de los objetivos de la MTA es que la portabilidad de códigos de otras máquinas sea sencilla, pero con un buen rendimiento. Un compilador FORTRAN paralelizado puede lograr un alto rendimiento para algunos códigos con poca intervención manual. Cuando se requiere portabilidad manual, el modelo de sincronización simple y de grano fino a menudo permite a los programadores escribir código de la manera "obvia" y aun así obtener un buen rendimiento. Otro objetivo es que los programas para la MTA sean escalables ; es decir, que al ejecutarse en una MTA con el doble de CPU, el mismo programa tenga casi el doble de rendimiento. Ambos aspectos representan desafíos para muchos otros sistemas informáticos de alto rendimiento. 

Una característica poco común del MTA es que permite intercalar varias cargas de trabajo con un buen rendimiento. Normalmente, las supercomputadoras se dedican a una sola tarea a la vez. El MTA permite asignar los hilos inactivos a otras tareas con muy poco impacto en los cálculos principales.

Implementaciones

Se han realizado tres implementaciones de MTA y, a partir de 2009, está prevista una cuarta. Las implementaciones son:

  • MTA-1 El MTA-1 utiliza un procesador GaAs y fue instalado en el Centro de Supercomputación de San Diego . Utilizaba cuatro procesadores (512 hilos).
  • MTA-2. El MTA-2 utiliza un procesador CMOS y fue instalado en el Laboratorio de Investigación Naval . Según se informó, era inestable, pero al estar dentro de una instalación segura, no se pudo depurar ni reparar.
  • MTA-3 El MTA-3 utiliza la misma CPU que el MTA-2, pero una interfaz de red mucho más barata y lenta. Se han vendido aproximadamente seis sistemas Cray XMT (2009) que utilizan el MTA-3. [ 1 ]
  • MTA-4 El MTA-4 es un sistema planificado (2009) que tiene una arquitectura similar, pero utilizará un almacenamiento en caché de datos limitado y una interfaz de red más rápida que el MTA-3.

Actuación

Solo se han implementado unos pocos sistemas y únicamente se han publicado ampliamente los resultados de las pruebas de rendimiento MTA-2, lo que dificulta las comparaciones de rendimiento.

En varias pruebas comparativas, un MTA-2 de 2 CPU muestra un rendimiento similar al de un Cray T90 de 2 procesadores . [ 2 ] Para la aplicación específica de trazado de rayos, un MTA-2 de 4 CPU fue aproximadamente 5 veces más rápido que un Cray T3E de 4 CPU , y al escalar de 1 CPU a 4 CPU, el rendimiento de Tera mejoró en 3,8 veces, mientras que el T3E, al pasar de 1 a 4 CPU, mejoró solo en 3,0 veces. [ 3 ]

Consideraciones arquitectónicas

Otra forma de comparar sistemas es mediante los costes generales y los cuellos de botella inherentes al diseño.

El MTA utiliza muchos conjuntos de registros, por lo que cada acceso a un registro es lento. Si bien la concurrencia (ejecución de otros hilos) generalmente oculta la latencia, el acceso lento al archivo de registros limita el rendimiento cuando hay pocos hilos ejecutables. En las implementaciones de MTA existentes, el rendimiento de un solo hilo es de 21 ciclos por instrucción [ 4 ] , por lo que el rendimiento se ve afectado cuando hay menos de 21 hilos por CPU.

Los MTA-1, -2 y -3 no utilizan cachés de datos. Esto reduce la complejidad de la CPU y evita problemas de coherencia de caché. Sin embargo, la ausencia de caché de datos introduce dos problemas de rendimiento. Primero, el sistema de memoria debe admitir el ancho de banda de acceso a datos completo de todos los hilos, incluso para datos no compartidos y, por lo tanto, almacenables en caché. Por lo tanto, un buen rendimiento del sistema requiere un ancho de banda de memoria muy alto . Segundo, las referencias a memoria toman 150-170 ciclos, [ 4 ] [ 5 ] una latencia mucho mayor que incluso una caché lenta, lo que aumenta la cantidad de hilos ejecutables necesarios para mantener ocupada la ALU. El MTA-4 tendrá una caché no coherente, que se puede utilizar para datos de solo lectura y no compartidos (como marcos de pila no compartidos), pero que requiere coherencia de software, por ejemplo, si un hilo se migra entre CPU. La competencia de la caché de datos suele ser un cuello de botella de rendimiento para procesadores altamente concurrentes, y a veces incluso para sistemas de 2 núcleos; Sin embargo, al utilizar la caché para datos que se comparten en gran medida o que tienen una localidad muy alta (marcos de pila), se puede mantener baja la competencia entre los hilos.

Los cambios de estado (lleno/vacío) utilizan sondeo, con un tiempo de espera para los hilos que sondean durante demasiado tiempo. Un hilo que ha agotado el tiempo de espera puede ser desprogramado y el contexto de hardware utilizado para ejecutar otro hilo; el planificador del sistema operativo establece un bit de "trampa en escritura" para que la escritura esperada genere una trampa y vuelva a colocar el hilo desprogramado en la cola de ejecución . [ 5 ] Cuando el hilo desprogramado se encuentra en la ruta crítica, el rendimiento puede verse afectado sustancialmente.

El MTA tolera la latencia, incluso la irregular, y ofrece un buen rendimiento en cálculos irregulares si hay suficiente concurrencia para compensar los retrasos. El hardware tolerante a la latencia puede resultar ineficiente en cálculos regulares, incluso en aquellos con alta latencia que se pueden programar fácilmente.

Véase también

Referencias

  1. "Cray XMT System" . 2009. Archivado del original el 15 de enero de 2010.
  2. "Rendimiento multiprocesador en el Tera MTA" . 1999. Archivado del original el 22 de febrero de 2012.
  3. "Visualización de volumen con gran cantidad de datos en Tera MTA y Cray T3E" . 1999. Archivado del original el 15 de agosto de 2010. Consultado el 16 de diciembre de 2009 .
  4. 1 2 "Tera MTA (Arquitectura Multihilo)" . 1999.
  5. 1 2 "Microbenchmarking del Tera MTA" (PDF) . 1999.