Todos hemos compartido la frustración: las actualizaciones de software que tienen como objetivo hacer que nuestras aplicaciones se ejecuten más rápido sin darse cuenta terminan haciendo exactamente lo contrario. Estos errores, denominados en el campo de la informática como regresiones de rendimiento, llevan mucho tiempo solucionarlos ya quelocalizar errores de software normalmente requiere una intervención humana sustancial.
Para superar este obstáculo, los investigadores de la Universidad de Texas A&M, en colaboración con científicos informáticos de Intel Labs, han desarrollado una forma completamente automática de identificar la fuente de errores causados por las actualizaciones de software. Su algoritmo, basado en una forma especializada de máquinael aprendizaje llamado aprendizaje profundo, no solo es llave en mano, sino también rápido, y encuentra errores de rendimiento en cuestión de pocas horas en lugar de días.
"La actualización de software a veces puede volverse en su contra cuando los errores se arrastran y causan ralentizaciones. Este problema es aún más exagerado para las empresas que utilizan sistemas de software a gran escala que evolucionan continuamente", dijo el Dr. Abdullah Muzahid, profesor asistente en el Departamentode Informática e Ingeniería. "Hemos diseñado una herramienta conveniente para diagnosticar regresiones de rendimiento que es compatible con una amplia gama de software y lenguajes de programación, ampliando enormemente su utilidad".
Los investigadores describieron sus hallazgos en la 32ª edición de Advances in Neural Information Processing Systems de las actas de la conferencia de Neural Information Processing Systems en diciembre.
Para determinar la fuente de errores dentro de un software, los depuradores a menudo verifican el estado de los contadores de rendimiento dentro de la unidad central de procesamiento. Estos contadores son líneas de código que monitorean cómo se ejecuta el programa en el hardware de la computadora en la memoria, por ejemploEntonces, cuando el software se ejecuta, los contadores realizan un seguimiento de la cantidad de veces que accede a ciertas ubicaciones de memoria, el tiempo que permanece allí y cuándo sale, entre otras cosas. Por lo tanto, cuando el comportamiento del software falla, los contadores se usan nuevamente paradiagnóstico
"Los contadores de rendimiento dan una idea de la salud de ejecución del programa", dijo Muzahid. "Entonces, si algún programa no se ejecuta como se supone, estos contadores generalmente tendrán el signo revelador de un comportamiento anómalo".
Sin embargo, los equipos de escritorio y servidores más nuevos tienen cientos de contadores de rendimiento, lo que hace prácticamente imposible realizar un seguimiento de todos sus estados manualmente y luego buscar patrones aberrantes que sean indicativos de un error de rendimiento. Ahí es donde entra el aprendizaje automático de Muzahid.
Al utilizar el aprendizaje profundo, los investigadores pudieron monitorear datos provenientes de una gran cantidad de contadores simultáneamente al reducir el tamaño de los datos, lo cual es similar a comprimir una imagen de alta resolución a una fracción de su tamaño original al cambiarsu formato. En los datos de dimensiones inferiores, su algoritmo podría buscar patrones que se desvían de lo normal.
Cuando su algoritmo estaba listo, los investigadores probaron si podía encontrar y diagnosticar un error de rendimiento en un software de gestión de datos disponible comercialmente utilizado por las empresas para realizar un seguimiento de sus números y cifras. Primero, entrenaron su algoritmo para reconocer los datos normales del contadorejecutando una versión anterior y sin fallas del software de administración de datos. Luego, ejecutaron su algoritmo en una versión actualizada del software con la regresión de rendimiento. Descubrieron que su algoritmo localizó y diagnosticó el error en unas pocas horas. Muzahid dijoEste tipo de análisis podría tomar una cantidad considerable de tiempo si se realiza de forma manual.
Además de diagnosticar regresiones de rendimiento en software, Muzahid señaló que su algoritmo de aprendizaje profundo también tiene usos potenciales en otras áreas de investigación, como el desarrollo de la tecnología necesaria para la conducción autónoma.
"La idea básica es una vez más la misma, es ser capaz de detectar un patrón anómalo", dijo Muzahid. "Los automóviles autónomos deben ser capaces de detectar si un automóvil o un ser humano está frente a él y luego actuaren consecuencia. Entonces, nuevamente es una forma de detección de anomalías y la buena noticia es que para eso nuestro algoritmo ya está diseñado ".
Otros contribuyentes a la investigación incluyen el Dr. Mejbah Alam, el Dr. Justin Gottschlich, el Dr. Nesime Tatbul, el Dr. Javier Turek y el Dr. Timothy Mattson de Intel Labs.
Fuente de la historia :
Materiales proporcionado por Universidad de Texas A&M . Original escrito por Vandana Suresh y Stephanie Jones. Nota: El contenido puede ser editado por estilo y longitud.
Cita esta página :