Green Software Lab

New Paper Accepted @ GREENS’18

Helping developers write energy efficient Haskell through a data-structure evaluation – Gilberto Melfe, Alcides Fonseca, João Paulo Fernandes

How a program is written has implications in the energy consumption of the running system, with economical and environmental consequences.

In this context, understanding the energy consumption of operations on data-structures is crucial when optimizing software to execute under power constricted environments. Existing studies have not focused on the different components of energy consumption that processors expose, rather considering the global consumption.

To understand the relationship between CPU and memory energy consumptions with execution time, we instrument a microbenchmark suite to collect such values, and we analyze the results.

Our benchmark suite is comprised of 16 implementations of functional sequences, collections and associative collections while measuring detailed energy and time metrics. We further investigate the energy consumption impact of using different compilation optimizations.

We have concluded that energy consumption is directly proportional to execution time. Additionally, DRAM and Package energy consumptions are directly proportional, with the DRAM representing between 15 and 31% of the total energy consumption. Finally, we also conclude that optimizations can have both a positive or a negative impact on energy consumption.

 

 

GSL members win Best Paper Award @ SBLP’17

The article “Towards a Green Ranking for Programming Languages”, authored by HASLab/INESC TEC & UMinho researchers Marco Couto, Rui Pereira, Francisco Ribeiro, Rui Rua and João Saraiva, was awarded the Best Paper Award at SBLP 2017.

In this work, the researchers analysed and compared the energy efficiency of various programming languages. More specifically, this award-winning research used a set of benchmarking programs and problems in 10 different programming languages in order to compare the energy efficiency of each. In a second phase, the execution time data of the programs was collected, in order to try to understand the relation between energy consumption and execution time.

Finally, while the obtained results showed that the C language is, unsurprisingly, the most efficient language in terms of both energy consumption and performance, the study also showed languages which are slower than others yet consume less energy. It should be noted that execution time and energy consumption vary in different and not directly related ways, since some languages are more efficient in some cases and less in others. Therefore, this study will allow not only the optimisation of energy consumption, but also the optimisation of the execution time of each program.

The 21st Brazilian Symposium on Programming Languages (SBLP 2017) took place on the 21st and 22nd of September, in Fortaleza, Brazil, and is one of the conferences that compose the Brazilian Conference on Software (CBSOFT).

Rui Pereira talk @ InfoBlender, Universidade do Minho, November 18th

Please find below the detailed program.
Date & Location: Wednesday, November 18th, 2017, at DI, Gualtar campus, Braga.
Coffee Session13h30 -14h, Sala de Estar, 4th Floor.
Talk Session: 14h -14h30, Auditório A2, first floor.
Speakers. Rui Pereira, HASLabINESC TEC & Minho University.
Title. Energy Efficiency Across Programming Languages
Abstract. This talk presents a study of the runtime, memory usage and energy consumption of twenty seven well-known software languages. We monitor the performance of such languages using ten different programming problems, expressed in each of the languages. Our results show interesting findings, such as how slower/faster languages consuming less/more energy, and how memory usage influences energy consumption. We also show how to use our results to provide software engineers support to decide which language to use when energy efficiency, time, or memory is a concern.

New Paper Accepted @ SLE’17

Energy Efficiency across Programming Languages: How does energy, time, and memory relate? – Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, João Saraiva

This paper presents a study of the runtime, memory usage and energy consumption of twenty seven well-known software languages. We monitor the performance of such languages using ten different programming problems, expressed in each of the languages. Our results show interesting findings, such as, slower/faster languages consuming less/more energy, and how memory usage influences energy consumption. We show how to use our results to provide software engineers support to decide which language to use when
energy efficiency is a concern.

New Paper Accepted @ SBLP’17

Towards a Green Ranking for Programming Languages – Marco Couto, Rui Pereira, Francisco Ribeiro, Rui Rua, João Saraiva

While in the past the primary goal to optimize software was the run time optimization, nowadays there is a growing awareness of the need to reduce energy consumption. Additionally, a growing number of developers wish to become more energy-aware when programming and feel a lack of tools and the knowledge to do so.
In this paper we define a ranking of energy efficiency in programming languages. We consider a set of computing problems implemented in ten well-known programming languages, and monitored the energy consumed when executing each langauge. Our preliminary results show that although the fastest languages tend to be the lowest consuming ones, there are other interesting cases where slower languages are more energy efficient than faster ones.

Rui Pereira receives silver medal in ACM Student Research Competition at ICSE 2017

Rui Pereira, a doctoral student of HASLab, reached the second place in the ACM Student Research Competition at ICSE 2017, with the article “Locating energy hotspots in source code”.
The article entitled “Locating energy hotspots in source code”, which was initially submitted in the form of a long abstract paper, was presented in a second evaluation phase in poster form at the 39th International Conference on Software Engineering, one of the most important conferences in the field of Software Engineering, and it was carried out under the project GSL – Green Software Laboratory, a national project financed by FCT.

In this evaluation phase, along with nine other candidates, Rui Pereira made a small public presentation and exhibition of the poster during a special session of the same conference, before a jury composed of five ICSE and ACM members. Only four researchers advanced to the final phase of the competition.

In the third and final phase, with a research talk at ICSE, Rui Pereira achieved the second place in the competition, losing the first place to a researcher from Carnegie Mellon University, and prior Apple researcher. In this phase, three were awarded a medal.

The next round will be in the Grand Final of the ACM Research Competition, where all medalists participate in the ACM Student Research Competition. This round will be during the ACM Awards Banquet an event where, as a general rule, the Turing Award is presented, that is, a prize awarded by ACM to a person who contributed significantly to the area of Computing.

It is important to mention that this competition, sponsored by Microsoft, offers a unique forum for undergraduate and graduate students to present their original research before a panel of judges and attendees at well-known ACM-sponsored and co-sponsored conferences.

This edition of ICSE was held in Buenos Aires, Argentina, from May 20 to 28 and has an annual membership of approximately 1600 participants.

New paper accepted @ SPLC’17

 

Products go Green: Worst-Case Energy Consumption in Software Product Lines -Marco Couto, Rui Pereira, Paulo Borba, Jácome Cunha, João Paulo Fernandes and João Saraiva

The optimization of software to be (more) energy efficient is becoming a major concern for the software industry. Although several techniques have been presented to measure energy consumption for software, none has addressed software product lines (SPLs). Thus, to measure energy consumption of a SPL, the products must be generated and measured individually, which is too costly.

In this paper, we present a technique and a prototype tool to statically estimate the worst case energy consumption for SPL. The goal is to provide software developers with techniques and tools to reason about the energy consumption of all products in a line, without having to produce, run and measure the energy in every combination.

Our technique combines classic static program analysis techniques and worst case execution time prediction with energy consumption analysis. This technique analyses all products in a feature-sensitive manner, that is, a feature used in several products is analyzed only once, while the energy consumption is estimated once per product.

We implemented our technique in a tool called Serapis. We did a preliminary evaluation using a realistic product line for image processing implemented in C. Our experiments considered 7 products from such line and our initial results show that the tool was able to estimate the worst-case energy consumption with a mean error percentage of 9.4% and standard deviation of 6.2% when compared with the energy measured when running the products.

Marco Couto talk @ InfoBlender, Universidade do Minho, May 10th

Please find below the detailed program.
Date & Location: Wednesday, May 10th, 2017, at DI, Gualtar campus, Braga.
Coffee Session: 13h30 -14h, Sala de Estar, 4th Floor.
Talk Session: 14h -14h30, Auditório A2, firstfloor.
Speakers. Marco Couto, HASLabINESC TEC & Minho University.
Title. Static Energy Consumption Analysis in Software: The Worst-Case Scenario
Abstract. Energy consumption is becoming an evident concern to software developers. While programming languages provide several compiler optimizations, memory profiler tools, benchmark and time execution monitoring frameworks, there are no equivalent tools/frameworks to profile/optimize energy consumption.This is even more notorious due to the propagation of mobile devices. Such propagation of devices is also influencing software development: a software system is now developed as a set of similar products sharing common features. This talk will focus on explaining how energy consumption analysis can be performed in software in a very challenging and promising manner: statically, without execution. Moreover, a case study will be used to better explain how to achieve this, while showing the speaker’s ongoing work in the area.
Pages:12345