Inicio Instrumentación Rendimiento a exaescala – sabemos lo que tenemos que hacer

Rendimiento a exaescala – sabemos lo que tenemos que hacer

Los especialistas en procesamiento de alto rendimiento pueden no estar familiarizados con la historia de cómo Henry Ford, el conocido inventor del automóvil, escogió un enfoque diferente por completo sobre el transporte. Es algo parecido a esto: Ford, reconoció que si hubiera preguntado a los propietarios de negocios y miembros del público, cómo se podría mejorar el transporte, hubieran respondido “caballos más rápidos”. Es evidente que los caballos hicieron bien su trabajo, pero su objetivo era limitado y según creció la demanda, esas limitaciones se hicieron cada vez más evidentes. El problema era que la gente no podía ver más allá de lo que ya estaba allí. Por supuesto, simplemente no era posible producir caballos cada vez más rápidas, por lo que todos los progresos realizados en términos de transporte se hubieran estancado. Ford dio con una solución que no trataba de ajustarse al objetivo del status quo, sino que estaba a punto de satisfacer los requisitos actuales y futuros con algo bastante nuevo. Sin querer, los desarrolladores de sistemas han estado preguntando por caballos más rápidos (exaescala) durante muchos años. Sin embargo, si Henry Ford trabajase en TI hoy en día, le diría que sólo preguntar por un rendimiento superior no resolvería los problemas de cálculo a exascala.

 

Entonces, ¿cuáles son esos problemas exactamente? En el mundo del automóvil, Mr. Ford hubiera podido predecir la cantidad de caballos de fuerza, de los que serían capaces los coches, o el hecho de que podían añadir el turbo a sus capacidades de potencia. Más recientemente, sin embargo, ha habido un cambio significativo en términos de potencia; ¿por qué necesitamos estas máquinas rebosantes de motor, no podemos lograr alcanzar lo mismo (si no más) con menos potencia? Del mismo modo, en el mundo de la potencia de procesamiento informático, se ha convertido en un gran problema, tratando de lograr alcanzar velocidades de procesamiento más rápidas y más rápidas, ha tendido a significar el uso de cada vez más energía, algo que no es ni conveniente ni bienvenido en el siglo 21. Entonces, ¿hay alguna manera de reducir la necesidad de más energía en el procesamiento a exascala? La respuesta corta es sí. Una gran parte de la energía consumida por un ordenador de alto rendimiento implica las interconexiones entre chips. En otras palabras, se necesita una gran cantidad de energía cuando se les pide a millones de procesadores que se comuniquen con otros millones de procesadores. Por lo tanto, para un procesamiento efectivo a exascala, abordar las conexiones entre chips es la clave. Y para la mejor interconexión, la siguiente lista debería ser obligada para cualquier desarrollador.

 

 • interoperabilidad; permitiendo el procesamiento y la interconexión de dispositivos de diferentes fabricantes que operan juntos en un único sistema

 

 • integración; tener menos componentes en una placa puede reducir las demoras en el procesamiento de datos (latencia) y la cantidad de energía necesaria

 

 • acceso remoto directo a memoria (RDMA) – la forma más eficaz de gestión de mensajes y transferencia lectura / escritura • un esquema de enrutamiento que soporte difusión, multidifusión y múltiples rutas hacia el mismo destino, todo ello con una latencia mínima y baja potencia

 

 • “goodput” (rendimiento por el ancho de banda en bruto) – el ancho de banda en bruto debe coincidir con el goodput necesaria tanto como pueda

 

 • tolerancia a fallos – cuanto mayor sea el sistema, más probable es que haya un fallo. Para contrarrestar esto, la interconexión debe ser compatible con múltiples estrategias de tolerancia de redundancia y fallo

 

 • software – para la mejor interconexión, el software debe soportar diferentes topologías y ser capaz de trabajar a través de sistemas de diferentes proveedores. Como muestra la figura, hay varios protocolos líderes en el mercado que afirman ofrecer muchos de estos elementos deseables (y, en algunos casos, esenciales) para el procesamiento a exascala, pero ¿cómo se comparan? De todas formas, PCI Express (PCIe), en el lado positivo, PCIe ofrece interoperabilidad y se integra en los componentes, es decir, más interconexiones de alta eficiencia energética. También permite leer / escribir la semántica, dispone de mecanismos de control de flujo que aseguran un alto goodput, y puede soportar la comunicación orientada a la conexión, con o sin el uso de motores de acceso directo a memoria. Sin embargo, PCIe no ofrece un buen soporte de mensajería, por lo que la comunicación entre procesadores inteligentes sin conexión es un problema, y el protocolo está limitado en las topologías que puede soportar, especialmente hypercube y topología toroidal 3D. Además, PCIe no tolera errores, no soporta multidifusión para la escritura y no puede ser utilizado para coherencia de memoria caché entre procesadores. Por último, aunque goodput es alto, no es el mejor posible.

 

En total, PCIe es una opción arriesgada para el procesamiento de alto rendimiento en grandes sistemas. Ethernet; la naturaleza abierta de Ethernet y el hecho de que es la base de Internet, que es, sin duda, la mayor interconexión en el mundo, sugeriría que se prestaría perfectamente al procesamiento de alto rendimiento. Debido a que se ha integrado en un número importante de dispositivos, Ethernet permite a un diseñador de sistemas mezclar y combinar. También es fácil de usar, ofrece mensajería extremadamente tolerante a fallos y es compatible con una amplia gama de protocolos. en la tecnología diseñada para el uso en el mercado masivo, Ethernet es el más adecuado para bajo ancho de banda, conexiones y redes de alta latencia, por lo que es inadecuado para el procesamiento a exascala, que exige el máximo rendimiento, gran ancho de banda y baja latencia. Además, las redes Ethernet no pueden garantizar la entrega de transacciones o entregarlas en orden y el goodput es mucho menor que la cantidad de ancho de banda en bruto disponible. Infiniband, la interconexión de elección en un 50 por ciento de los mejores superordenadores del mundo, Infiniband podría parecer que ofrece un significativo potencial exascala. Utiliza software de soporte de disposición libre, tiene la latencia líder de la industria y permite un gran nivel de rendimiento para diversas aplicaciones. Capaz de funcionar con cualquier topología de red, Infiniband soporta mensajería y semántica de lectura / escritura, que hace posible RDMA, tiene excelentes opciones de ancho de banda de primera línea (14 Gbps) y puede ofrecer un alto goodput. Sin embargo, Infiniband tiene limitaciones significativas que afectan a su eficiencia y escalabilidad. La tecnología del protocolo utiliza los dispositivos de interfaz de red externos que se conectan a los procesadores utilizando PCIe, por lo que es mucho menos eficiente que las alternativas integradas (reducir la latencia es difícil). Y debido a que PCIe y no soporta semántica de coherencia de caché, no es posible aumentar el tamaño de los núcleos usando Infiniband. También, una vez más, los paquetes pueden no entregarse en orden y el protocolo necesita una cantidad significativa de energía para procesar las transacciones. Por último, Infiniband tiene muchas de las limitadas características de la tecnología patentada de interconexión que se menciona más adelante. RapidIO – este protocolo ofrece la mejor promesa para la interconexión abierta. Se utiliza en los teléfonos inteligentes 4G y aplicaciones de los satélites, RapidIO está diseñado para situaciones donde hay restricciones de potencia y tamaño. También utiliza la tecnología interoperable, está integrada en muchos dispositivos de varios proveedores de procesadores, Ofrece baja latencia, gran ancho de banda, comunicación eficiente de energía, y garantiza la entrega de paquetes en orden. RapidIO soporta enrutamiento en multidifusión y difusión en cualquier topología, así como coherencia de caché y semántica de lectura / escritura. También utiliza comunicaciones de tipo RDMA y asegura alto goodput y excelente tolerancia a fallos. Sin embargo, incluso RapidIO no está exenta de deficiencias, entre ellas el hecho de que el ecosistema es demasiado lento. En términos de ancho de banda de primera línea, y el máximo goodput que se puede lograr, el protocolo va a la zaga de otras interconexiones. Tampoco tiene el mejor software para procesamiento a exascala y el soporte de software es notablemente reducido, aunque el trabajo se está trabajando para cambiar esta situación. Soluciones patentadas, existen problemas habituales que rodean los sistemas patentados, como la falta de interoperabilidad y soporte de diferentes topologías de sistemas. Aunque las soluciones integradas pueden proporcionar una gran eficiencia de potencia y ancho de banda de primera línea, es difícil de evaluar con precisión lo buenos que son, especialmente cuando los usuarios podrían que conectar aplicaciones a las interfaces patentadas. Por otra parte, las soluciones patentadas no pueden innovar lo suficientemente rápido en términos generales para cubrir todas las aplicaciones. Para concluir, está ampliamente aceptado que el crecimiento en el procesamiento de alto rendimiento se verá impulsado por la evolución de los motores de aceleración, software y las tecnologías de interconexión abiertas. Pero, la tecnología de interconexión correcta, simplemente no existe en este momento, lo que significa que el procesamiento a exascala sigue estando tentadoramente fuera de alcance. La buena noticia es que todos los interesados en el desarrollo de una solución saben lo que necesita hacerse, y saben que tener caballos más rápidos no es una opción viable. Ese momento Henry Ford no puede estar demasiado lejos.