quels défis pour le développement durable des...

53
Quels défis pour le développement durable des logiciels ? @RomainROUVOY

Upload: others

Post on 23-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Quels défis pour le développement durable

des logiciels ?

@RomainROUVOY

Page 2: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

ENVIRONNEMENTAL

Page 3: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 4: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 5: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

= 1 data center OVH en 2012

Page 6: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 7: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 8: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Qarnot computing

Page 9: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Pour arrêter ce keynote, envoyez “STOP” au 72 500 (65€ + Prix SMS)

Page 10: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 11: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Quel peut être l’impactdu Génie Logiciel ??

Page 12: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Tesla

Page 13: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 14: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

M. Fabrice Brun (député Ardèche) attire l'attention de M. le secrétaire d'État

auprès du ministre de l'économie et des finances et du ministre de l'action et

des comptes publics, chargé du numérique, sur le sujet de la dépense en

énergie et de la production de CO2 générées par l'utilisation toujours

croissante de moyens informatiques en réseau. Les usages de plateformes

dématérialisées de streaming audio et vidéo et de jeux vidéo en ligne ont pour

conséquence une hausse exponentielle de la consommation d'énergie.

Avec l'arrivée de nouvelles technologies telles que la 4K, la 8K et la 5G ainsi

que l'usage des écrans HD, cette tendance ne fera que s'accélérer. Il est donc

nécessaire de faire évoluer les pratiques des serveurs de stockage afin de

favoriser une utilisation plus durable des moyens électriques et de

permettre une politique raisonnée des besoins en bande passante réduisant la

facture environnementale des éditeurs de logiciels utilisés par les plateformes

précitées. C'est pourquoi il lui demande de bien vouloir préciser la position du

Gouvernement sur l'obligation pour les éditeurs de logiciels de consacrer

un budget déterminé de recherche et développement afin de pratiquer

une écriture plus vertueuse en terme environnemental du code

informatique. Il souhaiterait savoir si le Gouvernement serait prêt à mobiliser

ses partenaires afin d'intégrer ces questions au programme de la

prochaine COP25 qui se tiendra au Chili en novembre 2019.

Question soumise le 21 mai 2019 (sans réponse)

Page 15: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

[…] clients “care first and foremost

about speed of development, and

secondly about reasonable quality and

performance.”

These results show that these

programmers lacked knowledge of

how to accurately measure software

energy consumption.

“It’s more often the hardware rather

than the software that we are in-

terested in when we talk about en-

ergy consumption.”

Page 16: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Green computing 101

Page 17: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

0

5

10

15

20

25

30

35

14:00 14:05 14:10 14:15 14:20 14:25 15:25 16:25 17:25

Energie Vs. Puissance

Puissance (W)

Energie (J / Wh)

Page 18: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

0

5

10

15

20

25

30

35

14:00 14:05 14:10 14:15 14:20 14:25 14:30 14:35 14:40

Séquentiel

0

10

20

30

40

50

60

14:00 14:05 14:10 14:15 14:20 14:25

Parallèle

Page 19: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

0

5

10

15

20

25

30

35

14:00 14:05 14:10 14:15 14:20 14:25 15:25 16:25 17:25

Statique Vs. Dynamique

Dynamique

Statique (idle)

Page 20: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 21: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Quelquescontributions

Page 22: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

http://powerapi.org

These results show that these programmers

lacked knowledge of how to accurately measure

software energy consumption.

Page 23: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 24: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 25: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

PowerAPI

Page 26: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

PowerAPI

Page 27: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

WattsKit

Page 28: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

WattsKit

Page 29: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

74 CHAPTER 7. SAAS-LEVEL POWER ESTIMATION

dynamic voltage/ frequency scaling, simultaneous multi-threading, or dynamic overclocking

features, as illustrated in Figure 7.6. Hence, when pinning a single-core VM on a physical

core of the host , the power consumpt ion of a process running in the VM is proport ional to

the CPU ut ilizat ion of the VM on the host .

To est imate the power consumpt ion of an applicat ion running in the VM Pvm (app),

we need therefore to know the consumpt ion of the VM process PCP U (vm) on the host

machine, as well as the CPU ut ilizat ion of the applicat ion Uvm (app) relat ively to the other

applicat ions running in the VM Uvm (total):

Pvm (app) = Pcpu(f , uc1vm ...ucN

vm ) ·Uvm (app)

Uvm (total). (7.1)

Figure 7.6: Intel i3 2120 and Intel Xeon W3520 VM topologies.

Host

Xeon 3520

Socket P#0

L3 (8192 KB)

L2 (256 KB)

Core P#0

PU P#0

PU P#4

L1 (64 KB)

L2 (256 KB)

L1 (64 KB)

Core P#1

PU P#1

PU P#5

L2 (256 KB)

Core P#2

PU P#2

PU P#6

L1 (64 KB)

L2 (256 KB)

Core P#3

PU P#3

PU P#7

L1 (64 KB)

Host

i3 2120

Socket P#0

L3 (3072 KB)

L2 (256 KB)

Core P#0

PU P#0

PU P#2

L1 (64 KB)

L2 (256 KB)

L1 (64 KB)

Core P#1

PU P#1

PU P#3VM

Intel

Socket P#0

L2 (4096 KB)

Core P#0

PU P#0

L1 (32 KB)

VM

Intel

Socket P#0

L2 (4096 KB)

Core P#0

PU P#0

L1 (32 KB)

Socket P#1

L2 (4096 KB)

Core P#0

PU P#0

L1 (32 KB)

7.1.4 Experimental Setup

The experimental setup consists of 2 types of servers (i3 and Xeon) with different hardware

characterist ics, as shown in Appendix A. For the dist ributed setups, we use 3 ident ical

servers of type i3.

We rely on kvm [Kiv+ 07] for virtualizat ion. kvm turns the Linux kernel into a hypervisor

without need of addit ional software. In addit ion to the typical process operat ing modes

(kernel space, user space) of Linux, kvm adds a guest mode for programs running in a

virtualized environment . This feature helps for measuring the CPU time used by a virtual

process.

As kvm does not perform any emulat ion to operat ing systems on various architectures,

we combine it with QEMU5 to emulate different CPU and device types. With kvm/ QEMU,

the VM runs as a normal user process and is hence controlled by the Linux scheduler. By

default , the scheduler t ries to keep a process on the same CPUs, notably to maximize

cache efficiency. We run kvm/ QEMU with an off-the-shelf Ubunt u 13.11 on both server

types (i3 and Xeon).

We want to invest igate in our experiments the accuracy and applicability of Bit Wat t s

at different scales. Therefore, we first consider the execut ion of benchmarks on a single

host , with an increasing number of concurrent ly running VMs, for observing the impact of

VM scheduling on the host. As a first benchmark, we use PARSEC for our experiments,

as it is mult i-threaded and CPU-intensive. PARSEC contains a variety of applicat ions

5http://www.qemu.org

BitWatts

Page 30: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

BitWatts

Page 31: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

En résumé

Software-Defined Power-meter

• Aucun matériel requis (fonctionne avec RAPL)

• Mesure à l’echelle de l’app/conteneur

• Utilisation des c-groups (Docker, K8S, etc.)

• Estimation en temps-réel de la consommation

• Native : CPU & DRAM

• Calibration : Disk & Network

• Environnements distribués et virtualisés

• E.g., Cloud privé (pas AWS)

• Surcoût limité (~1–2W par nœud)

• OSS: http://powerapi.org

Page 32: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Et maintenant ??

Page 33: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 34: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

L. A. Barroso, U. Hölzle: The Case for Energy-Proportional Computing. IEEE Computer 40(12) 2007 CloudGC

Page 35: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 36: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Running Suspended

Recycled

[suspend]

[IP requested]

[resume][recycle]

[recycle]

Deleted[delete]

[delete]

[delete]

[resume]

Fig. 3. Lifecycle of a VM instance in CLOUDGC.

B. Detecting Idle VM Instances

CLOUDGC builds on the assumption that not all the VM

instances are continuously used in a Cloud infrastructure.

Therefore, as part of the VM recycling process, CLOUDGC

aims at detecting VM instances that are considered as idle.

Idle VM instances are either VM instances that have been

explicitly suspended by the end-user (e.g., a VM in the paused

or interrupted state) or VM instances that have not been active

for a long period of time. CLOUDGC distinguishes between

explicit and implicit idle VM instances: the former is not

intended to be used by the end-user on a short-term basis,

while the latter might be triggered at any time. Nevertheless,

inspired by generational garbage collectors [22], we assume

that the longer a VM has been flagged as inactive in the past,

the longer it will still be in the future.

CLOUDGC therefore maintains two queues of VM instances:

the explicit queue and the implicit queue. To detect and track

idle VM instances, CLOUDGC periodically synchronizes the

list of deployed VM instances from the IaaS instance manager.

The list of suspended VM instances, ordered by interruption

date (oldest first), is used to generate the explicit queue. Then,

from the list of active VM instances, CLOUDGC queries the

IaaS monitoring service to filter out the instances whose CPU

activity has not exceeded a given threshold for a given duration

(the activity threshold and the duration are two configuration

parameters of CLOUDGC we use to tune the level of garbage

collection). The items from the implicit queue that are not in

this list are first removed, before inserting the items of the

list that are not in the queue. The output of this first phase

therefore delivers two lists of idle VM instances, ordered by

inactivity durations.

C. Recycling Idle VM Instances

As previously mentioned, unlike objects in garbage collected

languages, recycled VM instances may be recovered upon

request. Therefore, recycling VM instances does not only

consist in releasing the Cloud resources that are associated to

each of the instances, but it also requires to save the current

state of the instances in order to be able to recover them in a

similar state, if necessary. In CLOUDGC, the state of idle VM

instances is saved as a snapshot in the IaaS storage service.

If a snapshot of this VM is already stored in the IaaS, it is

automatically overridden by CLOUDGC if some activity has

been detected since the last version. CLOUDGC automatically

builds a snapshot of explicit idle instances when they are

suspended. Given that the activity of implicit idle instances is

not frozen, CLOUDGC can only build a snapshot of an implicit

idle instance on-demand—i.e., when the VM instances requires

to be recycled.

When CLOUDGC is requested to recycle VM instances, it

starts by recycling the explicit idle instances, before proceeding

with the implicit idle instances, if needed. In both cases,

CLOUDGC uses the IaaS instance manager to rebind the IP

address of the idle VM instance to a ghost instance, which acts

as a proxy to recover the VM upon request from a third party.

Upon completion of the VM snapshot, the instance is deleted

from the IaaS instance manager, thus effectively releasing

the associated resources. While this process can be applied to

recycle all the detected idle instances, CLOUDGC takes as input

the amount of resources to be released, based on the number

and the flavors of the new VM instances to be provisioned.

Thus, CLOUDGC only recycles the necessary idle instances to

allow the IaaS to provision the requested VM instances. If the

recycling process fails to release the requested resources, the

Cloud infrastructure can either reject the incoming provisioning

request, or trigger an elasticity service to provision some

additional compute nodes, thus increasing the capacity of the

IaaS.

D. Recovering Recycled VM Instances

CLOUDGC recycles idle VM instances to ease the de-

ployment of new VM instances. Nevertheless, recycled VM

instances can be triggered at any time, e.g. by requesting a

resource or a service of the ghost instance. In such a case,

CLOUDGC should be able to recover the associated instance in

the same state and configuration it was before being recycled,

before forwarding the incoming request. As part of this

recovery process, one can note that provisioning a recycled VM

instance may require CLOUDGC to recycle idle VM instances.

Therefore, the recovery process of CLOUDGC follows the

same workflow as for provisioning a new VM instance, but

loading automatically the snapshot from OPENSTACK Image

Service (Glance) and restoring the initial VM configuration

(e.g., rebinding the floating IP address).

Both recycling idle instances and recovering recycled in-

stances are not instant processes, taking from seconds to

minutes depending on the amount of resources to be recycled

and recovered. To prevent CLOUDGC from recycling VM

instances that are considered as critical (e.g., expected to react

as quickly as possible to incoming requests), a VM can be

pinned on the Cloud. Pinned VM instances are therefore made

invisible from the detection and recycling processes, no matter

their activity or their current state.

IV. IMPLEMENTATION DETAILS

This section dives into the details of the integration of

CLOUDGC into OPENSTACK. We considered OPENSTACK as

it is the de facto OSS standard for deploying a IaaS solution

NovaSwift

CeilometerGlance

monitors

monitors

VM

provisions

provides image for

recycles

CloudGC

store images in

Fig. 4. Integration of CLOUDGC in OPENSTACK.

in a private Cloud, which is representative of the environments

we target with CLOUDGC.

A. CloudGC Middleware Overview

Figure 4 depicts our integration of CLOUDGC in the

OPENSTACK IaaS. Among all the services deployed by

OPENSTACK6, CLOUDGC interacts more specifically with

Nova, Ceilometer, Glance, and Swift. CLOUDGC builds on

the standard APIs provided by each of these services to support

the VM recycling process. In particular, CLOUDGC uses Nova

to recycle idle VM instances and to recover recycled VM

instances (and their configuration), while Glance and Swift

provide the necessary support to automatically save and restore

the snapshots and configurations of recycled VMs, respectively.

Finally, the monitoring capability of Ceilometer is used by

CLOUDGC to analyze the activity of deployed VM instances.

Our solution is implemented in Python, thus benefiting from

the client libraries made available for each of these services.

By adopting this service-oriented architecture, CLOUDGC

therefore integrates seamlessly with OPENSTACK and the

implementation of the recycling process does not impact the

API of existing services nor the GUI provided by Horizon,

the administration console of OPENSTACK.

The architecture of CLOUDGC is structured in 3

components—Monitoring, Recycling and Recovery—which

we detail in the following sections.

B. Monitoring Component

Themonitoring component isan activecomponent defined by

CLOUDGC to periodically query Nova for the list of deployed

VM instances and to update two shared priority queues—i.e.,

the most idle VMs are enqueued first. Algorithm 1 summarizes

the behavior that is periodically executed by this monitoring

component (the period can be configured by CLOUDGC). As

mentioned in Section III-B, CLOUDGC distinguishes between

explicit and implicit idle VM instances in order to recycle

explicit VM instances in priority. The second level of priority

in CLOUDGC consists in recycling first the deployed VM

instances that have been idle for a while, thus ordering the

implicit queue by idleness. Finally, VM instances that are

pinned are ignored by the monitoring component and therefore

not considered as part of the recycling process.

6https://www.openstack.org/software

Algor ithm 1 Monitoring behavior of CLOUDGC

1: global Expl ici tQueue

2: global I mpl ici tQueue

3: procedure MONITORING(dur ation)

4: CLEAR(Expl ici tQueue)

5: vms LIST(Nova, UNPI NNED)

6: for vm 2 FILTER(vms, PAUSED| I NTERRUPTED)

do

7: INSERT(Expl ici tQueue, vm)

8: SNAPSHOT(Glance, vm)

9: end for

10: active FILTER(vms, RUNNI NG)

11: for idle 2 I mpl i ci tQueue do

12: if not CONTAINS(active, idle) then

13: REMOVE(I mpl ici tQueue, idle)

14: end if

15: end for

16: for vm 2 r unning do

17: if IDLE(Ceilometer, active) > dur ation then

18: if not CONTAINS(I mpl i ci tQueue, vm) then

19: INSERT(I mpl i ci tQueue, vm)

20: end if

21: end if

22: end for

23: end procedure

C. Recycling Component

The recycling component is a passive component introduced

by CLOUDGC and triggered by Nova when it fails to

satisfy an incoming provisioning request. In that case, Nova

requests the recycling component to recycle some idle VM

instances in order to free a sufficient volume of resources to

satisfy the provisioning request. Algorithm 2 reports on the

implementation of this component, illustrating the recycling

priorities we introduced in CLOUDGC. If CLOUDGC succeeds

to recycle a sufficient amount of resources, Nova can retry to

provision the new VM instances. In case of failure, Nova can

reject the request or trigger some horizontal elasticity support

of OPENSTACK, which is out of the scope of this paper. To

reduce the recycling delay, the STORE, REBIND, and DELETE

operations save the instance configurations, rebind the VM

instances on the ghost instance, and delete all the selected

idle VMs at once. Although the operation SNAPSHOT appears

in Algorithm 2, this operation is automatically called by the

operation PAUSE as it is the case for explicit idle VM instances.

D. Recovery Component

The recovery component is in charge of handling incoming

requests on recycled VM instances. To do so, CLOUDGC binds

the floating IP of an idle VM instance to a ghost instance as

part of the recycling process (cf. Algorithm 2), so that the

recycled VM instances are still perceived as available from

outside the IaaS. Therefore, upon receiving an incoming request,

the ghost instance triggers the recovery function described

in Algorithm 3 and then forwards the incoming request—if

Page 37: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 38: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 39: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

GenPack

Page 40: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

GenPack

Page 41: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

GenPack

Page 42: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Peut-on étudier la consommation du code?4.4. Experimentations

util.resource.JarFileResou

rce!

41%!

util.BlockingArrayQueue!

30%!

io.SelectorManager

$ManagedSelector!

10%!

io.ChannelEndPoint!

7%!

util.resource.FileResource!

4%!

server.ServerConnector!

4%!

Others!

4%!

Energy percentage of Jetty classes!

Figure 4.13: Energy consumption in percentage of the 6 most energy consuming classes of

Jetty in our experiment.

• xalan: transforms XML documents into HTML.

Wereport theenergy consumption of methods of thebenchmark tests in Figure4.14. The

results show different patterns of the energy distribution between methods of each bench-

mark, and are explained by the nature of each benchmark. The pmd, Xalan and Avrora

benchmarks outline strong concentration of the energy consumption in one or few methods.

In Xalan, org.apache.xalan.templates.ElemLiteralResult.execute method consumes nearly

23% of the energy, twice or three times more then the next most consuming methods. The

same pattern is happening with pmd and Avrora benchmarks. These three benchmarks call

a small number of methods frequently and for longer periods of time, thus accumulating

energy consumption in few methods.

On the other hand, Batik and h2 benchmarks show an even distribution of energy be-

tween methods, whereenergy consumption ismoreevenly distributed between the top most

consuming methods. These two benchmarks consist in generating SVG images and execut-

ing database transactions, therefore calling multiple methods for smaller periods of time.

89

Page 43: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

8.3. STUDY THE METHODS ENERGY DISTRIBUTION OF REDIS 95

Figure 8.7: Energy comparison of methods between redis (2.2) and redis (3.2).

codEnergy

Energy comparison

Compare

So�ware (1)

Run (1)

So�ware (2)

Run (2)

:42 :43 :44 :45 :46 :47 :48 :49 :50 :51 :52

:42 :43 :44 :45 :46 :47 :48 :49 :50 :51 :52

aeProcessEvents (1)

readQueryFromClient (1 - 2)

sdscatlen (1 - 2)

sdsnewlen (1 - 2)

sendReplyToClient (1)

flushAppendOnlyFile (1 - 2)

aofChildWriteDi�Data (2)

aofRewriteBu�erAppend (2)

je_arena_ralloc (2)

je_huge_ralloc (2)

je_pages_purge (2)

aofRewriteBu�erWrite (2)

writeToClient (2)

while the most recent one in 2016. A lot of patches have been proposed and merged by the

community for adding features and improving performances (more than 4,000 commits).

We therefore decide in this sect ion to compare them for finding out energy improvements

or deteriorat ions.

To benchmark redis, the developers already include redis-benchmark as the official

benchmarking tool. The redis-benchmark tool simulates N clients configured to send

M requests. Each client simulates chosen exist ing commands (PING, SET, INCR, LPUSH,

LRANGE, etc.) and therefore loads the server with realist ic scenarios.

For this experiment, we useredis-benchmark to create 50 clients that will send 10, 000

commands each. Each redis instance are configured with the default parameters and we

force each instance to flush data on disk every second (described as the best compromise

between speed and data safety in the documentat ion).

The energy comparison of the version 2.2 and 3.2 is detailed in Figure 8.7. While a

green gradient depicts a posit ive energy impact—i.e., the old version (1) consumes much

power than the new one (2), the red one show an energy leakage. The darker the color,

the higher the impact. Thanks to Javascript , the horizon charts are interact ive and power

consumpt ions are dynamically displayed while crossing the t ime series over the t ime. For

clarity reasons, some methods have been removed in the charts.

As expected, one can observe a lot of energy variat ions, making the comparison

difficult , but several insights can nevertheless be extracted. First of all, it confirms that

the redis server has been clearly evolved since the first release. Indeed, several methods

were not implemented in the version 2.2 (je_arena_ralloc, je_huge_ralloc, je_pages_purge,

aofChildWriteDiffData, writeToClient, etc.), while the others have not been sampled by

our approach (sendReplyToClient) because of different execut ion models. Secondly, we

can see major energy improvements over versions in readQueryFromClient, sdscatlen, and

flushAppendOnlyFile methods. We can make the assumpt ion of a bet ter management of

requests and replies, and I/ O operat ions. However, while the energy efficiency of sdscatlen

were improved (¥ 12 W on average), the energy efficiency is worse for the sdsnewlen

(¥ 24 W on average), thus mit igat ing these improvements.

Licence 3 MIAGE– Université de Lille – Faculté des Sciences et Technologies

Adrien Deblock 31

Annexe 5 : Page intégrale du plugin sonar

Page 44: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 45: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

R. Pereira et al. SLE 2017 Energy efficiency across programming languages: how do energy, time, and memory relate?

“Only four languages

maintain the same

energy and time rank

(OCaml, Haskel, Racket,

and Python), while the

remainder are completely

shuffled.”

when manipulating strings

with regular expression,

three of the

five most energy-efficient

languages turn out to be

interpreted languages

(TypeScript, JavaScript,

and PHP),

“Although the most

energy efficient language

in each benchmark is

almost always the fastest

one, the fact is that there

is no language which is

consistently better than

the others,”

Page 46: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 47: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Mon talk en 180 secondes

• Explosion de la consommation énergétique des TIC• Multiplication des usages des services numériques

• Matériel améliore son efficience en continu• Bonne monture ne fait pas bon cavalier

• Logiciels sont plus que jamais prépondérants• Everything is software-defined

• Énergie ≈ performance (temps)• Relationship: it’s complicated

• Nécessité de travailler sur toutes les couches• Chaque couche = logiciel optimisable

Page 48: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Et après ??

Page 49: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Un thème, des milliers de sujets

• Quel est le PUE d’un programme ?• Peut-on quantifier le gâchis de ressources en cours d’execution?

• Comment tirer partie de l’hétérogénité matérielle ?• Comment exploiter les composants tiers (GPU, FPGA) du cloud ?

• Comment mieux conseiller les développeurs ?• Comment enricher l’analyse statique à partir d’analyses

dynamiques ?

• Quid de l’impact de la maintenance logicielle ?• Quelle énergie (globale) est dépensée pour corriger un bug ?

• Quid d’autres environnements d’exécution ?• Android / iOS, IoT, ROS…

• …

Page 50: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

Rejoignez la G-Team

Lionel Seinturier Adel Noureddine Maxime Colmant Guillaume Fieni Chakib Belgaid

Zakaria Ournani Aurélien Bourdon Loïc Huertas Arthur D’Azémar Jordan Bouchoucha

Pascal Felber, Bo Zhang, Aurélien Havet, Mascha Kurpicz, Valerio Schiavoni, Anita Sobe, Christof Fetzer,Yahya Al-Dhuraibi, Fawaz Paraiso, Georges-Aaron Randrianaina, Antoine Huyghes…

Page 51: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading

1. The next 700 CPU power models. M. Colmant, R.Rouvoy, M. Kurpicz, A.

Sobe, P. Felber, L. Seinturier: Journal of Systems and Software 144: 382-

396 (2018)

2. WattsKit: Software-Defined Power Monitoring of Distributed Systems.

M. Colmant, P. Felber, R. Rouvoy, L. Seinturier: CCGrid’17: 514-523

3. GENPACK: A Generational Scheduler for Cloud Data Centers. A. Havet,

A. Schiavoni, P. Felber, M. Colmant, R. Rouvoy, C. Fetzer: IC2E’17: 95-104

4. CLOUDGC: Recycling Idle Virtual Machines in the Cloud. B. Zhang,

Y. Al-Dhuraibi, R. Rouvoy, F. Paraiso, L. Seinturier: IC2E’17: 105-115

5. Process-level power estimation in VM-based systems. M. Colmant,

M. Kurpicz, P. Felber, L. Huertas, R. Rouvoy, A. Sobe: EuroSys’15: 1-14

6. Unit testing of energy consumption of software libraries.

A. Noureddine, R. Rouvoy, L. Seinturier: SAC’14: 1200-1205

7. A preliminary study of the impact of software engineering on GreenIT.

A. Noureddine, A. Bourdon, R. Rouvoy, L. Seinturier: GREENS’12: 21-27

8. Runtime monitoring of software energy hotspots. A. Noureddine,

A. Bourdon, R. Rouvoy, L. Seinturier: ASE’12: 160-169

Page 52: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading
Page 53: Quels défis pour le développement durable des logicielsgdr-gpl.cnrs.fr/sites/default/files/documentsGPL/... · dynamic voltage/fr e quency sc aling , simultane ous multi-thr e ading