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

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
  • Role

    External Research Collaborator
  • Since

    01st July 2013
001
Publications

2023

Paint Your Programs Green: On the Energy Efficiency of Data Structures

Authors
Pereira, R; Couto, M; Cunha, J; Melfe, G; Saraiva, J; Fernandes, JP;

Publication
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

Abstract
This tutorial aims to provide knowledge on a different facet of efficiency in data structures: energy efficiency. As many recent studies have shown, the main roadblock in regards to energy efficient software development are the misconceptions and heavy lack of support and knowledge, for energy-aware development, that programmers have. Thus, this tutorial aims at helping provide programmers more knowledge pertaining to the energy efficiency of data structures. We conducted two in-depth studies to analyze the performance and energy efficiency of various data structures from popular programming languages: Haskell and Java. The results show that within the Haskell programming language, the correlation between performance and energy consumption is statistically almost identical, while there are cases with more variation within the Java language. We have presented which data structures are more efficient for common operations, such as inserting and removing elements or iterating over the data structure. The results from our studies can help support developers in better understanding such differences within data structures, allowing them to carefully choose the most adequate implementation based on their requirements and goals. We believe that such results will help further close the gap when discussing the lack of knowledge in energy efficient software development. © 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.

2023

CI/CD Meets Block-Based Languages

Authors
da Giao, H; Pereira, R; Cunha, J;

Publication
2023 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING, VL/HCC

Abstract
Continuous Integration and Continuous Deployment (CI/CD) pipelines play a vital role in the DevOps process, enabling developers to automate and enhance software delivery. However, the existence of multiple technologies, such as GitHub Actions, GitLab CI/CD, or Jenkins, poses challenges due to their lack of interoperability and the use of different programming languages for pipeline construction. To address these challenges and improve the CI/CD process, our objective is to develop a block-based language specifically designed for representing CI/CD pipelines. With our language, we intend to empower users to more easily create correct pipelines. Through an interactive and user-friendly process, our approach guides users in constructing pipelines, ensuring accuracy and reducing errors. Additionally, our language will facilitate seamless transitions between different pipeline technologies, providing users with flexibility and ease of adoption.

2023

Energy Efficient Software in an Engineering Course

Authors
Saraiva, J; Pereira, R;

Publication
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

Abstract
Sustainable development has become an increasingly important theme not only in the world politics, but also an increasingly central theme for the engineering professions around the world. Software engineers are no exception as shown in various recent research studies. Despite the intensive research on green software, today’s undergraduate computing education often fails to address our environmental responsibility. In this paper, we present a module on energy efficient software that we introduced as part of an advanced course on software analysis and testing. In this module students study techniques and tools to analyze and optimize energy consumption of software systems. Preliminary results of the first four instances of this course show that students are able to optimize the energy consumption of software systems. © 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.

2022

WebAssembly versus JavaScript: Energy and Runtime Performance

Authors
De Macedo, J; Abreu, R; Pereira, R; Saraiva, J;

Publication
2022 INTERNATIONAL CONFERENCE ON ICT FOR SUSTAINABILITY (ICT4S 2022)

Abstract
The worldwide Web has dramatically evolved in recent years. Web pages are dynamic, expressed by programs written in common programming languages given rise to sophisticated Web applications. Thus, Web browsers are almost operating systems, having to interpret/compile such programs and execute them. Although JavaScript is widely used to express dynamic Web pages, it has several shortcomings and performance inefficiencies. To overcome such limitations, major IT powerhouses are developing a new portable and size/load efficient language: WebAssembly. In this paper, we conduct the first systematic study on the energy and run-time performance of WebAssembly and JavaScript on the Web. We used micro-benchmarks and also real applications in order to have more realistic results. Preliminary results show that WebAssembly, while still in its infancy, is starting to already outperform JavaScript, with much more room to grow. A statistical analysis indicates that WebAssembly produces significant performance differences compared to JavaScript. However, these differences differ between micro-benchmarks and real-world benchmarks. Our results also show that WebAssembly improved energy efficiency by 30%, on average, and showed how different WebAssembly behaviour is among three popular Web Browsers: Google Chrome, Microsoft Edge, and Mozilla Firefox. Our findings indicate that WebAssembly is faster than JavaScript and even more energy-efficient. Additionally, our benchmarking framework is also available to allow further research and replication.

2022

Energy Efficiency of Web Browsers in the Android Ecosystem

Authors
Gonçalves, N; Rua, R; Cunha, J; Pereira, R; Saraiva, J;

Publication
CoRR

Abstract