Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
About
Download Photo HD

About

I am a a Computer Science Postdoc working on reducing, analyzing, and optimizing the energy consumption levels for software, by using source code analysis and manipulation techniques. I was also awarded an FCT grant for my PhD research. I am one of the founding members of the Green Software for Space Control Mission (GreenSSCM) project, the Software Repositories for Green Computing FLAD/NSF project, and the Green Software Lab: Green Computing as an Engineering Discipline (GSL) project.

I concluded my PhD at the University of Minho, under the MAP-i doctoral programme with the thesis titled "Energyware Engineering: Techniques and Tools for Green Software Development" under the Green Software Lab (GSL) project . I received my MSc degree in Informatics Engineering in 2013, with my thesis "Querying for Model-Driven Spreadsheets" under the SpreadSheets as a Programming Paradigm (SSaaPP) project.

Currently, my research interests focus on green computing, human-computer interaction, and source code analysis and manipulation.

Interest
Topics
Details

Details

  • Name

    Rui Alexandre Pereira
  • Cluster

    Computer Science
  • Role

    Assistant Researcher
  • Since

    01st July 2013
002
Publications

2021

Ranking programming languages by energy efficiency

Authors
Pereira, R; Couto, M; Ribeiro, F; Rua, R; Cunha, J; Fernandes, JP; Saraiva, J;

Publication
Science of Computer Programming

Abstract
This paper compares a large set of programming languages regarding their efficiency, including from an energetic point-of-view. Indeed, we seek to establish and analyze different rankings for programming languages based on their energy efficiency. The goal of being able to rank programming languages based on their energy efficiency is both recent, and certainly deserves further studies. We have taken rigorous and strict solutions to 10 well defined programming problems, expressed in (up to) 27 programming languages, from the well known Computer Language Benchmark Game repository. This repository aims to compare programming languages based on a strict set of implementation rules and configurations for each benchmarking problem. We have also built a framework to automatically, and systematically, run, measure and compare the energy, time, and memory efficiency of such solutions. Ultimately, it is based on such comparisons that we propose a series of efficiency rankings, based on single and multiple criteria. Our results show interesting findings, such as how slower/faster languages can consume less/more energy, and how memory usage influences energy consumption. We also present a simple way to use our results to provide software engineers and practitioners support in deciding which language to use when energy efficiency is a concern. In addition, we further validate our results and rankings against implementations from a chrestomathy program repository, Rosetta Code., by reproducing our methodology and benchmarking system. This allows us to understand how the results and conclusions from our rigorously and well defined benchmarked programs compare to those based on more representative and real-world implementations. Indeed our results show that the rankings do not change apart from one programming language. © 2021 Elsevier B.V.

2020

SPELLing out energy leaks: Aiding developers locate energy inefficient code

Authors
Pereira, R; Carcao, T; Couto, M; Cunha, J; Fernandes, JP; Saraiva, J;

Publication
Journal of Systems and Software

Abstract
Although hardware is generally seen as the main culprit for a computer's energy usage, software too has a tremendous impact on the energy spent. Unfortunately, there is still not enough support for software developers so they can make their code more energy-aware. This paper proposes a technique to detect energy inefficient fragments in the source code of a software system. Test cases are executed to obtain energy consumption measurements, and a statistical method, based on spectrum-based fault localization, is introduced to relate energy consumption to the source code. The result of our technique is an energy ranking of source code fragments pointing developers to possible energy leaks in their code. This technique was implemented in the SPELL toolkit. Finally, in order to evaluate our technique, we conducted an empirical study where we asked participants to optimize the energy efficiency of a software system using our tool, while also having two other groups using no tool assistance and a profiler, respectively. We showed statistical evidence that developers using our technique were able to improve the energy efficiency by 43% on average, and even out performing a profiler for energy optimization. © 2019 Elsevier Inc.

2020

On energy debt: managing consumption on evolving software

Authors
Couto, M; Maia, D; Saraiva, J; Pereira, R;

Publication
TechDebt '20: International Conference on Technical Debt, Seoul, Republic of Korea, June 28-30, 2020

Abstract

2020

Data Curation: Towards a Tool for All

Authors
Dias, J; Cunha, J; Pereira, R;

Publication
HCI International 2020 - Late Breaking Posters - 22nd International Conference, HCII 2020, Copenhagen, Denmark, July 19-24, 2020, Proceedings, Part I

Abstract

2020

E-Debitum: managing software energy debt

Authors
Maia, D; Couto, M; Saraiva, J; Pereira, R;

Publication
35th IEEE/ACM International Conference on Automated Software Engineering Workshops, ASE Workshops 2020, Melbourne, Australia, September 21-25, 2020.

Abstract
This paper extends previous work on the concept of a new software energy metric: Energy Debt. This metric is a reflection on the implied cost, in terms of energy consumption over time, of choosing an energy flawed software implementation over a more robust and efficient, yet time consuming, approach.This paper presents the implementation a SonarQube tool called E-Debitum which calculates the energy debt of Android applications throughout their versions. This plugin uses a robust, well defined, and extendable smell catalog based on current green software literature, with each smell defining the potential energy savings. To conclude, an experimental validation of E-Debitum was executed on 3 popular Android applications with various releases, showing how their energy debt fluctuated throughout releases. © 2020 ACM.