Fernando Magno Quintão Pereira


 Professor  Adjunto


Bolsa produtividade CNPq nível   2


Doutor, University of California Los Angeles, EUA, 2008

  fernando@dcc.ufmg.br   www
 ICEx/DCC, sala 7315, +55 (31) 3409-5587
Áreas de pesquisa

Informações resumidas do Currículo Lattes


Currículo Lattes atualizado em 10/12/2018

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 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.
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.
Veja todos os projetos no Currículo Lattes

Últimas publicações

Artigos em periódicos

The Dinamica EGO virtual machine
2018. SCIENCE OF COMPUTER PROGRAMMING.
Static Prediction of Silent Stores
2018. ACM Transactions on Architecture and Code Optimization.
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.
JetsonLEAP: A framework to measure power on a heterogeneous system-on-a-chip device
2017. SCIENCE OF COMPUTER PROGRAMMING.
DawnCC
2017. ACM Transactions on Architecture and Code Optimization.
SIoT: Securing Internet of Things through distributed systems analysis
2017. Future Generation Computer Systems-The International Journal of eScience.
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.
Inference of static semantics for incomplete C programs
2017. Proceedings of the ACM on Programming Languages.
Crosschecking Distributed Data to Detect Integer Overflow
2015. Revista IEEE América Latina.
Protecting Programs Against Memory Violation In Hardware
2015. Revista IEEE América Latina.
Defending Internet of Things against Exploits
2015. Revista IEEE América Latina.
Thread scheduling and memory coalescing for dynamic vectorization of SPMD workloads
2014. Parallel Computing.
A case for a fast trip count predictor
2014. Information Processing Letters (Print).
Arcademis: a Framework for Object Oriented Communication Middleware Development.
2006. Software, Practice & Experience.

Trabalhos completos em congressos

A Compiler-Centric Infra-Structure for Whole-Board Energy Measurement on Heterogeneous Android Systems
2018. 2018 13th International Symposium on Reconfigurable Communicationcentric SystemsonChip (ReCoSoC).
Qubit allocation
2018. the 2018 International Symposium.
More than meets the eye
2018. the XXII Brazilian Symposium.
Taskminer
2018. the XXII Brazilian Symposium.
From Java to FPGA: an Experience with the Intel HARP System
2018. 30th International Symposium on Computer. Architecture and High Performance Computing.
Modelo Multicamadas para Detecção de Ataques ROP
2018. XVIII Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais.
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.
The Computer for the 21st Century: Security & Privacy Challenges after 25 Years
2017. 2017 26th International Conference on Computer Communication and Networks (ICCCN).
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.
Definição Semântica de Blocos Everywhere para Programação SIMD
2016. Simpósio Brasileiro de Linguagens de Programação.
Restrictification of function arguments
2016. the 25th International Conference.
Symbolic range analysis of pointers
2016. the 2016 International Symposium.
Compilação Parcial de Programas Escritos em C
2016. Simpósio Brasileiro de Linguagens de Programação.
Sparse representation of implicit flows with applications to side-channel detection
2016. the 25th International Conference.
Inference of peak density of indirect branches to detect ROP attacks
2016. the 2016 International Symposium.
Paralelização Automática de código com diretivas OpenACC
2016. Simpósio Brasileiro de Linguagens de Programação.
Automatic Insertion of Copy Annotation in Data-Parallel Programs.
2016. International Symposium on Computer Architecture and High-Performance Computing.
An Algebraic Framework for Parallelizing Recurrence in Functional Programming
2016. Brazilian Symposium on Programming Languages.
SMOV: Array Bound-Check and access in a single instruction
2016. 2016 13th IEEE Annual Consumer Communications & Networking Conference (CCNC).
JetsonLeap: A Framework to Measure Energy-Aware Code Optimizations in Embedded and Heterogeneous Systems
2016. Brazilian Symposium on Programming Languages.
Etino: Colocação Automática de Computação em Hardware Heterogêneo
2015. Simpósio Brasileiro de Linguagens de Programação.
Restritificação
2015. Simpósio Brasileiro de Linguagens de Programação.
SIoT
2015. the 14th International Conference.
Automatic Inference of Loop Complexity through Polynomial Interpolation
2015. Simpósio Brasileiro de Linguagens de Programação.
The Dinamica Virtual Machine for Geosciences
2015. Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais.
Function Call Fusion
2015. International Symposium on Computer Architecture and High Performance Computing.
Uma Técnica de Análise Estática para Detecção de Canais Laterais Baseados em Tempo
2015. XV Simpósio Brasileiro de Segurança da Informação e Sistemas Computacionais.
Runtime Pointer Disambiguation
2015. OOPSLA.
SMOV: Array Bound-Check and Access in a Single Instruction
2015. Consumer Communications & Networking Conference (CCNC).
Parameterized Construction of Program Representations for Sparse Dataflow Analyses
2014. International Symposium on Compiler Construction.
Siot: Defendendo a Internet das Coisas contra Exploits
2014. Simpósio Brasileiro de Redes de Computadores.
Compiler support for selective page migration in NUMA architectures
2014. the 23rd international conference.
Prevenção de Ataques em Sistemas Distribuídos via Análise de Intervalos
2014. Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais.
Validation of memory accesses through symbolic analyses
2014. the 2014 ACM International Conference.
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

RipRop: A Dynamic Detector of ROP Attacks
2015. CBSoft Tools.
FlowTracker - Detecção de Código Não Isócrono via Análise Estática de Fluxo
2015. CBSoft Tools.
Etino: Colocação Automática de Computação em Hardware Heterogêneo
2015. CBSoft Tools.
Asymptus - A Tool for Automatic Inference of Loop Complexity
2015. CBSoft Tools.
Restrictifier: a tool to disambiguate pointers at function call sites
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

Junio Cesar Rebiero da Silva. Intelligent DVFS. Início: 2017. Universidade Federal de Minas Gerais (Orientador principal)
Gleison Souza Diniz Mendonça. DawnCC. Início: 2017. Universidade Federal de Minas Gerais (Orientador principal)
Marcos Yukio Siraichi. Alocação de Qbits para Computação Quântica. Início: 2017. Universidade Federal de Minas Gerais (Orientador principal)
CAIO ARAÚJO NEPONOCENO DE LIMA. Acelaração de Programas JavaScript via Anotações de Código. Início: 2017. Universidade Federal de Minas Gerais (Orientador principal)
Guilherme Vieira Leobas. Static Prediction of Silent Stores. Início: 2017. Universidade Federal de Minas Gerais (Orientador principal)

Doutorado

Leandro Terra Cunha Melo. Invisible Typing Oriented Programming. Início: 2016. Universidade Federal de Minas Gerais (Orientador principal)
Mateus Felipe Tymburibá Ferreira. Peephole Detection of ROP-Based Attacks. Início: 2015. Universidade Federal de Minas Gerais (Orientador principal)
Andrei Rimsa Alves. Profiling Oriented Optimizations for Heterogeneous Systems. Início: 2015. Universidade Federal de Minas Gerais (Orientador principal)

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