Patent ES-2639781-T3 (ES)
Title: Sistema y método que facilitan la predicción del rendimiento de la aplicación multi-hilo en presencia de cuellos de botella de recursos
Inventor: DUTTAGUPTA SUBHASRI
IPC: G06F11/34
Filed: 2014-02-13
Granted: 2017-10-30
Abstract: Un sistema para determinar el rendimiento de una aplicación de software multi-hilos en presencia de uno o más cuellos de botella de recursos, comprendiendo sistema: un procesador (202); y una memoria (208) acoplada al procesador (202), en donde el procesador (202) es capaz de ejecutar una pluralidad de módulos almacenados en la memoria (208), y en donde la pluralidad de módulos comprende: un módulo (212) de representación configurado para representar una red de filas de espera de hardware y una red de filas de espera de software para recursos empleados para ejecutar la aplicación de software multi-hilos, en donde las redes de filas de espera representa la contención para los recursos, y en donde los recursos comprenden recursos de hardware y recursos de software, en donde las redes de filas de espera son utilizadas para comprobar el número de hilos que acceden a la aplicación de software multi-hilos cuando se encuentra un cuello de botella de recursos; un módulo (214) de computación configurado para ejecutar una técnica iterativa con un valor predeterminado de la solicitud de servicio para desarrollar una relación entre la red de filas de espera de software y la red de filas de espera de hardware, en donde la relación comprende la utilización de los recursos de software con respecto a los recursos de hardware basándose en el valor predeterminado de la solicitud de servicio, y en donde la ejecución de la técnica iterativa comprende: obtener un número de hilos bloqueados en una sección crítica de los recursos de software basándose en el valor predeterminado de la solicitud de servicio, en donde los hilos bloqueados en la sección crítica son hilos que esperan entrar en la sección crítica; obtener un tiempo de residencia en cada uno de los recursos de hardware basándose en el valor predeterminado de la solicitud de servicio; actualizar una solicitud de servicio de sección crítica de una interacción actual para una solicitud de servicio de sección crítica actualizada para reflejar una espera para los recursos de hardware utilizando el tiempo de residencia, en donde la solicitud de servicio de sección crítica es actualizada de forma iterativa para tener en cuenta la contención de recursos en los recursos de hardware basándose en el tiempo de residencia; comparar el número de hilos bloqueados de la iteración actual con el número de hilos bloqueados de una iteración previa con el fin de comprobar si el número de hilos bloqueados de la interacción actual es más elevado que el número de hilos bloqueados de la iteración previa, y comprobar si la solicitud de servicio de sección crítica actualizada es más elevada que la solicitud de servicio de sección crítica de la iteración previa; e identificar una diferencia entre el número de hilos bloqueados en una sección crítica para la iteración actual y el número de hilos bloqueados en la sección crítica en la iteración previa; y ejecutar repetidamente la técnica iterativa 1) si la diferencia en el número de hilos bloqueados es mayor que un límite predefinido, 2) si el número de hilos bloqueados de la iteración actual es más elevado que el número de hilos bloqueados de la iteración previa y 3) si la solicitud de servicio de sección crítica actualizada es mayor que la solicitud de servicio de sección crítica de la iteración previa; de otro modo obtener las métricas de rendimiento con la solicitud de servicio de sección crítica actualizada para la aplicación de software multi-hilos cuando la diferencia en el número de hilos bloqueados es inferior que el límite predefinido, en donde el límite predefinido indica que la diferencia en el número de hilos bloqueados ha convergido sobre un número de iteraciones de la técnica iterativa, determinando por tanto un rendimiento de la aplicación de software multi-hilos.