Table 3 - uploaded by Romain Rouvoy
Content may be subject to copyright.
Source publication
Software power estimation of CPUs is a central concern for energy efficiency and resource management in data centers. Over the last few years, a dozen of ad hoc power models have been proposed to cope with the wide diversity and the growing complexity of modern CPU architectures. However, most of these CPU power models rely on a thorough expertise...
Contexts in source publication
Context 1
... assess the versatility of our approach, we consider several heterogeneous processor architectures that exhibit different characteristics and combinations of power-aware features, as illustrated in Table 3 and described below. ...
Context 2
... remainder of this section details the CPU power models that are automatically learned by our approach for each of the 4 CPUs introduced in Table 3. Each power model described below is embedded within a formula ac- tor, part of a software-defined power meter, for producing real-time power estimation. ...
Citations
... New hardware capabilities such as RAPL [92,52], can provide CPU energy (and in some cases, DRAM [27]). "Software power meters" such as powertop and others [28,26,31,32,94,62,53,82,71], use statistical models to attribute total CPU power to processes based on resource use (such as CPU performance counters). Modern hardware still only has rudimentary support for power measurement. ...
... Power models of the application and hardware [71,26] are commonly used in energy measurement. For example, power can be modeled as a function of CPU utilization, which can be estimated with hardware performance counters such as instructions retired, cache misses, etc. ...
... We combine this phenomenological approach with more a causal CPU power model for increased accuracy. We build on the plethora of CPU power models [26] and use hardware performance counters to map function CPU usage to power consumption. A CPU model θ CPU is built and used to predict the function's CPU-only power X CPU over each time-step. ...
Functions as a Service has emerged as a popular abstraction for a wide range of cloud applications and an important cloud workload. We present the design and implementation of FaasMeter, a FaaS control plane which provides energy monitoring, accounting, control, and pricing as first-class operations. The highly diverse and dynamic workloads of FaaS create additional complexity to measuring and controlling energy usage which FaasMeter can mitigate. We develop a new statistical energy disaggregation approach to provide accurate and complete energy footprints for functions, despite using noisy and coarse-grained system-level power (not just CPU power readings). Our accurate and robust footprints are achieved by combining conventional power models with Kalman filters and Shapley values. FaasMeter is a full-spectrum energy profiler, and fairly attributes energy of shared resources to functions (such as energy used by the control plane itself). We develop new energy profiling validation metrics, and show that FaasMeter's energy footprints are accurate to within 1\% of carefully obtained marginal energy ground truth measurements.
... To deal with this limitation, several software-defined power meters have been proposed. However, they are statically designed and coupled to a specific processor family or they are mainly based on power models that need a lot of data and time to be trained to predict power consumption accurately (Colmant et al., 2018;LeBeane et al., 2015). Power models designed in this way are only suitable for environmental conditions (i.e., memory usage, CPU usage, kinds of running applications) similar to those when the data for the training was collected. ...
... The software toolkit has results from contributions described in several publications (Colmant et al., 2017(Colmant et al., , 2018Guillaume Fieni et al., 2020, 2021 and is already exploited in several research projects: ...
... Many studies have been published on measuring device power consumption. Colmant et al. propose a novel toolkit of configurable/interchangeable learning techniques to automatically learn CPU power consumption models independent of CPU features and complexity [21]. The proposed CPU power consumption model estimated the power consumption of the entire CPU or individual processes with an accuracy of 98.5% on average. ...
Reducing power consumption is one of the most important issues in smartphones, especially for the CPU, since it is one of the most power-consuming devices. Improving the user experience by increasing CPU processing performance are also important. There is a trade-off between reducing CPU power consumption and improving the user experience. Decreasing the CPU clock rate reduces power consumption but degrades the user experience. Increasing the clock rate does the opposite. Therefore, it is desirable to increase the clock rate when and only when CPU resource consumption is high, and decrease it when it is low. However, the kernels of many smartphone operating systems, including the Linux kernel in the Android OS, use a follow-up policy of increasing or decreasing the clock rate after observing an increase or decrease in CPU resource consumption, which does not immediately provide appropriate clock rate control. We believe that predicting CPU usage in the near future will be critical for proper control. In this paper, we focus on the Android OS and propose a method to predict CPU usage in the near future by observing the behavior of foreground applications, and controlling the CPU clock rate based on the prediction. The proposed method modifies Android Runtime, which is the application execution environment, observes application method calls in Android Runtime, and predicts CPU usage in the near future based on these observations. We then demonstrate the effectiveness of the proposed method using our microbenchmark application and an actual distributed Android application.
... These metrics are made available using the RAPL (Running Average Power Limit) library [29]. Software power meters then utilize a variety of models to derive an estimation of the marginal energy usage that can be attributed to each software process in the machine [30]. ...
Reducing the energy consumption of the global IT industry requires one to understand and optimize the large software infrastructures the modern data economy relies on. Among them are the data stream processing systems that are deployed in cloud data centers by companies, such as Twitter, to process billion of events per day in real time. However, studying the energy consumption of such infrastructures is difficult because they rely on a complex virtualized software ecosystem where attributing energy consumption to individual software components is a challenge, and because the space of possible configurations is large. We present GreenFlow, a principled methodology and tool designed to automate the deployment of energy measurement experiments for data stream processing systems in cloud environments. GreenFlow is designed to deliver reproducible results while remaining flexible enough to support a wide range of experiments. We illustrate its usage and show in particular that consolidating a DSP system in the smallest number of servers that are capable of processing it is an effective way to reduce energy consumption.
... It includes applications such as fluid dynamics solvers, image processing algorithms, and data mining applications [39]. The suite is widely used to compare and evaluate different shared-memory architectures, programming models, and optimization techniques, including power modeling [40]. Table 3 describes the machine used for the experiments. ...
... The collected data included execution time (ET), energy (E), task clock (TC), executed instructions (#inst) and branches (#Br), branch misses (BrM), last-level cache store (LLCS) and load (LLCL), last-level cache misses (LLCM), context switches (CS), CPU migrations (CPUM), and page faults (PF). The researchers chose these events because of their direct impact on energy [40]. The data were also collected (outside containers) in two general cases: when the Power Management Unit was enabled (PMUen) and when the Power Management Unit was disabled (PMUdis). ...
Power and energy efficiency are among the most crucial requirements in high-performance and other computing platforms. In this work, extensive experimental methods and procedures were used to assess the power and energy efficiency of fundamental hardware building blocks inside a typical high-performance CPU, focusing on the dynamic branch predictor (DBP). The investigation relied on the Running Average Power Limit (RAPL) interface from Intel, a software tool for credibly reporting the power and energy based on instrumentation inside the CPU. We used well-known microbenchmarks under various run conditions to explore potential pitfalls and to develop precautions to raise the precision of the measurements obtained from RAPL for more reliable power estimation. The authors discuss the factors that affect the measurements and share the difficulties encountered and the lessons learned.
... RAPL 38 obviates the need for external hardware power measurement devices that are complex to 39 manage, lack fine granularity, and are expensive [8]. However, using RAPL for measuring 40 CPU power consumption accurately, especially on the process level, needs some precautions 41 to avoid noise in measurement [8]. 42 This report presents the researchers' experience and methodology in using the RAPL 43 tool for measuring the power consumption of a program and the precautions recommended 44 during measurement operations to raise the reliability of the RAPL tool for more accurate 45 power estimation. ...
... It includes applications such as fluid dynamics 403 solvers, image processing algorithms, and data mining applications [39]. The suite is 404 widely used to compare and evaluate different shared-memory architectures, programming 405 models, and optimization techniques, including power modeling [40]. Table 2 describes 406 the machine used for the experiments. ...
... The workloads ran with one thread 415 (1T), two threads (2T), and four threads (4T). In each case, the benchmarks were executed [40]. The data also 421 were collected (outside containers) in two general cases: when the Power Management Unit 422 was enabled (PMUen) and when the Power Management Unit was disabled (PMUdis). ...
Power and energy efficiency are among the most crucial requirements in high-performance and other computing platforms. This work examines through extensive experimentation methods and procedures suitable for assessing the power and energy efficiency of fundamental hardware building blocks inside a typical high-performance CPU, focusing on the dynamic branch predictor (DBP). The investigation relies on the Running Average Power Limit (RAPL) interface from Intel, a software tool for credibly reporting the power and energy based on instrumentation inside the CPU. We use well-known microbenchmarks under various run conditions to explore potential pitfalls and to develop precautions to raise the precision of the measurements obtained from RAPL for more reliable power estimation. The authors discuss the factors that affect measurements and share the difficulties encountered and the lessons learned.
... However, one needs to monitor at a finer level to optimize the energy of the whole system by targeting the applications that are running on it. Several solutions have been proposed over the years to estimate the power consumption of the software running on a machine, such as software power models [13,37]. Unfortunately, these approaches require a priori learning steps that hinder their deployments at scale and in heterogeneous environments, in addition to be extremely fragile to workload changes and non-portable across machines. ...
... Performance events are deeply linked to the underlying hardware and requires context specific attention. In the state of the art, power models have an offline benchmark phase where the performance events for the CPU of the machine are explored, and where the correlation coefficient of the various events is used to select the most relevant [13,37]. This allows to select the most relevant performance events for the software power models used to monitor the power consumption of the software processes. ...
... To select the key metrics, the literature usually builds on Pearson or Spearman correlation [53,13,21] and Principal Component Analysis (PCA) [59], which often leads to consider performance events like unhalted core cycles, unhalted ref cycles, instructions retired, llc misses/prefetch, or memory transactions cycles [52,12,37,13,21]. Yet, this selection phase requires to be executed on every single target architecture to make sure that the relevant performance events are made available, which inevitably impacts the cost and the scale of the deployment of software-defined power meters. ...
Energy is one of the biggest expenses for a data center, most of which is attributed to the cooling system, as well as the many underlying parts, such as network equipment and the large number of machines used.These infrastructures are very energy-intensive, and their number is constantly increasing around the world, especially due to the growing popularity of the Cloud Computing.A lot of software is needed to run these infrastructures, especially for network management, data storage, task scheduling and the supervision of all hardware and software.All these software consumes a significant amount of energy, but are not taken into account in the calculation of the energy efficiency of the infrastructures.The scientific community as well as data center operators have developed many approaches to evaluate and optimize energy consumption globally, but the question of the energy cost of software infrastructures remains rarely studied.The objective of this thesis is to propose methods to analyze the end-to-end software energy efficiency of data processing infrastructures.To do so, we propose approaches and tools to accurately estimate the energy consumption of software running on a distributed infrastructure, as well as an indicator to calculate their energy efficiency.Firstly, we introduce SmartWatts, a software power meter to estimate the energy consumption of software containers deployed on a machine.Secondly, we propose SelfWatts, a controller to automate the configuration of software power meters to facilitate their deployment in heterogeneous infrastructures.And finally, we propose xPUE, a metric to calculate the energy efficiency of software and hardware in real-time at different levels of an infrastructure.Through these contributions, we aim to advance the knowledge in the field of software energy consumption, and allow to accurately measure the energy consumption of software deployed at different levels of the infrastructure.This allows infrastructure operators, as well as software developers and users, to observe and analyze in detail the energy consumption and thus assist in its optimization.
... We first need a tool to measure energy consumption to study this variation. For this we used POWERAPI [36], which is a power monitoring toolkit that is based on Intel Running Average Power Limit (RAPL) [74]. The advantage of PowerAPI is that it reports the Energy consumption of CPU and DRAM at a socket level. ...
... For our case, we used Intel Running Power Average Limit (RAPL) [74] to collect the power samples of the running tests. We run POWERAPI [36], to report on measurements collected by Intel RAPL and upload them to a so-called computing machine, then we calculate the Energy using the trapezoidal rule: The motivation for separating measurement collection from energy computations is to reduce any interference with the benchmark, our sensor being a lightweight C program running as a Docker container. ...
The ICT sector is claimed to account for 2% of global emissions. Even though this might seem like a small number, the success of ICT technologies will always lead to more greenhouse gas emissions. In 2019, the number of data centers worldwide was 1.5 million, which is expected to reach 2.5 million by 2025. In this situation, lowering the emissions from the ICT sector depends on reducing the amount of energy used by data centers. There are three main methods to achieve this goal: improving the hardware's efficiency, lowering the cooling systems' energy consumption, or decreasing the energy consumption of the servers themselves. This thesis focuses on the last approach, which I believe is the most affordable one, as it does not require any physical changes to data centers. My goal is to assist developers in making more eco-friendly software services by providing them with tools and guidelines to create software that runs on servers while consuming less energy. To do so, I decided to pursue an empirical approach consisting of three steps: test, measure, and optimize.The reason for such a decision is to follow the rapid pace of the software industry. In fact, the software industry has one of the fastest growth rates, which makes it challenging to keep up with the newest technologies. So, instead of just reporting my insights, I gave practitioners the means and protocols to allow them to test their hypotheses. I believe that some of the insights shared as part of this thesis might already have become obsolete when published.Due to the urgency of the climate change issue, I decided first to harness the most popular yet energy-hungry programming language, Python. Therefore, I started by analyzing Python's code's energy behavior during its most commonly used cases. Then, I provided a non-intrusive technique to reduce its energy consumption. After that, I extended this strategy to another programming language famous for its legacy code base, Java, to show that we can still reduce the energy consumption of already running applications without paying a considerable price.Finally, I adopted a more systemic approach. Instead of optimizing one single application, can one reduce the energy consumption of the data center as a whole entity? Thanks to the micro-services architecture, one application can be constructed using many services, each independent of the other. This type of architecture releases us from the bond of adopting a single programming language as the monolithic application does. And with this, one can use multiple programming languages and take advantage of the strengths of each one for a specific scenario. The last chapter analyzed the energy behavior of several programming languages regarding web services while opening a new path toward sustainability within timeless applications.
... In [10], a micro-benchmark-based modeling approach for heterogeneous processors was proposed, in which the authors state that statistical modeling has a significant initial cost during the model training. In [6], the authors propose a technique to generate CPU power models without having a profound knowledge of the CPU architecture. It automatically detects the hardware performance counters correlated to the power consumption and generates the power model from the selected features. ...
... The first examples of software measurement tools are PowerAPI [36], SmartWatts formula [49] and SelfWatts [50]. These tools collect global energy consumption measurements from RAPL and use other system events such as cache misses/hits and CPU frequency scaling (DVFS) via a sensor to construct a power model of the control groups (system control groups, docker containers, Kubernetes pods, etc.) using a Ridge regression. ...
Le secteur des TIC serait responsable de 2% des émissions mondiales. Même si ce chiffre peut paraître faible, le succès des technologies TIC entraînera toujours une augmentation des émissions de gaz à effet de serre. En 2019, le nombre de centres de données dans le monde était de 1,5 million, et devrait atteindre 2,5 millions d’ici 2025. Dans cette situation, la diminution des émissions du secteur des TIC dépend de la réduction de la consommation énergétique des centres de données. Il existe trois méthodes principales pour atteindre cet objectif : améliorer l’efficacité du matériel, faire baisser la consommation énergétique des systèmes de refroidissement, ou diminuer la consommation énergétique des serveurs eux- mêmes. Cette thèse se focalise sur la dernière approche, qui me semble être la plus abordable, car elle ne nécessite aucun changement physique dans les centres de données.Mon objectif est d’aider les développeurs à créer des logiciels plus écologiques en leur fournissant des outils et des directives pour créer des applications qui tournent sur des serveurs tout en consommant moins d’énergie. Pour ce faire, j’ai décidé d’adopter une approche empirique en trois étapes : tester, mesurer et optimiser.La raison d’une telle décision est de suivre le rythme rapide de l’industrie du logiciel. En fait, le secteur du logiciel connaît l’un des taux de croissance les plus rapides, ce qui rend difficile de suivre les nouvelles technologies. Ainsi, au lieu de me contenter de rapporter juste mes réflexions, j’ai fourni aux praticiens les moyens et les protocoles nécessaires pour leur permettre de tester leurs hypothèses. Je suis convaincu que certaines des conclusions partagées dans le cadre de cette thèse pourraient déjà être obsolètes au moment de leur publication.Vue l’urgence de la question du changement climatique, j’ai décidé d’abord d’exploiter le langage de programmation le plus populaire et pourtant le plus gourmand en énergie, Python. J’ai donc commencé par analyser le comportement énergétique du code Python dans ses utilisations les plus courantes. J’ai ensuite proposé une technique non intrusive pour réduire sa consommation énergétique. Ensuite, j’ai étendu cette stratégie à un autre langage de programmation célèbre pour sa base de code ancienne, Java, pour montrer que nous pouvons encore réduire la consommation d’énergie d’applications déjà en cours d’exécution sans payer un prix considérable. Enfin, j’ai adopté une approche plus systémique. Au lieu d’optimiser une seule applica- tion, peut-on réduire la consommation d’énergie du centre de données dans son ensemble ? Grâce à l’architecture micro-services, une application peut être construite à l’aide de nom- breux services, tous indépendants les uns des autres. Ce type d’architecture nous libère de l’obligation d’adopter un seul langage de programmation comme le fait l’application monolithique. Et avec cela, on peu employer plusieurs langages de programmation et profiter des forces de chacun d’eux pour un scénario spécifique. Le dernier chapitre a analysé le com- portement énergétique de plusieurs langages de programmation concernant les services Web tout en ouvrant une nouvelle voie vers la durabilité au sein des applications intemporelles