Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Sobre

Sobre

Sou um investigador pos-doutorado focando em reduzir e analisar e optimizar os consumos energéticos de software, usando análise de código em conjunto com técnicas de manipulação. Consegui uma bolsa FCT para financiar o doutoramento. Sou um dos membros fundadores dos projectos Green Software for Space Control Mission (GreenSSCM), Software Repositories for Green Computing FLAD/NSF, e Green Software Lab: Green Computing as an Engineering Discipline (GSL).

Conclui o meu grau de doutor no programa doutoral MAP-i na Universidade do Minho com a tese "Energyware Engineering: Techniques and Tools for Green Software Development". Recebi o meu grau de mestre em Engenharia Informatica em 2013, com a tese intitulada "Querying for Model-Driven Spreadsheets", no âmbito do projecto SpreadSheets as a Programming Paradigm (SSaaPP).

Actualmente, o meu interesse de investigação está focado em green computing, interação homem-máquina, e análise e manipulação de código.

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    Rui Alexandre Pereira
  • Cargo

    Investigador Colaborador Externo
  • Desde

    01 julho 2013
001
Publicações

2023

CI/CD Meets Block-Based Languages

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

Publicação
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.

2022

WebAssembly versus JavaScript: Energy and Runtime Performance

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

Publicação
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

ICT4S2022 - Demonstrations and Posters Track Proceedings

Autores
Pereira, R; Rakic, G;

Publicação
CoRR

Abstract

2022

Energy Efficiency of Web Browsers in the Android Ecosystem

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

Publicação
CoRR

Abstract

2021

Ranking programming languages by energy efficiency

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

Publicação
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.