IntelDig

Inteligencia artificial aumenta la eficiencia de data centers

Investigadores del MIT desarrollaron un novedoso sistema que “aprende” automáticamente cómo programar operaciones de procesamiento de datos en miles de servidores. Los humanos han trabajado hasta la fecha por desarrollar algoritmos imprecisos para esta tarea, pero con la ayuda de la IA los centros de datos que consumen mucha energía podrían trabajar de manera mucho más eficiente.

Los centros de datos a menudo contienen decenas de miles de servidores, que constantemente ejecutan tareas de procesamiento de datos de desarrolladores y usuarios. Los algoritmos de programación de clúster se encargan de asignar las tareas entrantes a través de los servidores, en tiempo real, para utilizar de manera eficiente todos los recursos informáticos disponibles y acelerar el trabajo. Pero los humanos constantemente deben afinar los algoritmos de programación, como por ejemplo, deben codificar el algoritmo para realizar ciertos trabajos rápidamente o dividir los recursos en partes iguales entre los trabajos. No obstante, dado que los humanos no pueden encargarse de todas las tareas específicas, a menudo no se alcanza el mayor potencial de eficiencia.

Por eso los investigadores del MIT descargaron toda la codificación manual a las máquinas. Presentaron un documento en SIGCOMM acerca de un sistema que aprovecha el “aprendizaje de refuerzo” (RL). Se trata de una técnica de aprendizaje automático de prueba y error que ayuda en las decisiones de programación a cargas de trabajo específicas en grupos de servidores específicos.

Las técnicas RL pueden ayudar entonces con las cargas de trabajo complejas. La IA fue entrenada para asignar cargas de trabajo entrantes a través de los servidores y encontrar una compensación óptima en la utilización de recursos de cómputo y velocidades de procesamiento rápidas. Este innovador sistema optimiza de tal forma los procesos que no hace falta la intervención humana más allá de instrucciones simples como  “minimizar los tiempos de finalización del trabajo”.

Este sistema es hasta 30% más rápido que los mejores algoritmos de programación manuscrita, y en escenarios donde existe el doble de tráfico, es el doble de rápido. Pero la virtud principal del sistema es que aprende a compactar cargas de trabajo de manera eficiente para dejar poco desperdicio. Por tanto, con este algoritmo se pueden obtener mejores resultados, en el menor tiempo, con menos recursos.

“Esto puede mejorar el rendimiento del sistema automáticamente. Y cualquier ligera mejora en la utilización, incluso el 1 %, puede ahorrar millones de dólares y mucha energía en los centros de datos”, dice Hongzi Mao, estudiante de doctorado en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación. (EECS).

El coautor Mohammad Alizadeh, profesor e investigador de la EECS en el Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL) agrega que el nuevo sistema aprende a ajustar las características de su política de programación, según el centro de datos y la carga de trabajo. A parte de Mao y Alizadeh en el papel están: los doctores Malte Schwarzkopf y Shaileshh Bojja Venkatakrishnan, y la asistente de investigación graduada Zili Meng, todos de CSAIL.

RL para programar

Los sistemas RL tradicionales no están acostumbrados a procesar gráficos tan dinámicos. Por eso utilizan un “agente” de software que toma decisiones y recibe una señal de retroalimentación como recompensa. Y de esa manera pueden aprender un comportamiento ideal en un determinado contexto. Por tanto, para construir su planificador basado en RL, llamado Decima, los investigadores tuvieron que desarrollar un modelo que pudiera procesar trabajos estructurados con gráficos y escalar a una gran cantidad de trabajos y servidores.