Anno: 
2018
Nome e qualifica del proponente del progetto: 
sb_p_1233722
Abstract: 

Physical limits, like power and memory walls, pushed industry towards more complex chip architectures. As a result modern systems rely on multi-core and on out-of-order execution engines, speculative support and hierarchical memory organization, which may lead to several cache levels or non-uniform memory access (NUMA). In such a complex scenario, understanding software structure and thoroughly analyzing its behavior at runtime represent a fundamental, yet challenging, task to address efficiency problems or security issues.
At the same time, a recent study from the Digital Power Group claims that the ICT ecosystem is approaching 10% of world electricity demand. In data centers, energy usage represents one of the major factor affecting operational costs. Moreover, at mobile and Internet of Things scale, devices are generally battery-powered which makes energy usage directly connected to usability. Such concern led manufacturers to introduce hardware mechanisms oriented to improve energy efficiency in operational contexts.
The complexity of the modern software stack, anyhow, is such that it is very difficult to understand what are the performance and energy profiles shown by applications. Traditional profiling approaches, such as those enforced by tools like perf of pin, are not viable to effectively shape the computing power and energy demands of generic applications. Moreover, this complexity is exacerbated by "heisenmonitoring" problems, related to the intrusiveness of profiling activities and their orchestration.
The goal of this research project is to identify methodologies and techniques for the construction of innovative monitoring middleware components. They will allow to extract significant energy and performance traces from generic (distributed and concurrent) applications, in a non-intrusive way. The project's goals also tackle the identification of a proper API to take action (at the level of the system) to control resource usage.

ERC: 
PE6_2
PE6_1
PE6_12
Innovatività: 

A key element of innovation will be approaching the problem from an High Performance Computing perspective, thus considering possible energy and power efficiency impairments at operating system or hardware level. As an example, in the context of shared memory applications executed on a Non-Uniform-Memory-Access system, scheduling threads on different nodes might result in a increased effectiveness, intended as performance-power-energy ratio, for techniques that benefit memory-bound applications (SMP) and a relative decrease in effectiveness for techniques (DVFS or frequency boosting) that increase the CPU frequency.
Another element of innovation, mostly ignored in the literature, is considering the different tradeoffs defined by the diverse synchronization paradigms in multi-threaded applications, based on either active/passive waiting or speculation. Furthermore, the hardware energy consumption counters recently included in commercial systems will be exploited, which (offering data at a fine-grained granularity with low overhead) allow the definition of efficient feedback-based solutions relying exclusively on data acquired at runtime. Finally, unlike most works in literature, we will jointly consider multiple power management mechanisms offered by the specific system class and dynamically evaluate their effectiveness at runtime.

An additional innovation element will be the development of a profiling-core (the method and its actual realization) able to exploit PMU features and software routines (e.g. OS-kernel routines) in combination. Moreover, we will relieve users from the burden of finding the correlation among metrics and specific high-level problems (or coding models). This not only represents the base for an all-inclusive optimizer engine, able to spread its support to OS core elements, such as the scheduling of tasks arrangement or the system governor maximizing the energy efficiency. In fact, it can also extend its support to security analysis by directly exploiting the observation of runtime execution flows, which may be hard to be predicted with static methods. Orchestration of profiling activities will be extensively studied, in order to reduce side effects by the activities themselves on the application runtime dynamics. Such a profiler is meant to be a transparent off-the-shelf support with the possibility to be adapted to a customized logic according to user preferences, further improving its support in particular context such as HPC.

At the same time, the design of techniques to classify the observed workload of applications over time is an important result, as it will allow to comprehend much better characteristics of software applications. This is an important result since, as IBM noted in 2001 [16], «the main obstacle to further progress in the IT industry is a looming software complexity crisis». Overall, the developed tools will help at properly planning IT consolidation projects. This will help IT departments to reduce the overall TOC of their server rooms, and provide a non-negligible reduction in the energy footprint which is currently required by such facilities.

[16] IBM, Autonomic Computing: IBM¿s Perspective on the State of Information Technology, White Paper.
http://www-1.ibm.com/industries/government/doc/content/resource/thought/....

Codice Bando: 
1233722

© Università degli Studi di Roma "La Sapienza" - Piazzale Aldo Moro 5, 00185 Roma