Fernando Magno Quintão Pereira


Bolsa de Produtividade CNPq: 2

Áreas de Pesquisa: Sala: 7322
Ramal: 5587
fernando@dcc.ufmg.br

Página pessoal     Lattes    Google scholar 


Informações resumidas do Currículo Lattes

Currículo Lattes atualizado em 01/09/2021

ORCID: https://orcid.org/0000-0002-0375-1657

Nome em citações bibliográficas: PEREIRA, Fernando Magno Quintão;Pereira, Fernando Magno Quintão;QUINTAO PEREIRA, FERNANDO MAGNO;QUINTÃO PEREIRA, FERNANDO MAGNO;MAGNO QUINTÃO PEREIRA, FERNANDO;QUINTÃO PEREIRA, FERNANDO M.;MAGNO QUINTAO PEREIRA, FERNANDO;PEREIRA, FERNANDO M. Q.;PEREIRA, FERNANDO MAGNO QUINTAO;QUINTAO, FERNANDO MAGNO PEREIRA;PEREIRA, FERNANDO M.Q.;PEREIRA, FERNANDO MAGNO Q.;PEREIRA, FERNANDO MAGNO QUINTO;PEREIRA, FERNANDO;PEREIRA, FERNANDO M Q;QUINTAO, FERNANDO MAGNO;QUINTÃO, FERNANDO MAGNO;QUINAO PEREIRA, FERNANDO MAGNO;PEREIRA, FERNANDO MAGNO QUINTAN


Formação acadêmica

Doutorado em Ciência da Computação na University of California Los Angeles em 2008
Mestrado em Ciências da Computação na Universidade Federal de Minas Gerais em 2004
Graduado em Ciência da Computação na Universidade Federal de Minas Gerais em 2001

Projetos de pesquisa em andamento

2015 a AtualTeste Automático de Código Embarcado
Esta linha de pesquisa existe como decorrência de uma cooperação científica que o candidato vem criando com uma empresa do ramo de rastreamento de veículos, a Maxtrack. Esta empresa foi criada por empreendedores mineiros, e hoje é líder em seu mercado no Brasil, tendo já projetado, implementado e distribuído rastreadores para veículos automotores e trens de carga. O objetivo dessa cooperação científica é projetar, implementar e instalar serviços de teste de software que possam ser usados para ativar, de forma automática, potenciais falhas de segurança em código feito para sistemas embarcados.
Integrantes: Fernando Magno Quintão Pereira (coordenador), Francisco Demontie, Marcus Rodrigues.
2015 a AtualParalelização Automática de Código para Dispositivos Móveis
Este projeto trata-se de uma cooperação entre a Universidade Federal de Minas Gerais e a empresa LG Electronics, e existe no contexto da Lei de Informática e Inovação. O objetivo deste projeto é desenvolver técnicas que permitam a geração de código paralelo para dispositivos móveis como smartphones. O resultado esperado deste projeto é um compilador capaz de assinalar as diferentes partes de um programa a uma CPU multicore, ou a GPU que existe em um smartphone.
Integrantes: Fernando Magno Quintão Pereira (coordenador), Douglas do Couto, Victor Sperle Campos, Pericles Rafael Oliveira Alves, Kezia Andrade, Gleison Souza.
2015 a AtualProspiel - Profiling and Specialization for Locality
O objetivo deste projeto é desenvolver técnicas que suportem a paralelização automática de programas. Entre tais técnicas citam-se análises estáticas de programas, e instrumentação de código binário. Este projeto é uma cooperação entre instituições brasileiras (UFMG e CEFET-MG) e o INRIA francês
Integrantes: Fernando Magno Quintão Pereira (coordenador), Fabrice Rastello, Wagner Meira Jr, Sylvain Collange, GONNORD, LAURE, Anolán Milanez.
2013 a Atuale-CoSoc: Energy-Efficient Instrumentation to Secure Systems-on-a-Chip Devices
O objetivo deste projeto é desenvolver técnicas que protejam programas escritos em linguagens inseguras, tais como C. As técnicas desenvolvidas precisam ser adequadas para dispositivos embarcados. Assim, uma das principais metas do projeto é a criação de mecanismos de proteção de software que sejam econômicos do ponto de vista energético
Integrantes: Fernando Magno Quintão Pereira (coordenador), Raphael Ernani Rodrigues, Henrique Nazaré Santos, Leonardo Barbosa, Bruno Rodrigues Silva, Izabela Kareninna, Fernando Teixeira.
2012 a AtualRastreamento de Fluxo de Informação em Estruturas de Dados
O rastreamento de fluxo de informaçao é um dos grandes temas de pesquisa abordados pela comunidade de linguagens de programação. Dado uma "informação", o objetivo desse tipo de análise é identificar em que parte de um programa alvo tal conhecimento é produzido, como ele se propaga entre as variáveis desse programa, e que usuários podem ter acesso a ele.
Integrantes: Fernando Magno Quintão Pereira (coordenador), Andrei Alves Rimsa, Gabriel Silva Quadros, Rafael Martins de Sousa, Bruno Rodrigues Silva, NAZARÉ SANTOS, HENRIQUE.
2010 a AtualOtimização de Código para Placas Gráficas
O objetivo deste grupo de pesquisa é permitir, via o desenvolvimento de técnicas de geração e otimização de código, que desenvolvedores de programas melhor usufruam do alto poder de processamento de arquiteturas computacionais paralelas. Tais técnicas possibilitam, portanto, que estes desenvolvedores possam se concentrar em problemas algorítmicos, trabalhando com linguagens de programação de alto nível, enquanto o compilador lhes garante a utilização eficiente do hardware. A pesquisa em compilação para arquiteturas de alto desempenho, no DCC-UFMG, dá-se em duas vertentes. Em primeiro lugar, desenvolvem-se estratégias de "paralelização automática de código". O objetivo deste tipo de pesquisa é transformar programas que foram concebidos para hardware monoprocessado em código equivalente que seja mais eficiente por ser capaz de utilizar diversos processadores simultaneamente. Em segundo lugar, este grupo de pesquisa desenvolve técnicas de otimização de programas que se aplicam diretamente à melhoria de aplicações paralelas. Neste caso, destacam-se, por exemplo, as transformações de código realizadas automaticamente pelo compilador a fim de remover barreiras de sincronização redundantes, coordenar acesso à memória compartilhada e aumentar o número de processadores em execução simultânea.
Integrantes: Fernando Magno Quintão Pereira (coordenador), Bruno Rocha Coutinho, Diogo Nunes Sampaio, Wagner Meira Jr, Fernando Carvalho Coelho.

Projetos de desenvolvimento em andamento

2010 a AtualDivergence Analysis in the Ocelot compiler
This project consists in the implementation of a divergence analysis to the Ocelot compiler. We have been able to submit more than 10,000 lines of code to this compiler, which is publicly available and widely used by the industry. See the compiler's webpage at http://code.google.com/p/gpuocelot/
Integrantes: Fernando Magno Quintão Pereira (coordenador), Diogo Nunes Sampaio, Sylvain Collange, Elie Gideon.
2010 a AtualCode Specialization in the Mozilla Firefox Browser
This project consists in the implementation of extensions to the Mozilla Firefox JavaScript compiler. These extensions allow the JavaScript compiler to produce better code given the values that are manipulated at runtime. Part of the code is currently available in the IonMonkey compiler that is part of the Mozilla Firefox browser.
Integrantes: Fernando Magno Quintão Pereira (coordenador), Igor Rafael Assis Costa, Pericles Rafael Oliveira Alves.
Veja todos os projetos no Currículo Lattes

Últimas publicações

Artigos em periódicos

Instruction visibility in SPEC CPU2017
2021. JOURNAL OF COMPUTER LANGUAGES.
On-line synthesis of parsers for string events
2021. Journal of Computer Languages.
Semiring optimizations: dynamic elision of expressions with identity and absorbing elements
2020. ACM on Programming Languages.
Dynamic dispatch of context-sensitive optimizations
2020. ACM on Programming Languages.
Type Inference for C: Applications to the Static Analysis of Incomplete Programs
2020. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS.
Practical dynamic reconstruction of control flow graphs
2020. SOFTWARE-PRACTICE & EXPERIENCE.
Qubit allocation as a combination of subgraph isomorphism and token swapping
2019. Proceedings of the ACM on Programming Languages.
Guided just-in-time specialization
2019. SCIENCE OF COMPUTER PROGRAMMING.
Data-flow analysis and optimization for data coherence in heterogeneous architectures
2019. JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING.
Static Prediction of Silent Stores
2018. ACM Transactions on Architecture and Code Optimization.
The Dinamica EGO virtual machine
2018. SCIENCE OF COMPUTER PROGRAMMING.
Automatic parallelization of recursive functions with rewriting rules
2018. SCIENCE OF COMPUTER PROGRAMMING.
The computer for the 21st century: present security & privacy challenges
2018. JOURNAL OF INTERNET SERVICES AND APPLICATIONS.
DawnCC
2017. ACM Transactions on Architecture and Code Optimization.
JetsonLEAP: A framework to measure power on a heterogeneous system-on-a-chip device
2017. SCIENCE OF COMPUTER PROGRAMMING.
SIoT: Securing Internet of Things through distributed systems analysis
2017. Future Generation Computer Systems.
Inference of static semantics for incomplete C programs
2017. Proceedings of the ACM on Programming Languages.
Combining Range and Inequality Information for Pointer Disambiguation
2017. SCIENCE OF COMPUTER PROGRAMMING.
Static placement of computation on heterogeneous devices
2017. Proceedings of the ACM on Programming Languages.
Arcademis: a Framework for Object Oriented Communication Middleware Development.
2006. Software, Practice & Experience.

Trabalhos completos em congressos

Memory-Safe Elimination of Side Channels
2021. 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).
ANGHABENCH: A Suite with One Million Compilable C Benchmarks for Code-Size Reduction
2021. 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).
Exploring the space of optimization sequences for code-size reduction: insights and tools
2021. CC '21: 30th ACM SIGPLAN International Conference on Compiler Construction.
Mapping Computations in Heterogeneous Multicore Systems with Statistical Regression on Inputs
2020. 2020 X Brazilian Symposium on Computing Systems Engineering (SBESC).
YACOS
2020. SBLP '20: 24th Brazilian Symposium on Programming Languages.
AutoParBench
2020. ICS '20: 2020 International Conference on Supercomputing.
Efficient and Precise Dynamic Construction of Control Flow Graphs
2019. the XXIII Brazilian Symposium.
Synthesis of Benchmarks for the C Programming Language by Mining Software Repositories
2019. the XXIII Brazilian Symposium.
Multilayer ROP Protection Via Microarchitectural Units Available in Commodity Hardware
2019. 2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).
Generation of In-Bounds Inputs for Arrays in Memory-Unsafe Languages
2019. 2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).
Taskminer
2018. the XXII Brazilian Symposium.
Qubit allocation
2018. the 2018 International Symposium.
A Compiler-Centric Infra-Structure for Whole-Board Energy Measurement on Heterogeneous Android Systems
2018. 2018 13th International Symposium on Reconfigurable Communicationcentric SystemsonChip (ReCoSoC).
From Java to FPGA: an Experience with the Intel HARP System
2018. 30th International Symposium on Computer. Architecture and High Performance Computing.
More than meets the eye
2018. the XXII Brazilian Symposium.
Modelo Multicamadas para Detecção de Ataques ROP
2018. XVIII Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais.
Data Coherence Analysis and Optimization for Heterogeneous Computing
2017. 2017 29th International Symposium on Computer Architecture and HighPerformance Computing (SBACPAD).
Demand-driven less-than analysis
2017. the 21st Brazilian Symposium.
The Computer for the 21st Century: Security & Privacy Challenges after 25 Years
2017. 2017 26th International Conference on Computer Communication and Networks (ICCCN).
Pointer disambiguation via strict inequalities
2017. 2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).
Function Call Re-Vectorization
2017. the 22nd ACM SIGPLAN Symposium.
Definição Semântica de Blocos Everywhere para Programação SIMD
2016. Simpósio Brasileiro de Linguagens de Programação.
Inference of peak density of indirect branches to detect ROP attacks
2016. the 2016 International Symposium.
Symbolic range analysis of pointers
2016. the 2016 International Symposium.
Sparse representation of implicit flows with applications to side-channel detection
2016. the 25th International Conference.
Restrictification of function arguments
2016. the 25th International Conference.
JetsonLeap: A Framework to Measure Energy-Aware Code Optimizations in Embedded and Heterogeneous Systems
2016. Brazilian Symposium on Programming Languages.
Compilação Parcial de Programas Escritos em C
2016. Simpósio Brasileiro de Linguagens de Programação.
SMOV: Array Bound-Check and access in a single instruction
2016. 2016 13th IEEE Annual Consumer Communications & Networking Conference (CCNC).
An Algebraic Framework for Parallelizing Recurrence in Functional Programming
2016. Brazilian Symposium on Programming Languages.
Automatic Insertion of Copy Annotation in Data-Parallel Programs.
2016. International Symposium on Computer Architecture and High-Performance Computing.
Paralelização Automática de código com diretivas OpenACC
2016. Simpósio Brasileiro de Linguagens de Programação.
Register Allocation by Puzzle Solving
2008. ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation (PLDI).
A Framework for End-to-End Verification and Evaluation of Register Allocators.
2007. The Fourteenth International Static Analysis Symposium (SAS 2007).
Register Allocation After Classical SSA Elimination is NP-Complete.
2006. Foundations of Software Science and Computation Structures.
Register Allocation via Coloring of Chordal Graphs.
2005. The Third Asian Symposium on Programming Languages and Systems..

Resumos expandidos em congressos

Compiler-assisted adaptive program scheduling in big.LITTLE systems
2019. the 24th Symposium.
RipRop: A Dynamic Detector of ROP Attacks
2015. CBSoft Tools.
Etino: Colocação Automática de Computação em Hardware Heterogêneo
2015. CBSoft Tools.
FlowTracker - Detecção de Código Não Isócrono via Análise Estática de Fluxo
2015. CBSoft Tools.
Asymptus - A Tool for Automatic Inference of Loop Complexity
2015. CBSoft Tools.

Resumos em congressos

Paralelización del D-Index para Búsquedas en Espacios Métricos
2012. Workshop de Investigadores en Ciencias de la Computación.

Veja todas as publicações no Currículo Lattes

Orientações em andamento

Mestrado

Vinícius Silva Pacheco. An eBPF Back-End for the Elixir Programming Language. Início: 2021. Universidade Federal de Minas Gerais (Orientador principal)
Thaís Regina Damásio. Inlining for Code-Size Reduction. Início: 2021. Universidade Federal de Minas Gerais (Orientador principal)
Luigi Domenico Cecchini Soares. Static Elimination of Side-Channels. Início: 2020. Universidade Federal de Minas Gerais (Orientador principal)
José Wesley de Sousa Magalhães. Automatic Generation of Verification Code for Benchmarks. Início: 2019. Universidade Federal de Minas Gerais (Orientador principal)
Breno Ferreira Campos Guimarães. Synthesis of Benchmarks from Open Source Repositories. Início: 2018. Universidade Federal de Minas Gerais (Orientador principal)

Doutorado

Michael Canesche. A Polynomial Time Exact Solution to the Bitwidth-Aware Register Biding Problem. Início: 2021. Universidade Federal de Minas Gerais (Orientador principal)
Angélica Aparecida Moreira. Linearização de Programas Guiada por Profiling. Início: 2019. Universidade Federal de Minas Gerais (Orientador principal)

Veja todas as orientações no Currículo Lattes