Acelerómetro estimado por el acelerómetro para los gastos generales clave identificados por los investigadores. Crédito:Universidad de Michigan
Los servicios de software a gran escala luchan en la batalla por la eficiencia en dos frentes:software eficiente que es flexible a las cambiantes demandas de los consumidores, y hardware eficiente que puede mantener estos servicios masivos funcionando rápidamente incluso frente a los rendimientos decrecientes de las CPU. Juntos, estos factores determinan tanto la calidad de la experiencia del usuario como el rendimiento, costo, y eficiencia energética de los centros de datos modernos.
Un cambio en un frente requiere ajustes en el otro, y una nueva arquitectura de software que crece en popularidad ha supuesto un desafío para las soluciones de hardware actuales en la mayoría de los centros de datos. Microservicios llamados, Este enfoque modular para el diseño de software de grandes empresas ha dejado algo que desear en sus interacciones con otra fuerza importante en aumento en la eficiencia de los centros de datos. aceleradores de hardware.
Para unir estas dos tecnologías prometedoras de manera más eficaz, Doctorado en CSE estudiante Akshitha Sriraman, trabajar con investigadores de Facebook, ha diseñado una forma de medir exactamente cuánto aceleraría un centro de datos un acelerador de hardware. Acelerómetro con el nombre apropiado, El modelo analítico se puede aplicar en las primeras etapas del diseño de un acelerador para predecir su eficacia antes de que se instale.
Sigue siendo una tecnología algo nueva en el uso informático general, la efectividad de los aceleradores de hardware no es tan fácil de predecir como las CPU, que tienen décadas de experiencia a sus espaldas. Invertir en este tipo de hardware personalizado diverso presenta un riesgo a gran escala, ya que podría no estar a la altura de sus expectativas.
Pero existe la posibilidad de un gran impacto. Diseñado para realizar un tipo de función extremadamente rápido, Teóricamente, los aceleradores podrían ser utilizados para todos los redundantes, Tareas repetitivas utilizadas en común por aplicaciones más grandes.
Eso incluye microservicios. Este enfoque de arquitectura de software concibe una aplicación más grande como una colección de módulos, servicios específicos de la tarea que pueden mejorarse de forma aislada. Esto permite realizar cambios en la aplicación más grande sin necesidad de cambiar una enorme, base de código central. También permite agregar más servicios con mayor facilidad.
Sriraman demostró que tan solo el 18% de los ciclos de CPU de la mayoría de los microservicios se dedican a ejecutar instrucciones que son fundamentales para su funcionalidad. El 82% restante se gasta en operaciones comunes que están listas para acelerar.
"Acelerar estos gastos generales que identificamos puede, de hecho, mejorar la aceleración en gran medida, "Sriraman dice. Más allá de la velocidad, haría que todas las funciones del centro de datos fueran más baratas y energéticamente más eficientes. "La aceleración nos permitirá empaquetar más trabajo para las mismas limitaciones de energía y mejorar la utilización de recursos a escala, por lo que los ahorros de energía y costos del centro de datos mejorarán enormemente ".
El problema con los microservicios es que sus diseños pueden resultar bastante diferentes, particularmente con respecto a cómo interactúan con el hardware. Por ejemplo, un microservicio puede comunicarse con un acelerador mientras continúa ejecutando otras instrucciones en una CPU, o podría detener todas sus funciones mientras se descarga al acelerador. Ambos casos enfrentan diferentes "gastos generales de descarga" (el tiempo empleado en enviar una tarea de un procesador a otro), que se convierte en una pérdida de tiempo para el centro de datos si no se tiene en cuenta.
"Cada una de estas opciones de diseño de software puede resultar en diferentes gastos generales que afectan la aceleración general de la aceleración, ", dice Sriraman. Esta transparencia se deja fuera de la imagen en trabajos anteriores, Ella continúa, al igual que el impacto de los diferentes diseños de microservicios en el rendimiento.
Adicionalmente, los propios aceleradores deben utilizarse con prudencia para tener un efecto positivo neto.
"Lanzar un acelerador a cada problema es ridículo porque lleva mucho tiempo, costo, y esfuerzo por construir, prueba, y desplegar cada uno, ", concluye." Existe una necesidad real de comprender con precisión qué y cómo acelerar ".
El acelerómetro es un modelo analítico que mide exactamente cuánto se mejoraría el rendimiento al instalar un procesador determinado, como mucho, teniendo en cuenta todos estos matices. Eso significa que mide el efecto positivo de la aceleración, así como el efecto negativo de pasar tiempo barajando instrucciones entre componentes informáticos. Y sus capacidades no se limitan a nuevos aceleradores:el modelo se puede aplicar a cualquier tipo de hardware, desde una simple optimización de CPU hasta un ASIC remoto extremadamente especializado.
La herramienta se validó en el entorno de producción de Facebook mediante tres estudios de caso retrospectivos, lo que demuestra que sus estimaciones de aceleración real tienen un error inferior al 3,7%.
El modelo es lo suficientemente preciso como para que Facebook ya lo utilice, con el interés temprano de otras empresas.
"Hemos recibido noticias de que varios de los grandes jugadores de la nube han comenzado a utilizar el acelerómetro para descartar rápidamente las malas elecciones de aceleradores e identificar las buenas. para realizar inversiones en hardware bien informadas, ", Dice Sriraman. Facebook está utilizando el modelo para explorar nuevos aceleradores, incorporándolo como un primer paso para clasificar rápidamente las opciones de hardware buenas y malas.
Este proyecto, titulado "Acelerómetro:comprensión de las oportunidades de aceleración para los gastos generales del centro de datos a hiperescala, "fue aceptado por la Conferencia de Soporte Arquitectónico para Lenguajes de Programación y Sistemas Operativos (ASPLOS) de 2020 y presentado virtualmente.