La versión adaptativa en sistemas de memoria transaccional
Autores: Poudel, Pavan; Sharma, Gokarna
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
La versión adaptativa en sistemas de memoria transaccional
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Memoria transaccional
Mecanismo de versionado
Impaciente
Perezoso
Mejoras de rendimiento
Enfoque de versionado adaptativo
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 32
Citaciones: Sin citaciones
La memoria transaccional ha estado recibiendo mucha atención tanto de la academia como de la industria. En la memoria transaccional, el código del programa se divide en bloques de código que parecen ejecutarse atómicamente. Las transacciones se ejecutan especulativamente y la ejecución especulativa se apoya a través de un mecanismo de versionado de datos. El versionado hace que las anulaciones sean rápidas pero penaliza los compromisos, mientras que el versionado hace que los compromisos sean rápidos pero penaliza las anulaciones. Sin embargo, sigue siendo un tema ampliamente debatido si usar versionado ansioso o perezoso para ejecutar esas transacciones. El versionado perezoso parece apropiado para cargas de trabajo dominadas por escrituras y transacciones en escenarios de alta contención, mientras que el versionado ansioso parece apropiado para cargas de trabajo dominadas por lecturas y transacciones en escenarios de baja contención. Esto requiere un conocimiento previo sobre la carga de trabajo y el escenario de contención para seleccionar un método de versionado apropiado que logre un mejor rendimiento. En este artículo, presentamos un enfoque de versionado adaptativo, llamado , que cambia dinámicamente entre versionado ansioso y perezoso en tiempo de ejecución, sin necesidad de un conocimiento previo sobre la carga de trabajo y el escenario de contención, pero basado en parámetros del sistema apropiados, de modo que el rendimiento de un sistema de memoria transaccional siempre sea mejor que el obtenido utilizando versionado ansioso o perezoso individualmente. Proporcionamos tanto para sistemas de memoria transaccional persistentes como no persistentes utilizando parámetros de rendimiento apropiados para esos sistemas. Implementamos nuestro enfoque de versionado adaptativo en la última distribución de memoria transaccional de software TinySTM y lo evaluamos extensamente a través de 5 micro-benchmarks y 8 benchmarks complejos de las suites STAMP y STAMPEDE. Los resultados muestran beneficios significativos de nuestro enfoque. Específicamente, en sistemas de TM persistentes, nuestro enfoque logró mejoras de rendimiento de hasta 1.5 veces para el tiempo de ejecución y hasta 240 veces para el número de anulaciones, mientras que nuestro enfoque logró mejoras de rendimiento de hasta 6.3 veces para el tiempo de ejecución y hasta 170 veces para el número de anulaciones en sistemas de memoria transaccional no persistentes.
Descripción
La memoria transaccional ha estado recibiendo mucha atención tanto de la academia como de la industria. En la memoria transaccional, el código del programa se divide en bloques de código que parecen ejecutarse atómicamente. Las transacciones se ejecutan especulativamente y la ejecución especulativa se apoya a través de un mecanismo de versionado de datos. El versionado hace que las anulaciones sean rápidas pero penaliza los compromisos, mientras que el versionado hace que los compromisos sean rápidos pero penaliza las anulaciones. Sin embargo, sigue siendo un tema ampliamente debatido si usar versionado ansioso o perezoso para ejecutar esas transacciones. El versionado perezoso parece apropiado para cargas de trabajo dominadas por escrituras y transacciones en escenarios de alta contención, mientras que el versionado ansioso parece apropiado para cargas de trabajo dominadas por lecturas y transacciones en escenarios de baja contención. Esto requiere un conocimiento previo sobre la carga de trabajo y el escenario de contención para seleccionar un método de versionado apropiado que logre un mejor rendimiento. En este artículo, presentamos un enfoque de versionado adaptativo, llamado , que cambia dinámicamente entre versionado ansioso y perezoso en tiempo de ejecución, sin necesidad de un conocimiento previo sobre la carga de trabajo y el escenario de contención, pero basado en parámetros del sistema apropiados, de modo que el rendimiento de un sistema de memoria transaccional siempre sea mejor que el obtenido utilizando versionado ansioso o perezoso individualmente. Proporcionamos tanto para sistemas de memoria transaccional persistentes como no persistentes utilizando parámetros de rendimiento apropiados para esos sistemas. Implementamos nuestro enfoque de versionado adaptativo en la última distribución de memoria transaccional de software TinySTM y lo evaluamos extensamente a través de 5 micro-benchmarks y 8 benchmarks complejos de las suites STAMP y STAMPEDE. Los resultados muestran beneficios significativos de nuestro enfoque. Específicamente, en sistemas de TM persistentes, nuestro enfoque logró mejoras de rendimiento de hasta 1.5 veces para el tiempo de ejecución y hasta 240 veces para el número de anulaciones, mientras que nuestro enfoque logró mejoras de rendimiento de hasta 6.3 veces para el tiempo de ejecución y hasta 170 veces para el número de anulaciones en sistemas de memoria transaccional no persistentes.