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

Neste momento sou estudante de Doutoramento em Engenharia Informática na Faculdade de Engenharia da Universidade do Porto. No final de 2012 obti o grau de mestre na mesma instituição.

Desde a obtenção do mestrado, tenho estado envolvido em vários projetos de investigação na área de compiladores, incluindo compilação source-to-source e especificação de estratégias para identificação de falhas em programas, ou instrumentação de código para profiling. Os meus principais interesses de investigação incluem compilação source-to-source, análise de aplicações e também otimizações e transformações de código. Finalmente, também estou interessado em tópicos mais gerais como linguagens de programação, computação de elevado desempenho e machine learning.

Entre 2015 e 2018 foi investigador na equipa da Universidade do Porto do projeto Europeu ANTAREX, do programa H2020. As minhas responsabilidades principais incluíam o desenvolvimento de um compilador source-to-source e desenvolvimento de estratégias para dotar aplicações de capacidade de auto-adaptação em tempo de execução.

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    Pedro Miguel Pinto
  • Cargo

    Estudante Externo
  • Desde

    01 novembro 2018
Publicações

2021

A methodology and framework for software memoization of functions

Autores
Pinto, P; Cardoso, JMP;

Publicação
CF '21: Computing Frontiers Conference, Virtual Event, Italy, May 11-13, 2021

Abstract
Enhancing performance is crucial when developing applications for high-performance and embedded computing. It requires sophisticated techniques and in-depth knowledge of the application domain and target architecture. Typically, developers prioritize the application's functional requirements over extra-functional requirements. Thus, a large part of the optimization effort is shifted to performance engineers, who rely on manual effort, alongside many analysis and optimization tools that need integration. This paper focuses on memoization, which caches results of pure computations and retrieves them if a function is called with repeating arguments. We propose a methodology for allowing developers and performance engineers to apply memoization straightforwardly by automating code analysis, code transformations, and memoization-specific profiling. It helps developers with no optimization expertise to quickly set up memoization and, simultaneously, it provides performance engineers with highly customizable analysis and memoization. We provide a concrete implementation supported by a DSL, a source-to-source compiler, and a memoization framework. We evaluate the methodology and framework with publicly available benchmarks. We show how one can analyze applications to select functions with performance improvement potential, which the experiments reveal might be challenging to find, and improve some applications with minimal effort. © 2021 ACM.

2018

Aspect composition for multiple target languages using LARA

Autores
Pinto, P; Carvalho, T; Bispo, J; Ramalho, MA; Cardoso, JMP;

Publicação
COMPUTER LANGUAGES SYSTEMS & STRUCTURES

Abstract
Usually, Aspect-Oriented Programming (AOP) languages are an extension of a specific target programming language (e.g., Aspect J for JAVA and Aspect C++ for C++). Although providing AOP support with target language extensions may ease the adoption of an approach, it may impose constraints related with constructs and semantics. Furthermore, by tightly coupling the AOP language to the target language the reuse potential of many aspects, especially the ones regarding non-functional requirements, is lost. LARA is a domain-specific language inspired by AOP concepts, having the specification of source-to-source transformations as one of its main goals. LARA has been designed to be, as much as possible, independent of the target language and to provide constructs and semantics that ease the definition of concerns, especially related to non-functional requirements. In this paper, we propose techniques to overcome some of the challenges presented by a multilanguage approach to AOP of cross-cutting concerns focused on non-functional requirements and applied through the use of a weaving process. The techniques mainly focus on providing well-defined library interfaces that can have concrete implementations for each supported target language. The developer uses an agnostic interface and the weaver provides a specific implementation for the target language. We evaluate our approach using 8 concerns with varying levels of language agnosticism that support 4 target languages (C, C++, JAVA and MATLAB) and show that the proposed techniques contribute to more concise LARA aspects, high reuse of aspects, and to significant effort reductions when developing weavers for new imperative, object-oriented programming languages.

2018

SOCRATES - A seamless online compiler and system runtime autotuning framework for energy-aware applications

Autores
Gadioli, D; Nobre, R; Pinto, P; Vitali, E; Ashouri, AH; Palermo, G; Cardoso, JMP; Silvano, C;

Publicação
2018 Design, Automation & Test in Europe Conference & Exhibition, DATE 2018, Dresden, Germany, March 19-23, 2018

Abstract
Configuring program parallelism and selecting optimal compiler options according to the underlying platform architecture is a difficult task. Tipically, this task is either assigned to the programmer or done by a standard one-fits-all policy generated by the compiler or runtime system. A runtime selection of the best configuration requires the insertion of a lot of glue code for profiling and runtime selection. This represents a programming wall for application developers. This paper presents a structured approach, called SOCRATES, based on an aspect-oriented language (LARA) and a runtime autotuner (mARGOt) to mitigate this problem. LARA has been used to hide the glue code insertion, thus separating the pure functional application description from extra-functional requirements. mARGOT has been used for the automatic selection of the best configuration according to the runtime evolution of the application. 1 © 2018 EDAA.

2018

Autotuning and Adaptivity in Energy Efficient HPC Systems: The ANTAREX Toolbox

Autores
Silvano, C; Palermo, G; Agosta, G; Ashouri, AH; Gadioli, D; Cherubin, S; Vitali, E; Benini, L; Bartolini, A; Cesarini, D; Cardoso, J; Bispo, J; Pinto, P; Nobre, R; Rohou, E; Besnard, L; Lasri, I; Sanna, N; Cavazzoni, C; Cmar, R; Martinovic, J; Slaninova, K; Golasowski, M; Beccari, AR; Manelfi, C;

Publicação
2018 ACM INTERNATIONAL CONFERENCE ON COMPUTING FRONTIERS

Abstract
Designing and optimizing applications for energy-efficient High Performance Computing systems up to the Exascale era is an extremely challenging problem. This paper presents the toolbox developed in the ANTAREX European project for autotuning and adaptivity in energy efficient HPC systems. In particular, the modules of the ANTAREX toolbox are described as well as some preliminary results of the application to two target use cases.(1)

2018

ANTAREX: A DSL-Based Approach to Adaptively Optimizing and Enforcing Extra-Functional Properties in High Performance Computing

Autores
Silvano, C; Agosta, G; Bartolini, A; Beccari, AR; Benini, L; Besnard, L; Bispo, J; Cmar, R; Cardoso, JMP; Cavazzoni, C; Cherubin, S; Gadioli, D; Golasowski, M; Lasri, I; Martinovic, J; Palermo, G; Pinto, P; Rohou, E; Sanna, N; Slaninová, K; Vitali, E;

Publicação
21st Euromicro Conference on Digital System Design, DSD 2018, Prague, Czech Republic, August 29-31, 2018

Abstract
The ANTAREX project relies on a Domain Specific Language (DSL) based on Aspect Oriented Programming (AOP) concepts to allow applications to enforce extra functional properties such as energy-efficiency and performance and to optimize Quality of Service (QoS) in an adaptive way. The DSL approach allows the definition of energy-efficiency, performance, and adaptivity strategies as well as their enforcement at runtime through application autotuning and resource and power management. In this paper, we present an overview of the ANTAREX DSL and some of its capabilities through a number of examples, including how the DSL is applied in the context of one of the project use cases. © 2018 IEEE.