Energy-aware Scheduling in Transactional Memory Systems - Marques Junior, Ademir [UNESP]; Baldassin, Alexandro [UNESP]; IEEE (Ieee, 2016)
Transaction scheduling is a relatively new technique for transactional memory systems responsible for deciding which transactions to run in a given moment. Current transactional schedulers are designed with performance in mind, leaving unattended other important metrics such as energy consumption. In order to address this important concern, this paper presents a novel heuristic, called Dynamic Serializer (DS), for scheduling transactions with the aim of reducing energy consumption and improving the energy-delay product (EDP) of transactional applications. DS serializes the execution by choosing either a spinlock or mutex according to a dynamic profile based on abort rates. The idea is to use a spinlock when a transaction is likely to succeed in the near future, since spinning while waiting for the lock is faster than blocking as in the case of a mutex. On the other hand, a mutex is used in case transactions need to wait a long time before resuming because in this case energy can be saved by blocking a thread and enabling the processor Dynamic Voltage and Frequency Scaling (DVFS) to act. DS exploits this tradeoff to improve the EDP of transactional programs. Experimental results with an Intel Core i7 with 8 logical threads and the STAMP benchmark show an EDP improvement of up to 17% and an average of 4.9% compared to LUTS-Dynamic, a state-of-the-art scheduling heuristic for transactional systems.