Multicore processors have become the reference architecture for any modern computing system, including highend servers, laptop/desktop PCs, as well as smartphones and other embedded systems. The consequence of this evolution of processors' design is that, today, the issue of synchronizing access to shared data challenges not only the specialists of parallel programming, but the mass of common programmers who wish to exploit, in a simple way, the full potential of modern architectures.
Transactional Memory (TM) [Herl93] answers precisely this urge of identifying paradigms to simplify concurrent programming and spare programmers from the complexity of classic locking schemes. By requiring programmers to only identify which code portions need to be executed atomically, and not how atomicity has to be enforced, TM can drastically simplify the development of parallel applications and abate their timetomarket and costs [Ross10,Pank11]
Over the last decade, TM has been a hot research topic in a number of interdisciplinary fields. However, research in the TM area has so far overlooked an essential aspect for any modern computer architecture: energy efficiency. Nowadays the theme of green computing is an ubiquitious concern, from data centers, which frequently perform on the limit of economically viable cooling systems, to mobile devices, whose computing power has been growing faster than batteries' capacities. Let alone the urge to reduce energy consumption, motivated by the environmental impact of electrical power production.
Yet, the matter of implementing highperformance energyconscious TM remains largely an open issue. This is indeed a challenging problem, which involves understanding the complex relations between the parallelism degree of a TM application, the synchronization mechanisms of the TM framework, and the achievable performance/energy consumption.
In this project we aim to fill this relevant gap, by developing GreenTM, the first (to the best of our knowledge) energyefficient TM system. To this end, GreenTM will combine, in an automatic and transparent fashion, alternative synchronization techniques under the guidance of innovative selftuning schemes that will allow pursuing different tradeoffs between performance and energyconsumption. More in detail, GreenTM will rely on the following key mechanisms:
- Green Concurrency Control (GCC): most existing TM algorithms exploit speculation, which can lead to abort a large number of transactions and, consequently, to waste energy. The key innovative idea at the basis of GCC is to combine pessimistic, ahead oftime locking schemes, with runtime conflict detection mechanisms as supported by TM. By combining these 2 approaches, GCC aims to take the best of both: aheadoftime locking allows to minimize energy waste by avoiding the concurrent execution of conflicting transactions; on the other hand, by relying on TM to detect conflicts among concurrent transactions, GCC can avoid using overly conservative locking strategies that ensure the absence of *any* atomicity violation (as in conventional lock allocation schemes), hence enhancing parallelism.
- Dynamic switching between TMs: there exist fundamental tradeoffs with regard to performance and energyefficiency of existing TM algorithms; this is particularly true considering the recent introduction of hardwarebased TM support in mainstream multiprocessors. GreenTM will leverage on these tradeoffs and dynamically adapt the TM algorithm employed by the GCC to better fit the workload's characteristics with the goal of maximizing efficiency.
- Concurrency throttling: GreenTM will integrate a novel combination of hardware/software mechanisms aimed at dynamically throttling parallelism of TM applications. To this end, we will exploit the ability of processors to adjust the operating frequency of their cores, as well as software techniques for adjusting the number of concurrently active application threads. This will allow to elastically tune the multiprogramming level depending on conflict probability, while prioritizing contending transactions (by increasing the frequency of the cores on which they run) to reduce aborts and consequent energy waste.
The above mechanisms will be regulated by an innovative selftuning methodology, which will modularly combine analytical models, machine learning, and online exploration approaches. These selftuning strategies will be driven by objective functions jointly considering performance and energy, a research direction so far unexplored in the area of TM.
Overall, this project is characterized by the exploration of recent trends in the industry and research. We propose several research lines to assess the viability of our ideas and obtain preliminary prototypes and results. This exploratory project will represent a first step and pave the way to future research in the emerging field of energyefficiency in concurrent programming.