Skip to content

Commit

Permalink
#34 advancing up to the description in the methodology
Browse files Browse the repository at this point in the history
  • Loading branch information
JJ committed Sep 13, 2024
1 parent 2ec60b1 commit a5530c0
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
10 changes: 0 additions & 10 deletions paper/cplusplus-energy.bib
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,6 @@ @book{alfred2007compilers
}



@inproceedings{de2010new,
title={The new {Linux} ’perf’ tools},
author={De Melo, Arnaldo Carvalho},
booktitle={Slides from Linux Kongress},
volume={18},
pages={1--42},
year={2010}
}

@inproceedings{jay2023experimental,
title={An experimental comparison of software-based power meters: focus on CPU and GPU},
author={Jay, Mathilde and Ostapenco, Vladimir and Lef{\`e}vre, Laurent and Trystram, Denis and Orgerie, Anne-C{\'e}cile and Fichel, Benjamin},
Expand Down
4 changes: 4 additions & 0 deletions paper/energy-sac-2025.Rnw
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,10 @@ First and foremost, we need to decide the instrumentation that we are going to u

These applications need to have some way of {\em reading} the sensors that the computer includes and that measure energy consumption in different devices. The sensors, and the API to read them, is processor and architecture specific; however, in Intel and AMD based processors a standard proposed by Intel called RAPL (Running Average Power Limit) \cite{rapl,david2010rapl} is available. This API provides a series of virtual registers that receive information on power consumed by different parts of the computer, usually called {\em domains}. We will specially pay attention to what is called the {\em package} (or PKG) domain, which includes the energy consumed by the whole processor package, all the cores, but also other so called {\em uncore} components: the on-chip caches, for instance, but also in many cases the memory controller. This implies that although the energy the memory consumes is not really considered here, memory operations will actually contribute to the measurements found here. This PKG is important for our purposes, not only because it might include the bulk of the energy consumption, but also because it is the minimum granularity level that is common to Intel and AMD processors. In general, PKG will include other sub-sensors in the case or Intel processors, but it will not do so in the case of AMD processors, so it is one of the measures that we can use to compare energy consumption in processors from different manufacturers \cite{khan2018rapl}.

In order to take actual measurements, there are several options; either link our programs to a library that taps the RAPL API, or use a command-line tool that runs our scripts and takes measurements when the process exits. Since we are working with different languages, not all of which have published libraries that work with RAPL \footnote{C++ certainly has, but {\sf zig}, being a younger language, does not for the time being}, we will opt for the latter.

And once again, we are faced with different options. Linux includes a command-line tool called {\sf perf} \cite{de2010new} that is concerned with all kind of performance measurements, including energy consumption. It is an excellent tool as long as the only kind of systems you are going to measure use that operating system. In the past, however, we have used another took called {\sf pinpoint} \cite{pinpoint}, a tool that is available for Linux as well as MacOS, and besides offers a single interface for different power consumption APIs. The most important thing, for the purpose of this paper, however, is that we have used it for the measurements in previous papers. Using the same tool again gives us the capability of making comparisons with the results published in those papers, since the methodology used to estimate consumption from RAPL register reading will be exactly the same.

\section{Results}\label{sec:results}

\section{Conclusions}\label{sec:conclusions}
Expand Down
11 changes: 10 additions & 1 deletion paper/energy.bib
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
@inproceedings{de2010new,
title={The new {Linux} ’perf’ tools},
author={De Melo, Arnaldo Carvalho},
booktitle={Slides from Linux Kongress},
volume={18},
pages={1--42},
year={2010}
}

@article{gordillo2024programming,
title={Programming languages ranking based on energy measurements},
author={Gordillo, Alberto and Calero, Coral and Moraga, M{\textordfeminine} {\'A}ngeles and Garc{\'\i}a, F{\'e}lix and Fernandes, Jo{\~a}o Paulo and Abreu, Rui and Saraiva, Jo{\~a}o},
Expand Down Expand Up @@ -507,7 +516,7 @@ @inproceedings{sinha2001jouletrack
year={2001}
}

@INPROCEEDINGS{9307947,
@INPROCEEDINGS{pinpoint,
author={Köhler, Sven and Herzog, Benedict and Hönig, Timo and Wenzel, Lukas and Plauth, Max and Nolte, Jörg and Polze, Andreas and Schröder-Preikschat, Wolfgang},
booktitle={2020 IEEE/ACM International Workshop on Runtime and Operating Systems for Supercomputers (ROSS)},
title={Pinpoint the {J}oules: Unifying Runtime-Support for Energy Measurements on Heterogeneous Systems},
Expand Down

0 comments on commit a5530c0

Please sign in to comment.