Consejos útiles

Redes para supercomputadoras

La informática distribuida es una forma de contribuir a algunos proyectos interesantes. Cuando su computadora esté inactiva, comparta su poder con el proyecto SETI, que busca civilizaciones extraterrestres. En este caso, su computadora analizará los datos satelitales y la información recibida de los telescopios.

Este artículo lo ayudará a unirse a proyectos (como SETI) que involucran computación distribuida. El artículo también le presenta a BOINC, un software informático distribuido.

Necesitas una computadora. Si ya tiene uno, vaya a la sección Fuentes y enlaces e instale el software BOINC. Si no está interesado en el proyecto SETI, a continuación encontrará una lista de otros proyectos.

Si mucho dinero

Por separado, observamos la línea de procesadores extremadamente costosa pero productiva en el zócalo Intel Xeon LGA1567.
El procesador superior de esta serie es el E7-8870 con diez núcleos de 2.4 GHz. Su precio es de $ 4616. Para tales CPU, HP y Supermicro están lanzando! ocho procesadores! chasis del servidor Ocho procesadores Xeon E7-8870 de 2,4 GHz de 10 núcleos con HyperThreading admiten 8 * 10 * 2 = 160 subprocesos, que se muestran en Windows Task Manager como ciento sesenta gráficos de carga del procesador, matriz 10x16.

Para que ocho procesadores quepan en la caja, no se colocan inmediatamente en la placa base, sino en placas separadas que se adhieren a la placa base. La foto muestra cuatro placas base con procesadores instalados en la placa base (dos en cada uno). Esta es una solución Supermicro. En la solución HP, cada procesador tiene su propia placa. El costo de una solución HP es de dos a tres millones, dependiendo de la cantidad de procesadores, memoria y más. El chasis Supermicro cuesta $ 10,000, que es más atractivo. Además, Supermicro puede colocar cuatro tarjetas de expansión de coprocesador en los puertos PCI-Express x16 (por cierto, todavía habrá espacio para un adaptador Infiniband para ensamblar un grupo de estos), pero solo dos en HP. Por lo tanto, para crear una supercomputadora, una plataforma de ocho procesadores de Supermicro es más atractiva. La siguiente foto de la exposición muestra la supercomputadora completa con cuatro placas GPU.

Sin embargo, es muy costoso.

Redes de comunicacion

La efectividad de una supercomputadora en muchas aplicaciones está determinada en gran medida por el perfil de trabajar con memoria y red. El perfil de trabajar con memoria generalmente se describe por la localización espacio-temporal de las llamadas, por el tamaño de las llamadas y la dispersión de sus direcciones, y el perfil de trabajar con la red se describe por la distribución de nodos con los que se intercambian mensajes, la tasa de cambio y los tamaños de los mensajes.

El rendimiento de una supercomputadora en tareas con intercambio intensivo de datos entre nodos (problemas de modelado, problemas en gráficos y cuadrículas irregulares, cálculos con matrices dispersas) está determinado principalmente por el rendimiento de la red, por lo que el uso de soluciones comerciales convencionales (por ejemplo, Gigabit Ethernet) es extremadamente ineficiente. Sin embargo, una red real siempre es una solución de compromiso, en cuyo desarrollo se establecen prioridades entre el precio, el rendimiento, el consumo de energía y otros requisitos que son en gran medida conflictivos: los intentos de mejorar una característica pueden conducir al deterioro de la otra.

Una red de comunicación consta de nodos, cada uno de los cuales tiene un adaptador de red conectado a uno o más enrutadores, que a su vez están interconectados por canales de comunicación de alta velocidad (enlaces).

Fig. 1. Topología 4D-torus (3x3x3x3)

La estructura de la red, que determina cómo están interconectados exactamente los nodos del sistema, está determinada por la topología de la red (generalmente una red, un toro o un árbol grueso) y un conjunto de parámetros estructurales: el número de mediciones, el número de niveles de árbol, las dimensiones de los lados del toro, el número de interruptores a nivel de árbol, el número de nodos de red puertos en enrutadores, etc. La Figura 1 muestra un ejemplo de la topología de un toro de cuatro dimensiones 3x3x3x3.

La arquitectura del enrutador determina la estructura y la funcionalidad de los bloques responsables de la transferencia de datos entre los nodos de la red, así como las propiedades necesarias de los protocolos del canal, la red y las capas de transporte, incluidos los algoritmos de enrutamiento, arbitraje y control de flujo de datos. La arquitectura del adaptador de red determina la estructura y la funcionalidad de los bloques responsables de la interacción entre el procesador, la memoria y la red, en particular, las operaciones MPI son compatibles a este nivel, RDMA (acceso directo a memoria remota - acceso directo a la memoria de otro nodo sin la participación de su procesador), confirmaciones de recepción por otro nodo del paquete, manejo de situaciones excepcionales, agregación de paquetes.

Para evaluar el rendimiento de una red de comunicación, se utilizan tres características con mayor frecuencia: ancho de banda (cantidad de datos transferidos por unidad de tiempo), retraso de comunicación (tiempo de transferencia de datos a través de la red), ritmo del mensaje (por lo general, consideran por separado la tasa de entrega al enviar, recibir y transmitir paquetes entre las unidades internas del enrutador).

Para completar, estas características se miden en diferentes tipos de tráfico, por ejemplo, cuando un nodo envía datos a todos los demás, o, por el contrario, todos los nodos envían datos a uno o cuando todos los nodos envían datos a destinos aleatorios. Los requisitos de funcionalidad se imponen en las redes modernas:

  • implementación efectiva de la biblioteca Shmem, como una opción para soportar el modelo de comunicación unidireccional, y GASNet, en el cual se basa la implementación de muchos lenguajes PGAS,
  • Implementación eficiente de MPI (generalmente esto requiere un soporte efectivo del mecanismo de buffers de anillo y acuses de recibo de los paquetes recibidos),
  • soporte efectivo para operaciones colectivas: difusión (envío de los mismos datos simultáneamente a muchos nodos), reducción (aplicación de una operación binaria, por ejemplo, adición al conjunto de valores recibidos de diferentes nodos), distribución de elementos de la matriz sobre el conjunto de nodos (dispersión), ensamblaje de una matriz de elementos, ubicado en diferentes nodos (reunir),
  • soporte efectivo para operaciones de sincronización entre nodos (al menos sincronización de barrera), interacción efectiva con una red de una gran cantidad de procesos en un nodo y asegurando la entrega confiable de paquetes.

El soporte efectivo del trabajo del adaptador con la memoria del host directamente sin la participación del procesador también es importante.

Redes extranjeras de alta velocidad.

Todas las redes de comunicación se pueden dividir en dos clases: comerciales y personalizadas, desarrolladas como parte de los sistemas informáticos y disponibles solo con ellas. Entre las redes comerciales, el mercado está dividido entre InfiniBand y Ethernet: en la lista Top500 (junio de 2011), el 42% de los sistemas usa InfiniBand y el 45% usa Gigabit Ethernet. Al mismo tiempo, si InfiniBand se centra en el segmento de sistemas de alto rendimiento diseñados para tareas informáticas complejas con una gran cantidad de comunicaciones, Ethernet tradicionalmente ocupa un nicho donde el intercambio de datos entre nodos no es crítico. En las supercomputadoras, la red Ethernet, debido a su bajo costo y disponibilidad, a menudo se utiliza como una red de servicio auxiliar para reducir la interferencia del tráfico de control y el tráfico de tareas.

La red Inifiniband se centró inicialmente en configuraciones con la topología Fat Tree, pero las últimas versiones de conmutadores y enrutadores (fabricados principalmente por QLogic) admiten la topología multidimensional de toro (utilizando el motor de enrutamiento Torus-2QoS), así como una topología híbrida del toro 3D y árbol gordo. La supercomputadora Sandia RedSky, ensamblada a principios de 2010 y ahora en el puesto 16 en el Top500, es uno de los primeros proyectos a gran escala con la red InfiniBand y el toro 3D de topología (6x6x8). Además, ahora se presta mucha atención al soporte efectivo de las operaciones RDMA y la biblioteca Shmem (en particular, Qlogic Shmem).

La popularidad de InfiniBand se debe a su ecosistema de software desarrollado de costo relativamente bajo y soporte efectivo para MPI. Sin embargo, InfiniBand tiene sus inconvenientes: una baja tasa de entrega de mensajes (40 millones de mensajes por segundo en las últimas soluciones de Mellanox), baja eficiencia de transmisión de paquetes cortos, un retraso relativamente grande (más de 1.5 μs para transmisiones de nodo a nodo y un 0.1- adicional 0.5 μs por nodo de tránsito), soporte débil para la topología toroidal. En general, se puede argumentar que InfiniBand es un producto para el usuario masivo, y durante su desarrollo se hizo un compromiso entre eficiencia y versatilidad.

También podemos observar la red Extoll, que se está preparando para su lanzamiento al mercado: el desarrollo de la Universidad de Heidelberg bajo el liderazgo del profesor Ulrich Bruening. El énfasis principal en el desarrollo de esta red es minimizar los retrasos y aumentar la tasa de entrega en comunicaciones unidireccionales. Está previsto que Extoll tenga una topología de toro 3D y utilice enlaces ópticos con un ancho de banda de 10 Gb / s por carril (canal de transmisión de datos en serie dentro del enlace) y un ancho de 12 carriles por enlace. Ahora hay prototipos de la red Extoll en FPGA: R1, basado en Virtex4, R2 Ventoux, un diseño de dos nodos basado en Virtex6. El ancho de banda unidireccional por enlace es de 600 MB / s (para R1). También se admitirán dos interfaces (HyperTransport 3.0 y PCI Express gen3) con un procesador, lo que permitirá integrar esta red en las plataformas Intel y AMD. Extoll admite varias formas de organizar registros unidireccionales, su propia MMU (Unidad de administración de memoria, un bloque de traducción de direcciones virtuales en direcciones físicas) y operaciones atómicas.

A diferencia de las redes comerciales, las redes personalizadas ocupan una cuota de mercado mucho menor, sin embargo, se utilizan en las supercomputadoras más potentes de Cray, IBM, SGI, Fujitsu, NEC y Bull. Al diseñar redes personalizadas, los desarrolladores tienen más libertad e intentan utilizar enfoques más progresivos debido a la menor importancia del atractivo del mercado del producto final, resolviendo principalmente el problema de obtener el máximo rendimiento en una clase específica de tareas.

La supercomputadora K Computer utiliza una red de comunicación patentada Tofu (TOrus FUsion), que es un toro 3D escalable cuyos nodos contienen grupos de 12 nodos (grupos de nodos están conectados por 12 redes con un toro 3D, y cada nodo de este grupo tiene su propia salida Red de toros en 3D). Los nodos dentro de cada grupo están interconectados por un toro 3D con lados 2x3x4 sin enlaces duplicados, lo que es equivalente a un toro 2D con lados 3x4 (por lo que obtenemos un toro 5D con dos dimensiones fijas). Por lo tanto, el nodo de red Tofu tiene 10 enlaces con un rendimiento unidireccional de 40 Gb / s cada uno. La sincronización de barrera de nodos y la reducción (entero y punto flotante) son compatibles con el hardware.

Los objetivos principales en el desarrollo de la supercomputadora Tianhe-1A fueron lograr una alta eficiencia energética, desarrollar su propio procesador y una red superior a InfiniBand QDR. La supercomputadora consta de 7168 nodos informáticos conectados por la red Arch de su propio diseño con la topología de árbol grueso. La red está construida a partir de enrutadores de 16 puertos, ancho de banda de enlace unidireccional - 8 GB / s, retraso - 1.57 μs. Operaciones RDMA soportadas y operaciones colectivas optimizadas.

Los representantes clásicos de los sistemas que usan una topología toroidal para combinar nodos computacionales son sistemas para la serie IBM Blue Gene, en las dos primeras generaciones de las cuales - Blue Gene / L (2004) y Blue Gene / P (2007) - usaron la topología 3D torus. La red en Blue Gene / P tiene enlaces relativamente débiles con un ancho de banda de un solo lado de 0.425 GB / s, que es un orden de magnitud menor que el ancho de banda de su enlace InfiniBand QDR contemporáneo, sin embargo, el soporte basado en hardware para sincronización de barrera y operaciones colectivas (en redes separadas en forma de árbol) permite una buena escalabilidad en aplicaciones reales Además, todas las interfaces y unidades de enrutamiento están integradas en el microprocesador BPC (Blue Gene / P Chip), lo que reduce significativamente los retrasos en la transmisión de mensajes. La red de comunicaciones de próxima generación Blue Gene / Q tiene una topología 5D-tor y, a diferencia de sus predecesoras, no tiene redes separadas para la sincronización de barreras y las operaciones colectivas. El chip Blue Gene / Q por primera vez se convirtió en multi-core-multi-thread: cuatro hilos de hardware por núcleo con 16 núcleos, lo que permite debilitar los requisitos de la red y garantizar la tolerancia al retraso. El rendimiento del enlace se ha incrementado a 2 GB / s, pero sigue siendo pequeño en comparación con Cray Gemini o Extoll. El bajo rendimiento en estos sistemas está nivelado por la gran dimensión del toro (una gran cantidad de enlaces) y, como resultado, por el pequeño diámetro de la red (significativamente menor que el de las redes con una topología de toro 3D con el mismo número de nodos). Las fuentes disponibles informan la creación de dos supercomputadoras transpetaflops Blue Gene / Q: Sequoia con un rendimiento de 20 PFLOPS y Mira - 10 PFLOPS. Podemos concluir que Blue Gene / Q se centra en tareas que utilizarán decenas y cientos de miles de nodos informáticos con tráfico de red del tipo "todos para todos".

Otro adherente al enfoque para construir redes de comunicación con una topología toroidal es Cray, que continúa utilizando la topología 3D tor, al tiempo que aumenta el rendimiento y el número de enlaces que conectan los nodos vecinos. La generación actual de la red toroidal Cray es la red Cray Gemini. Un enrutador Gemini corresponde a dos enrutadores de la generación SeaStar2 + anterior, es decir, en realidad a dos nodos de red, por lo tanto, en Gemini, en lugar de 6 enlaces, 10 se utilizan para conectarse a nodos vecinos (2 sirven para conectar dos adaptadores entre sí).

Los componentes (adaptadores de red, conmutadores, enrutadores) de una red para una supercomputadora, a diferencia de los procesadores, a menudo son más caros y el acceso a ellos es más limitado. Por ejemplo, ahora los conmutadores para la red InfiniBand, que es la principal red comercial para supercomputadoras, son producidos por solo dos compañías, ambas controladas por los Estados Unidos. Esto significa que, en ausencia de sus propios desarrollos en el campo de las redes de alta velocidad, la creación de supercomputadoras modernas en cualquier país, excepto EE. UU., China o Japón, puede controlarse fácilmente.

Redes domesticas

El desarrollo de redes de comunicación para su uso en supercomputadoras es llevado a cabo por varias organizaciones nacionales: el RFNC VNIIEF (hay muy poca información sobre estos desarrollos en código abierto), el Instituto de Sistemas de Software de la Academia de Ciencias de Rusia y RSK SKIF, el IPM RAS y el Instituto de Investigación Kvant (red MVS-Express ").

La red de comunicación 3D tor para la supercomputadora ruso-italiana SKIF-Aurora está completamente construida utilizando el FPGA Altera Stratix IV, que explica el ancho de banda bastante pequeño por enlace: 1,25 GB / s (los recursos de FPGA son muy limitados).

En la red MVS-Express, PCI Express 2.0 se utiliza para integrar los nodos informáticos, y los nodos están conectados a través de conmutadores de 24 puertos. La red tiene una topología cercana al árbol gordo. El adaptador de red en el nodo informático tiene un puerto con un ancho de 4 carriles, como resultado de lo cual el rendimiento máximo unidireccional por enlace es de 20 Gbit / s sin tener en cuenta la sobrecarga de codificación. La ventaja de utilizar PCI Express en MVS-Express es el soporte eficiente de la memoria compartida con la posibilidad de comunicaciones unidireccionales. Como resultado, la red es conveniente para implementar la biblioteca Shmem y los lenguajes PGAS (UPC, CAF).

Con el apoyo del Ministerio de Industria y Comercio de la Federación Rusa, NICEVT OJSC está trabajando en el desarrollo de la red de comunicación Angara con una topología 4D-tor, que puede convertirse en la base para crear tecnologías nacionales para el desarrollo de supercomputadoras.

Red "Angara"

Los principales objetivos del desarrollo de la red Angara:

  • soporte efectivo para comunicaciones unidireccionales (put / get) y lenguajes PGAS (como el principal medio de programación paralela),
  • Soporte efectivo de MPI
  • lanzamiento de cristal propio (para lograr altas tasas de transferencia de datos y bajas demoras),
  • transmisión adaptativa de paquetes a prueba de fallas,
  • trabajo efectivo con procesadores y chipsets modernos.

En la primera etapa de desarrollo de esta red (2006), se realizó una simulación de varias opciones de red y se tomaron las principales decisiones sobre la topología, la arquitectura del enrutador, los algoritmos de enrutamiento y el arbitraje. Además de la topología toroidal, se consideraron las redes de Cayley y el "árbol grueso". El toro de cuatro dimensiones se eligió debido a su enrutamiento más simple, buena escalabilidad y alta conectividad en comparación con toros más pequeños. El modelado de red permitió estudiar en detalle el efecto de varios parámetros de la arquitectura de red en las principales características de rendimiento, para comprender los patrones para el tráfico de tareas con acceso irregular intenso a la memoria. Como resultado, se seleccionaron tamaños óptimos de búfer, se seleccionó el número de canales virtuales y se analizaron posibles cuellos de botella.

En 2008, apareció el primer prototipo de un enrutador FPGA: un diseño de red de seis nodos en Virtex4 conectado a un toro 2x3, en el que se depuró la funcionalidad básica del enrutador, se resolvió la transmisión de datos con tolerancia a fallas, se escribieron y depuraron el controlador y la biblioteca de bajo nivel, las bibliotecas Shmem fueron portadas y MPI Ahora se lanzó un diseño de tercera generación, que consta de nueve nodos conectados en un toro bidimensional 3x3. Собран стенд с двумя узлами для тестирования новых разъемов и каналов передачи данных, предполагаемых к использованию с будущими кристаллами маршрутизатора ВКС. При разработке принципов работы сети ряд деталей был позаимствован из работ и , а также в том или ином виде из архитектур IBM Blue Gene и Cray SeaStar.

Сеть «Ангара» имеет топологию 4D-тор. Поддерживается детерминированная маршрутизация, сохраняющая порядок передачи пакетов и предотвращающая появление дедлоков (взаимных блокировок), а также адаптивная маршрутизация, позволяющая одновременно использовать множество путей между узлами и обходить перегруженные и вышедшие из строя участки сети. Se prestó especial atención al apoyo de las operaciones colectivas (difusión y reducción) implementadas utilizando una subred virtual que tiene la topología de un árbol superpuesta en un toro multidimensional. La red a nivel de hardware admite dos tipos de escrituras remotas, lecturas y operaciones atómicas (adición y OR exclusivo). El esquema de ejecución de lectura remota (enviar una solicitud y recibir una respuesta) se muestra en la Fig. 2 (la grabación remota y las operaciones atómicas se realizan de manera similar). En un bloque separado, la lógica se implementa para agregar mensajes recibidos de la red con el fin de aumentar la participación de datos útiles por transacción cuando se transmite a través de una interfaz con un host (un host es un puente de puente de memoria del procesador).

Fig. 2. Esquema de lectura remota en la red de Angara

En la capa de enlace de datos, se admite la transmisión de paquetes a prueba de fallas. También hay un mecanismo para evitar canales de comunicación y nodos fallidos mediante la reconstrucción de tablas de enrutamiento. Para realizar varias operaciones de servicio (en particular, configurar / reconstruir tablas de enrutamiento) y realizar algunos cálculos, se utiliza un procesador de servicio. La interfaz del host utiliza PCI Express.

Fig. 3. La estructura del nodo informático con un adaptador de red / enrutador "Angara"

Los bloques principales del enrutador:

  • interfaz con el sistema host, responsable de recibir y enviar paquetes en la interfaz host,
  • una unidad de inyección y expulsión que forma paquetes para ser enviados a la red y analiza los encabezados de los paquetes que provienen de la red,
  • una unidad de procesamiento de solicitudes que procesa paquetes que requieren información de la memoria del sistema host (por ejemplo, lecturas u operaciones atómicas),
  • una unidad de red de operaciones colectivas que procesa paquetes asociados con operaciones colectivas, en particular, realiza operaciones de reducción, genera paquetes de solicitud de difusión,
  • una unidad de operaciones de servicio que procesa paquetes que van y vienen del coprocesador de servicio,
  • un interruptor que conecta entradas de varios canales virtuales y entradas de inyectores con salidas a varias direcciones y eyectores,
  • canales de comunicación para transmitir y recibir datos en una determinada dirección,
  • una unidad de transmisión de datos para enviar paquetes en una dirección determinada y una unidad de recepción y enrutamiento para recibir paquetes y decidir su destino futuro.

La interacción del host (el código ejecutado en el procesador central) con el enrutador se lleva a cabo escribiendo en las direcciones de memoria asignadas a las direcciones de las regiones de recursos del enrutador (entrada / salida asignada en memoria). Esto permite que la aplicación interactúe con el enrutador sin la participación del kernel, lo que reduce la sobrecarga de enviar paquetes, ya que cambiar al contexto del kernel y viceversa lleva más de cien ciclos de reloj. Para enviar paquetes, se utiliza una de las regiones de memoria, que se considera como un búfer de anillo. También hay una región separada para realizar operaciones sin copiar memoria-memoria (los datos son leídos de la memoria y escritos por el adaptador de la red de comunicación a través de operaciones DMA) y una región con registros de control. El acceso a ciertos recursos del enrutador está controlado por el módulo nuclear.

Para lograr una mayor eficiencia, se decidió que solo se debería realizar una tarea computacional en un nodo, esto eliminó la sobrecarga asociada con el uso de memoria virtual, evitó la interferencia de tareas, simplificó la arquitectura del enrutador debido a la falta de una MMU completa y evitó todo su trabajo de comunicación retrasa, además de simplificar el modelo de seguridad de red, eliminando de él la seguridad de los procesos de diversas tareas en un solo nodo. Esta solución no afectó la funcionalidad de la red como está destinada principalmente para tareas de gran tamaño (a diferencia de InfiniBand, una red universal para tareas de varios tamaños). Se tomó una decisión similar en IBM Blue Gene, donde se introduce una restricción sobre la unicidad de la tarea para la sección.

A nivel de hardware, se admite el trabajo simultáneo con el enrutador de muchos subprocesos / procesos de una tarea: se implementa en forma de varios canales de inyección disponibles para su uso por los procesos a través de varios buffers de anillo para grabar paquetes. El número y el tamaño de estos búferes pueden cambiar dinámicamente.

El modo de programación principal para la red de Angara es el uso conjunto de MPI, OpenMP y Shmem, así como GASNet y UPC.

Después de que se complete la verificación y creación de prototipos de la red, se planea lanzar un chip VLSI. Se diseñará un prototipo de lote VLSI para depurar soluciones tecnológicas básicas, un proceso tecnológico y verificación experimental de resultados de simulación. El prototipo contendrá toda la funcionalidad básica, funcionará con la interfaz PCI Express gen2 x16 y los enlaces con un rendimiento de 75 Gb / s.

Se planea promover la red de Angara en el mercado en dos versiones: como una red comercial separada en forma de tarjetas PCI Express para sistemas de clúster con procesadores estándar y conjuntos de chips, y como parte de un sistema blade de cuatro zócalos basado en procesadores AMD que se está desarrollando en el NICEVT.

Mira el video: Tecnología de punta: La computadora del futuro (Diciembre 2019).