QsNet - entorno de comunicación de Quadrics, proporcionando retrasos a nivel de SCI y rendimiento de hasta 900 MB /s (QsNet II). Debido al alto costo del equipo, QsNet generalmente se usa para construir clústeres de teraflops especialmente grandes .
QsNet consta de dos componentes básicos de hardware: una interfaz de red programable Elan y un conmutador de comunicaciones Elite de alto ancho de banda y baja latencia. Los switches Elite se pueden interconectar en una topología Fat Tree . En términos de software, QsNet proporciona varios niveles de bibliotecas de comunicación que brindan un compromiso entre el rendimiento y la facilidad de uso. QsNet combina estos componentes de hardware y software para implementar un acceso eficiente y seguro a la memoria virtual global mediante operaciones DMA remotas .(DMA). También mejora la resiliencia de la red con enlaces y protocolos de extremo a extremo que detectan fallas y retransmiten paquetes automáticamente.
La interfaz de red Elan conecta la red Quadrics a un nodo de procesamiento que contiene uno o más procesadores . Además de generar y recibir paquetes hacia y desde la red, Elan proporciona una potencia de procesamiento local significativa para implementar protocolos de mensajería de alto nivel, como la interfaz de paso de mensajes (MPI). La estructura funcional interna de Elan se centra en dos procesadores de procesamiento principales: el procesador de microcódigo y el procesador de subprocesos. El procesador de microcódigo de 32 bits admite cuatro subprocesos de hardware. Cada subproceso puede emitir de forma independiente solicitudes de memoria canalizadas al sistema de memoria. Se pueden ejecutar hasta ocho consultas en un momento dado. La programación para el procesador de microcódigo permite que un subproceso se despierte, programe un nuevo acceso a la memoria en función del resultado del acceso a la memoria anterior y vuelva a dormir en solo dos relojes del sistema.
Los cuatro flujos de microcódigo están dedicados a
Un procesador de flujo es un procesador RISC de 32 bits que ayuda a implementar bibliotecas de mensajería de nivel superior sin la intervención explícita del procesador principal. Para hacer esto, QsNet amplía el conjunto de instrucciones con instrucciones adicionales que ayudan a crear paquetes de red, administrar eventos, programar subprocesos de manera eficiente y bloquear el guardado y restaurar el estado del subproceso durante la programación.
La Unidad de administración de memoria (MMU) traduce direcciones virtuales de 32 bits en direcciones físicas locales de SDRAM de 28 bits o direcciones físicas de interconexión de componentes periféricos (PCI) de 48 bits . Para traducir estas direcciones, la MMU contiene un búfer asociativo de traducción totalmente asociativo con 16 entradas, una máquina operativa y una máquina de estado para atravesar la tabla de páginas para llenar el búfer y guardar información cuando la MMU falla.
Elan contiene tablas de enrutamiento que traducen cada número de procesador virtual en una secuencia de etiquetas que definen una ruta de red. El software del sistema puede cargar múltiples tablas de enrutamiento para proporcionar diferentes estrategias de enrutamiento.
Elan tiene 8 KB de caché (organizados en cuatro conjuntos de 2 KB cada uno) y 64 MB de SDRAM . El tamaño de la línea de caché es de 32 bytes. La memoria caché realiza rellenos de canalización desde SDRAM y puede emitir múltiples rellenos de memoria caché y reescrituras para diferentes bloques mientras da servicio a los accesos a los bloques almacenados en memoria caché. La interfaz SDRAM tiene una longitud de 64 bits con ocho bits de verificación agregados para proporcionar un código de corrección de errores. La interfaz de memoria también contiene búferes de lectura y escritura de 32 bytes.
El enlace lógico transmite y recibe datos de la red y genera 9 bits y una señal de reloj cada medio ciclo de reloj. Cada enlace proporciona espacio de búfer para dos canales virtuales con 128 entradas de RAM FIFO de 16 bits para control de flujo.
Élite proporciona
QsNet conecta switches Elite en una topología de árbol cuádruple . El árbol de dimensión cuádruple engrosada consta de nodos de procesamiento y conmutadores interconectados en forma de red delta; se puede construir recursivamente uniendo cuatro árboles de dimensión cuádruple engrosada .
Las redes Elite se enrutan en la fuente. La interfaz de red de Elan , que reside en el nodo de la red, agrega información de enrutamiento al encabezado del paquete antes de que el paquete ingrese a la red. La información de la ruta es una secuencia de etiquetas de enlace Elite. A medida que el paquete viaja dentro de la red, cada switch Elite elimina la primera etiqueta de ruta del encabezado y reenvía el paquete al siguiente switch en la ruta o destino final. Una etiqueta de enrutamiento puede identificar un solo enlace de salida o un grupo de enlaces.
La interfaz Elan pasa cada paquete en la red utilizando un control de flujo de agujero de gusano . A nivel de enlace, la interfaz Elan divide cada paquete en bloques más pequeños de 16 bits. Cada paquete se cierra con un token de fin de paquete, pero el Elan original generalmente envía un token de fin de paquete solo después de recibir el token de confirmación del paquete. Este proceso implica que la transmisión de cada paquete crea un circuito virtual entre el origen y el destino.
Los nodos de red pueden enviar paquetes a múltiples destinos usando la capacidad de transmisión de la red. Para entregar con éxito un paquete de difusión, el nodo de origen debe recibir un reconocimiento positivo de todos los destinatarios del grupo de difusión. Todas las interfaces de Elan conectadas a la red pueden recibir paquetes de difusión, pero si lo desea, el remitente puede limitar el conjunto de mensajes de difusión a un subconjunto de Elan físicamente contiguos.
Elan puede transferir información directamente entre los espacios de direcciones de los grupos de procesos que cooperan mientras mantiene la seguridad del hardware entre esos grupos de procesos. Esta capacidad, llamada operación virtual, es una extensión compleja del mecanismo de memoria virtual convencional basado en dos conceptos: la memoria virtual de Elan y el contexto de Elan.
Elan tiene una MMU para convertir direcciones de memoria virtual proporcionadas por varios bloques de funciones en el chip (procesador de flujo, motor DMA, etc.) en direcciones físicas. Estas direcciones de memoria física pueden ser la memoria local de Elan ( SDRAM ) o la memoria principal del host. Para admitir el acceso a la memoria principal, las tablas de configuración de las MMU de Elan se sincronizan con las tablas de la MMU del procesador principal para que Elan pueda acceder a su espacio de direcciones virtuales . El software del sistema es responsable de sincronizar las tablas de MMU y es invisible para los programadores.
MMU Elan puede convertir entre direcciones virtuales en el formato del procesador principal y direcciones virtuales escritas en el formato Elan (palabra de 32 bits, arquitectura little-endian).
Las tablas de MMU pueden asignarse a un área compartida de memoria virtual llamada montón . El asignador bajo demanda asigna páginas físicas (principal o Elan) a este rango de direcciones virtuales. Por lo tanto, utilizando las funciones de asignación proporcionadas por la biblioteca Elan, el usuario puede asignar partes de la memoria virtual desde la memoria principal o la memoria Elan, y el procesador principal y la MMU Elan pueden coincidir.
En un sistema de memoria virtual convencional, a cada proceso de usuario se le asigna un número de identificación de proceso que define el conjunto de tablas de MMU y, por lo tanto, los espacios de direcciones físicas disponibles para el proceso de usuario. QsNet amplía este concepto para que los espacios de direcciones de usuario en un programa paralelo puedan superponerse. Elan reemplaza el valor de ID de proceso con el valor de contexto. Los procesos de usuario pueden acceder directamente al segmento de memoria remota exportado utilizando el valor de contexto y la dirección virtual. Además, el valor de contexto también determina qué procesos remotos pueden acceder al espacio de direcciones a través de la red Elan y dónde residen esos procesos. Si el proceso de usuario es multihilo, los hilos compartirán el mismo contexto de la misma manera que comparten el mismo espacio de direcciones de memoria principal. Si un nodo tiene múltiples procesadores físicos, diferentes procesadores pueden ejecutar subprocesos separados. Sin embargo, los subprocesos seguirán compartiendo el mismo contexto.
Es importante tener en cuenta que la detección de fallas y la tolerancia a fallas ocurren entre dos Elans que interactúan. Durante el funcionamiento normal, una fuente de Elan transmite un paquete (es decir, información de ruta para el enrutamiento de fuente seguido de una o más transacciones). Cuando un destinatario en el objetivo Elan recibe una transacción con el indicador ACK Now, significa que esta transacción es la última del paquete. Después de la asignación, Elan envía un paquete de reconocimiento, el token se devuelve al Elan de origen. Solo cuando la fuente de Elan recibe un token de reconocimiento de paquete y envía un token de fin de paquete para indicar la finalización de la transmisión del paquete. La regla básica de la red Elan es que por cada paquete enviado a través del enlace, la interfaz Elan devuelve un token de confirmación de paquete. La red no reutilizará el enlace hasta que Elan finalice el envío de dicho token.
Si Elan detecta un error al transmitir un paquete a través de QsNet, envía inmediatamente un mensaje de error sin esperar el token de reconocimiento del paquete. Si Elite detecta un error, propaga automáticamente el mensaje de error a la fuente y al destinatario. Durante este proceso, el origen y el destino Elan y Elite entre ellos aíslan el enlace fallido y/o conmutan mediante la detección de fallas en cada salto; se notifica a la fuente sobre el componente fallido y puede retransmitir el paquete predeterminado varias veces. Si esto falla, el origen puede reconfigurar sus tablas de enrutamiento en consecuencia para evitar un componente fallido.
A continuación se muestran los tipos de comunicaciones más utilizados por las supercomputadoras y sus principales características.
Buses e interfaces de computadora | |
---|---|
Conceptos básicos | |
Procesadores | |
Interno | |
portátiles | |
Unidades | |
Periferia | |
Gestión de equipos | |
Universal | |
Interfaces de vídeo | |
Sistemas embebidos |