<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Measuring Green Software Enginnering Monitoring Software Energy Consumption</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>In the MEASURE ITEA</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Project</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>5 avenue du champ de Manoeuvres</institution>
          ,
          <addr-line>Carquefou</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Alessandra Bagnato, Marcos Aurélio Almeida da Silva</institution>
          ,
          <addr-line>Antonin Abherve</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Institut Catholique d'Arts et Métiers</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Jérôme Rocheteau</institution>
          ,
          <addr-line>Claire-Lise Pihery, Pierre Mabit</addr-line>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Softeam Research &amp; Development Division Paris</institution>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>- This paper highlights the benefits within the Green Computing metrics measurement context from the MEASURE ITEA 3 project (Measuring Software Engineering) Project French cluster. It presents the Structured Metrics Meta-model (SMM) used as a standardized language and its implementation within the Softeam's Modelio modelling and ICAM's EMIT, a set of tools able to provide software power and energy measurements, its result mapping into SMM and the proof of its interoperability with Modelio and with all MEASURE partner tools in the future.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Keywords—Green Computing,
Sustainability, Green Measures.</p>
      <p>Metrics,</p>
      <p>Software
I.</p>
      <p>INTRODUCTION</p>
      <p>
        The goal of the MEASURE ITEA 3 (see [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]) is to
increase the quality and efficiency, and lower the costs and
time-to-market of software products in Europe. MEASURE
(Measuring Software Engineering) project (see [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ])
will provide a toolset for future projects to properly measure
their quality and their impact and in particular to develop
methods and tools for analysing the big data produced by the
continuous measurement and the advanced analytics of the
measurement data enabled by the project.
      </p>
      <p>The project will specifically focus on Green Computing
metrics as ICT carbon emissions increase continually these
past years. Therefore, an emerging trend in software
engineering consists in building energy efficient software.
Alongside investigating what is a performant or a
maintainable software for instance, the MEASURE project
aims at defining what is an energy-efficient software and
how to assert such a statement.</p>
      <p>In this paper we analyse the green metrics contribution
carried out by the project. This paper focus in particular on
the MEASURE’s EMIT tools. The objective of these tools is
to monitor software energy consumption.</p>
      <p>The Structured Metrics Meta-model (SMM) is used in
order to formally define measures and to represent
measurements related to these measures. Such a standardized
meta-model enables tool interoperability as their common
exchange language. It is presented in Structured Metrics</p>
    </sec>
    <sec id="sec-2">
      <title>STRUCTURED METRICS META-MODEL (SMM)</title>
      <p>Most software system properties can be quantified with
the application measurement processes. OMG’s Structured
Metrics Meta-Model (SMM) supports the meta-model
agnostic definition of those measurement processes.</p>
      <p>The SMM specification defines a meta-model for
representing measurement information related to any model
structured information with an initial focus on software, its
operation, and its design. SMM is an extensible meta-model
for exchanging both measures and measurement information
concerning artefacts contained or expressed by structured
models, such as MOF.</p>
      <p>SMM includes elements representing the concepts
needed to express a wide range of diversified measures. The
specification does include a minimal library of software
measures, but it is not asserting that the listed measures
constitute standards themselves; these are supplied simply as
non-normative examples.</p>
      <p>SMM is a specification for the definition of measures and
the representation of their measurement results. The measure
definitions make up the library of measures and that serves
to establish the specification upon which all of the
measurements will be based.</p>
      <p>SMM is part of the Architecture Driven Modernization
(ADM) roadmap and fulfils the metric needs of the ADM
roadmap scenarios as well as other information technology
scenarios.</p>
      <p>SMM specifies the representation of measures without
detailing the representation of the entities measured. SMM
anticipates that those entities are represented in other OMG
meta-models. Measures of software artefacts or their features
that are defined within the SMM, the Knowledge Discovery
Metamodel (KDM), the Abstract Syntax Tree Metamodel
(ASTM), another ADM roadmap meta-model, or another
OMG meta-model may arise as:
•
•
•
•
•
•</p>
      <p>Counts. (Lines of code measures exemplify the
mechanism.)
Direct applications of named measurements. (One
such named measure is Cyclomatic Complexity.)
Simple algebraic change of calibration of already
defined numeric measures (e.g., the translation to
‘choice points’ from Cyclomatic complexity).</p>
      <p>Simple algebraic aggregations of numeric artifact
features, including other measures, over sets of
software artifacts.</p>
      <p>Simple range-based grading or classification of
already defined numeric measures. (Cyclomatic
reliable/unreliable quadrants are one such grading.)
Qualitative evaluations where the range
evaluations can be mapped to a linear order.
of</p>
      <p>
        Useful metrics must go beyond static (or dynamic) code
analysis and technical performance to include factors related
to information utility and acceptance of the system by the
organization(s) participating in an enterprise. To be objective
and repeatable, such metrics need to be based on technical
characteristics of the system. Given a meta-model
representation of such characteristics, the SMM will
facilitate the exchange of such measures [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Consistent with
other models defined by OMG, the SMM is defined using
the MOF meta-modeling language. As such it will
have a standard XML based representation presented by
XMI.
      </p>
      <p>
        Consequently, the exchange of metrics defined by SMM
will be in the XMI. These models will, similarly, be
compatible with MOF repositories for storage and retrieval
by various tools. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>III.</p>
    </sec>
    <sec id="sec-3">
      <title>MEASURE GREEN COMPUTING METRICS</title>
      <p>
        Green Computing metrics have been proposed in this
past decade. However, they mainly focus on hardware, based
on the power supply of such components and the carbon
footprint of the life cycle of these products. The few that
tackle software, strongly restrict application domains, for
instance to data centres, virtual machines or mobile
technology only. Furthermore, these approaches have been
based on power consumption at runtime, e.g., during
software execution according to some usage scenarios or use
cases. Indeed, all Green Computing metrics target users of
the devices or applications. As such, metrics are relevant for
choosing products with the smallest energy consumption and
answering the question: "which software products are
green". These metrics do not target software engineers and
do not answer the question "how to produce greener
software" [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The MEASURE project will strengthen the
Green
Measure
name
      </p>
      <p>Energy
Efficiency
Average</p>
      <p>CPU
Standard
Deviation</p>
      <p>CPU
Minimum</p>
      <p>CPU
Maximum</p>
      <p>CPU
Average</p>
      <p>RAM
Standard
Deviation</p>
      <p>RAM
Minimum</p>
      <p>RAM
Maximum</p>
      <p>RAM
concept of Green IT, as well as the research regarding energy
and smart systems. Within this section an overview of the
main green metrics that will be tackled. The modeling
formalisms supported by MEASURE will also investigate
the existing correlation between software development
measurements and the quality of end-user experience
providing cross-metrics feedback very much needed in
industry.</p>
      <p>The following table shows the measure green metrics
currently under development, they purpose is to provide
input for finding relevant elements during the Testing phase,
to challenge the energy consumption of a given code against
computing-equivalent codes. The library takes into account
POWER, RAM, CPU, VOLTAGE, INTENSITY and
FACTOR.
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes</p>
      <p>Section IV describe the currently available library of
Green measures specified and modelled with the structured
metrics metamodel</p>
      <p>The examples in that section are the first building block
of the MEASURE project tool chain, the Modelio modeling
tool enabled with the SMM Module developed based on the
Structured Metrics Metamodel OMG Standard in Modelio’s
open source distribution to allow the specification of metrics
and in particular of green metrics and the exchange of
metrics within tools using XMI.</p>
      <p>LIBRARY OF GREEN MEASURES DEFINED USING THE</p>
    </sec>
    <sec id="sec-4">
      <title>SMM STANDARD</title>
      <p>This excerpt of our green measure example library shows
the CPU related metrics including average CPU, standard
deviation CPU minimum CPU or maximum CPU, defining
the % of CPU used in a Modelio SMM model.</p>
      <p>SMM Measures are gathered according to the type of
measure that they are related to. For instance, the figure 2
and the figure 3 illustrate the group of measures around the
CPU load of measurands. In fact, a SMM direct measure
exists in that group and is linked with a unit of measure.
However, no one SMM direct measurement will be inserted
into the SMM Library of Green Measures as such
measurements correspond to raw measurements and provide
no information.
Information is provided by analysis of these raw
measurements, The SMM CPU direct measure is then used
for defining some SMM collective measures that stands for
statistical measures with a SMM accumulator that ranges
over average, standard deviation, minim, maximum, etc.</p>
      <p>These SMM collective measures are then linked to a
SMM measure binary relationship as its source and where
the target measure is defined by the SMM CPU direct
measure. The figure 4 shows this relationship.
as detailed in section V. Such tools monitor the power of
computers i.e. their energy consumption.
These SMM collective measures are inserted into the SMM
Library of Green Measures and could be referenced by
some SMM collective measurements. The latter correspond
to the results of statistical analysis mentioned above. They
provide information on measurands, for instance the average
CPU load, its standard deviation, its minimum and
maximum. A measure that stands for the CPU load area
would enrich these collective measures in order to provide
the CPU load over the time as the same way as the power
measure leads to a measure of energy i.e. the area of the
power over the time.
Measurements of the CPU percentage can derive from tools
like Windows Perfmon.exe as in Figure 6 or from the de
MEASURE Energy MonIToring (EMIT for short) as
detailed in section V. Measurements for the RAM usage can
derive from that tools as well. These tools monitor the
computer activities i.e. its processes, their CPU load, their
RAM usage, their HDD access, their network bandwidth,
etc. However, measurements of the power, the intensity, the
voltage or the power factor derive from other kinds of tools
Energy MonIToring (EMIT for short) is a set of tools that
aims at monitoring software energy consumption. It is
designed as network made of sensors and actuators and can
be seen as composed of 5 kinds of tools:
1. The 1st type of tool gathers web-services called
“observees”. They make possible to launch a
process on a computer from a given command line.
These tools then allow to launch a software on a
computer from a remote computer in order to
monitor its implementation. These tools are
mandatory for software energy monitoring as they
manage software executions.
2. The 2nd type of tool is HTTP services named
“power measurement observers”. They consists in
connected power or energy measurement
instruments. A measurement acquisition can be
remotely started, remotely stopped and the
measurement data can be retrieved once the
monitoring is achieved. These tools are mandatory
for software energy monitoring as they provide
energy measurements. However, their energy
footprint does not affect the energy consumption of
the monitored software as they do not need to be
installed on the computer that hosts the
“observees”.</p>
      <p>
        As for the 3rd type of tool, HTTP services named
“computer activity observers”, they should be
installed on observed computers and then their own
energy footprint is monitored by power
measurement observers during a measurement
acquisition in which the computer activity observers
are involved. The latter consist in programs that
scan the operating system logs, directly or not
thanks to libraries. As the previous kind of
observers, they can be remotely started, remotely
stopped and the measurement data can be retrieved
once the monitoring is achieved. These tools are not
required for software energy monitoring on the first
step. However; computer energy consumption is
involves by activities such as RAM usage, CPU
load, HDD inputs and outputs, network bandwidth,
etc (see [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]).
4. The 4th type of tool corresponds to the web-services
base SCADA (Supervisory Control And Data
Acquisition) application itself. This sort of
application embeds HTTP clients that synchronize
the different registered “observees” and “observers”
for measurement acquisitions. These applications
also exposed the collected measurement data
throughout HTTP services in order to build
thirdparty tools for reporting or data analysis. These
exposed HTTP services correspond to a RESTful
API.
5. The 5th and last kind of tool is merely composed of
clients of EMIT SCADA applications e.g. graphical
user interface applications that enable to control any
SCADA systems that complies the previous
RESTful API.
      </p>
      <p>EMIT is an extensible set of tools: it comes alongside an API
and some design patterns that allow developers to plug their
own equipment, devices, instruments, measures, etc.</p>
      <p>VI.</p>
      <p>Emit Experimental Design
EMIT experimental design aims at monitoring software and
acquire measurements helpful to compute software energy
consumption. The Figure 7 : EMIT Experimental Design
describes it. This figure points out 2 kinds of networks: The
red network stands for the communication network i.e. here
the Ethernet network. The green network stands for the
electric network. Whereas the communication network is
fully distributed, the electric one is somehow controlled by
power measurement instruments. In fact, they are placed
between the electricity supplier (the grid) and the monitored
computers in order to monitor them. Moreover, they do not
have to monitor computers hosting the management system
whereas these computers require to be connected to the
communication network in order to launch measurements
and collect their results.</p>
      <p>
        “Observees” are located on the four different
computers called CM1,…,CM4. Those computers
have been chosen because of the combinations
between two parameters: the operating system
(Linux or Windows) and the architecture (32 bits or
64 bits for example). These computers are
connected with EMIT throughout Ethernet.
2. “Power measurement observers” are provided by
three devices called Arduino_PO, Power_GUI,
Peakteck_PA in the Figure 7 : EMIT
Experimental Design. The latter is an industrial
power analyser able to monitor one power supply. It
outputs data every 300ms throughout a serial port.
As for Arduino_PO, it also broadcasts data on a
serial port but every 200ms. However, it consists of
a 3-way power measurement instrument that is
composed of voltage and intensity sensors and
controlled by an Arduino microcontroller. These
two devices are connected using serial ports to the
computer that owns the third observer Power_GUI
which is also composed of voltage and intensity
sensors but controlled by a National Instruments
data acquisition device. All of these power
observers can be controlled remotely using web
services located on the Power_GUI computer. And
they provide time series for the active power.
3. “Computer activity observers” are located on the
four computers called CM1,…,CM4. They provide
time series for CPU load and RAM memory used
currently; however, this can easily be extended in
future works. There exists two implementations that
are based on different Java libraries: Sigar [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and
      </p>
      <p>
        Oshi [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. The latter are wrapped into web services
that start, stop monitoring and provide its data.
      </p>
      <p>The EMIT SCADA application is a set of web
services that controls all these “observers” and
“observees” throughout HTTP requests send to the
corresponding observer or observee web services
that are hosted on computers CM1,…,CM4 and the
Power_GUI one. It requires that exactly one
“observee” is enabled at once; it allows none or
several observers and manage measurements as the
Figure 8 : EMIT Measurement Process shows:
Firstly, it starts the “observers”. It then waits for 5
seconds in order to monitor the target computer at
idle state. It launches the “observee” i.e. the
specified program on the remote computer. After
software executions stop, EMIT pauses 5 more
seconds before stopping the observers and
retrieving their measurement data. It finally stores</p>
      <p>
        These data are exposed to different EMIT clients
throughout web services. The latter also allow
clients to manage measurands i.e. monitored
software and to perform some measurements.
Currently, several EMIT command line clients have
been developed as well as a standalone Java
applications that renders measurement data thanks
to the XChart Java library [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>For example, the Figure 9 : Measurement Data Example
shows a chart built on measurement data for a given
acquisition. No one analysis are performed by the EMIT
SCADA application. It merely consists in collecting data, not
analysing them. Analysis can be applied to measurement
data by retrieving them from the EMIT server (SCADA
application) and by providing the analysis result thanks to
web services (see IX).</p>
      <p>EMIT data model focuses on measurements. In fact, the
central entity in the Figure 9 : Measurement Data Example
class diagram called Measurement references four other
entities:</p>
      <p>The MeasurementSet entity that corresponds to
the set of measurements collected during one
measurement acquisition which is specified
firstly by a measurement timestamp thanks to its
measured attribute and secondly by a
measurement duration thanks to its so-called
attribute,
2. the Measure entity i.e. the type of measurement
that is defined by its name and its unit of
measure,
3. the Instrument entity that corresponds to the
observer which provides this measurement that
is defined by its URI identifier,
4. the Environment entity that corresponds to the
observee characteristics such as the operating
system and the computer architecture. Hence its
attribute names sys, arch and version.</p>
      <p>The Measurement entity is defined by an attribute called
feature that corresponds to the name of this measurement
among all the measurements provided by its observer during
a single acquisition. This entity is also defined by an attribute
Figure 10 : EMIT Data Model
path which corresponds to the file that contains this
measurement data. The latter are formatted as a list of
keyvalue pairs respectively made of long and double values.
EMIT data model is composed of two more entities:
Measurand and Observation. The first one corresponds to
the monitored software process specified by its command
line. The last entity makes possible to register some analysis
results (value) provided by third-party tools (provider) over a
given measurement. For instance, this could be used for
storing some mere statistics such as the average, the An
observation is related to a given measure that can be
different from that of its corresponding measurement.</p>
    </sec>
    <sec id="sec-5">
      <title>VIII. Mapping from Emit to SMM</title>
      <p>Structure Metrics Metamodel (SMM, see Structured
Metrics Meta-Model (SMM)) has been design for
formalizing metrics, measures and measurements for any
given domain. EMIT data model as showed in Figure 10 :
EMIT Data Model doesn’t comply SMM as it has been
design to suit the measurement process which is devoted to
one measurand and which produces a set of measurements.
However, this data model can be embedded into a SMM
model as follows:
Every measurements of a given measurement set are sliced
according to the different instruments that provide these
measurements: each Measurement slice are then mapped into
a SMM observation where the whenObserved attribute
corresponds to the measured one of the measurement set and
where the tool attribute corresponds to the identifier of the
corresponding instrument. Therefore, each measurement of
such measurement slices is mapped into a SMM observed
measure.</p>
      <p>Every measures related to these measurements are inserted
into a unique SMM library as a SMM direct measure.
Moreover, every measures related to an observation are
inserted into this SMM library as SMM collective measures
whose accumulator corresponds to the observation analysis.
Accumulator can range over several statistical functions such
as average, minimum, maximum, standardDeviation, etc.
Every collective measures own a measure relationship
(defined by a BaseNRelationship) between itself and the
direct measure of the measurement mapped measure. These
collective measures have to be synchronized between the
EMIT data model and that of SMM: it is required in order to
ensure the mapping compatibility between them. Finally,
each EMIT observation is mapped into a SMM collective
measurement which share its value attribute with the
socalled attribute of the EMIT observation. The measurand
attribute merely corresponds to the command attribute of the
measurand related to this observation throughout the
minimum or the maximum of the measurements data values.
measurement and measurement set. The Figure 12 : EMIT
Mapping Target Metamodel in SMM illustrates this mapping
from EMIT data model into that of SMM. The Figure 11 :
SMM Model shows the result of such a mapping rendering
with the SMM module in Modelio.</p>
      <p>IX.</p>
    </sec>
    <sec id="sec-6">
      <title>SERVICE ORIENTED ARCHITECTURE</title>
      <p>EMIT SCADA application is service-oriented: it provides
web services allowing third-party users or tools to manage
measurands, instruments and observations i.e. to create,
update or delete as well as to retrieve measurements, their
measures and their values. Available web services provided
by EMIT SCADA application are listed below:
 measurand/launch</p>
      <p>This web service accepts POST requests which
content corresponds to a measurand formatted as
a JSON object, launches a measurement process
for this measurand and inserts a measurement
set and its underlying measurements generated
by the measurement process into the database.</p>
      <p>Figure 12 : EMIT Mapping Target Metamodel in SMM
as a JSON object and removes this instrument
from the database.
 measurementset/list</p>
      <p>This web service accepts POST requests which
content corresponds to a measurand formatted as
a JSON object and provides the list of
measurements sets related to the given
measurand in JSON format.
 measurement/list</p>
      <p>This web service accepts POST requests which
content corresponds to a measurement set
formatted as a JSON object and provides the list
of measurements related to the given
measurement set in JSON format.
 measurement/measure</p>
      <p>This web service accepts POST requests which
content corresponds to a measurement formatted
as a JSON object and provides its measure in
JSON format.
 measurement/instrument</p>
      <p>This web service accepts POST requests which
content corresponds to a measurement formatted
as a JSON object and provides its instrument in
JSON format.
 measurement/environment</p>
      <p>This web service accepts POST requests which
content corresponds to a measurement formatted
as a JSON object and provides its environment
in JSON format.
 measurement/data</p>
      <p>This web service accepts POST requests which
content corresponds to a measurement formatted
as a JSON object and provides its data in JSON
format.
 observation/list</p>
      <p>This web service accepts POST requests which
content corresponds to a measurement formatted
as a JSON object and provides the list of the
observations related to this measurement in
JSON format.
 observation/create</p>
      <p>This web service accepts POST requests which
content corresponds to an observation formatted
as a JSON object and inserts this observation
into the database.
 observation/update</p>
      <p>This web service accepts POST requests which
content corresponds to an observation formatted
as a JSON object and modifies this observation
in the database.
 observation/delete</p>
      <p>This web service accepts POST requests which
content corresponds to an observation formatted
as a JSON object and removes this observation
from the database.</p>
      <p>As EMIT service-oriented architecture suggests, the single
entry point is the first web service measurand/list that
retrieves the measurands from the database. And the main
entity is the Measurement one as it is involved as the input
of 6 web services.</p>
      <p>The set of web services that manage the Instrument entity is
devoted for controlling the EMIT experimental design
configuration.</p>
      <p>The set of web services that manage the Observation entity
is dedicated to the interoperability with analysis algorithms.</p>
      <p>X.</p>
      <p>HANOÏ TOWER’S USE CASE</p>
      <p>
        Hanoï Tower has been investigated in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] in order to
compare the energy efficiency of several programming
languages. Different implementations of the Hanoï Tower
recursive algorithm has been compared (including C++,
Java, OCaml) and measured using the PowerAPI power
measurement instrument. Each implementation has been
monitored over some executions with the parameter for the
number of disks sets to 15. It led to the conclusion that
optimized C++ implementations with the Java one were the
ones that consumes the less energy overall.
      </p>
      <p>
        The experiment has been reproduced by EMIT in order
to prove its reliability. Six different implementations of
Hanoï Tower has been rewritten as the original ones were
not provided alongside [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. They consists in one Java
implementation, 3 C++ implementations (one with none
option, the other with the O2 option and the last with the O3
one), one OCaml implementation and one Python one. The
experiment was conducted on the same architecture, with the
same operating system. 50 measurement processes has been
performed by measurands or implementations. Power
measurements were achieved by the same instrument: the
Power_GUI observer which is the most reliable instrument
available on EMIT at that time. Every measurements have
been verified according to the algorithm detailed in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] that
makes possible to detect disturbances happening before,
during and after measurement processes.
      </p>
      <p>
        Results on that clean sets of measurements show that the
average energy consumption of C++ implementations is the
lowest of all implementations as well as [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] presented. In
fact, the C++ implementation either with the O2 or with the
O3 options has an average energy consumption of 125.4
nano-Joules. In the same way, the OCaml implementation
leads to an average energy consumption of 178.4
nanoJoules whereas that of Python has an average energy
consumption of 203.6 nano-Joules. These results could
match those of [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] as well as they applied a scale on their
results with PowerAPI. The surprising result concerns the
Java implementation which average energy consumption is
measured at 421.5 nano-Joules. Such a result seems in
contradiction with [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. However, the Java implementation
has been measured in launching the JVM each time which
leads to a constant added energy consumption (see [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]). This
convicts us to provide another Java implementation
embedded into a web service in order to avoid such an extra
consumption.
      </p>
      <p>XI.</p>
    </sec>
    <sec id="sec-7">
      <title>RELIABILITY OF POWER MEASUREMENT</title>
      <p>INSTRUMENTS</p>
      <p>EMIT reliability is mainly supported by the reliability of
its observers and by its power measurement one. In fact,
there is neither scientific nor technical bottleneck over the
observee or the SCADA application as the first tool merely
launches a command-line process and, as the second one
synchronizes observers, observee and store measurement
data. EMIT reliability lies in its measurements data provided
by its measurement instrument. Moreover, as EMIT aims at
being a software energy consumption monitoring tool, its
reliability depends that of its power measurement
instruments.</p>
      <p>
        Reliability of such instruments (composed of voltage
sensor and current sensors) is measured throughout their
results i.e. theirs measurements. The reliability of the power
measurements is defined by the measurement uncertainty.
Monitoring techniques for power measurements are
explained in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]: a standard design consists in a transducer
that sends a constant input signal which is monitored by
measurement instruments. The uncertainty is then defined as
the relative standard deviation over this constant.
      </p>
      <p>For instance, the Arduino_PO uncertainty is ±3.8%
which is close to its theoretical error margin. In fact, error
margin of its voltage sensor is ± 2% and that of its current
sensor ± is 1.5%; this then leads to a sensor error margin of
±3.5%.</p>
      <p>
        Experiments however reveal the influence of temperature
on the Arduino_PO reliability. In fact, external parameters
that can produce some noise are identified in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] such as the
variation of temperature, that of humidity as well as the
vibrations of the instrument itself. This should be taken into
account for further investigations on power measurement
reliability.
      </p>
      <p>XII. ENERGY FOOTPRINT OF COMUPTER ACTIVITY</p>
      <p>OBSERVERS</p>
      <p>Another feature required for ensuring some reliable and
fine-grained power measurements consists in the energy
footprint of computer activity observer. In fact, as such
observers are installed on monitored computers, their own
activity is monitored by power measurement observers. It is
then important to know how much power they require in
order to obtain accurate power measurements of measurands.</p>
      <p>
        The assessment protocol is the quite same as that of the
power measurement instruments. A constant-like signal is
monitored by the means of a computer at idle state i.e. no
process is running but those of the operating system. The
same power measurement observer monitors all
measurement processes in order to provide this computer
energy consumption and thus the computer activity observer
energy footprint. As 2 computer activity observer are yet
provided within EMIT, the first based-on the Sigar Java
library [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the second with the Oshi one [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], 4 use-cases
have to be distinguished. The first use-case consists in
monitoring the both observers, the second and the third in
monitoring only one of thm and the last in monitoring the
computer without any of these two observers. 50
measurement processes are performed per use-case.
      </p>
      <p>These experiment results show that measurements
without any computer activity observer running yield an
average power of 46.1W. This average power sensitively
raises to 72.7W with the Oshi-based computer activity
observer whereas it raises up to 75.5W both with the
Sigarbased observer and with these two observers running. These
results point out the huge difference between the computer
energy computer consumption with or without an observer.
Moreover, the difference between energy consumptions with
the first or the second observer is tiny. The surprising results
could mean that it will be difficult to draw out software
energy consumption from the computer overall energy
consumption while some computer activity are running. This
requires us to elaborate an analytic method to correlate
energy consumption and computer activity involved by a
software execution from two disjoints set of measurements
i.e. acquired during different measurement processes.</p>
    </sec>
    <sec id="sec-8">
      <title>XIII. CONCLUSION AND FUTURE WORK</title>
      <p>
        MEASURE will deliver tools to continuously compare
runtime production performance with energy consumption.
The results of MEASURE will contribute, during and
beyond the duration of the project, to both research and
education programs in Computer Science, and specifically
the Track in Software Engineering and Green IT. The IT
market in Europe will need computer scientists for at least
the coming ten years; that of software engineer is the top-1
profession worldwide since numerous years; competencies to
measure the quality of complex software will become
increasingly crucial for the software industry, and in all top
sectors where the role of software is crosscutting and
pervasive. Within the MEASURE platform the French
cluster will contribute green metrics for ensuring software
quality, such definitions will be done using the SMM
specification language implemented in MEASURE [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
    </sec>
    <sec id="sec-9">
      <title>ACKNOWLEDGMENT</title>
      <p>The research leading to these results was partially
funded by the ITEA3 project 14009, MEASURE.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] MEASURE project web site</article-title>
          , http://measure.softeam-rd.eu
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] MEASURE project description</article-title>
          , https://itea3.org/project/measure.html
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Structured</given-names>
            <surname>Metrics</surname>
          </string-name>
          Meta-model™
          <source>(SMM™) Version 1.1.1. April</source>
          <year>2016</year>
          , http://www.omg.org/spec/SMM/1.1.1.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>MEASURE</given-names>
            <surname>14009 Measuring Software</surname>
          </string-name>
          <string-name>
            <surname>Engineering</surname>
          </string-name>
          , Softeam.
          <source>ITEA Magazine June</source>
          <year>2015</year>
          , n° 21 pages
          <fpage>25</fpage>
          -
          <lpage>26</lpage>
          ,
          <year>Juin 2015</year>
          . Available at https://itea3.org/itea-magazine.html
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Rocheteau</surname>
          </string-name>
          , Jérôme and Gaillard, Virginie and Belhaj, Lamya,
          <source>How Green Are Java Best Coding Practices, SMARTGREENS 2014 - Proceedings of the 3rd International Conference on Smart Grids and Green IT Systems</source>
          , Barcelona, Spain pages
          <fpage>235</fpage>
          --
          <lpage>246</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Modelio</surname>
          </string-name>
          , https://forge.modelio.org/projects/smm
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Structured</given-names>
            <surname>Metrics</surname>
          </string-name>
          Meta-model, http://www.omg.org/spec/SMM/
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Noureddine</surname>
          </string-name>
          , Adel and Bourdon, Aurélien and Rouvoy, Romain and Seinturier,
          <string-name>
            <surname>Lionel</surname>
          </string-name>
          ,
          <source>A Preliminary Study of the Impact of Software Engineering on GreenIT - Proceedings of the First International Workshop on Green and Sustainable Software</source>
          ,
          <year>June 2012</year>
          , Zurich, Switzerland. pp.
          <fpage>21</fpage>
          -
          <lpage>27</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>[9] An Energy Consumption Model for An Embedded Java Virtual Machines</article-title>
          . S. Lafon,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Rubén</surname>
          </string-name>
          ,
          <article-title>Saborido and Venera, Arnaoudova and Giovanni, Beltrame and Foutse, Khomh and Giuliano, Antoniol, On the Impact of Sampling Frequency on Software Energy Measurements</article-title>
          , PeerJ PrePrints,
          <source>Tech. Rep.</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Rocheteau</surname>
          </string-name>
          , “
          <article-title>Energy Wasting Rate as a Metrics for Green Computing</article-title>
          and
          <string-name>
            <given-names>Static</given-names>
            <surname>Analysis</surname>
          </string-name>
          ,” in
          <source>MegSuS 2015 - Proceedings of 2nd International Workshop on Measurement and Metrics for Green and Sustainable Software</source>
          , Cracow, Poland,
          <string-name>
            <given-names>N.</given-names>
            <surname>Condori-Fernandez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Procaccianti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Calero</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Bagnato, Eds., oct
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Noureddine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Rouvoy</surname>
          </string-name>
          , and L. Seinturier, “
          <article-title>A review of energy measurement approaches,” ACM SIGOPS Operating Systems Review</article-title>
          ,vol.
          <volume>47</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>42</fpage>
          -
          <lpage>49</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Sigar</surname>
            <given-names>library</given-names>
          </string-name>
          , https://support.hyperic.com/display/SIGAR/Home.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Oshi</surname>
            <given-names>library</given-names>
          </string-name>
          , https://github.com/dblock/oshi.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <article-title>XChart library</article-title>
          , http://knowm.org/open-source/xchart.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>