Pesquisa Em Compiladores Na UFMG

Transcription

Pesquisa em Compiladores na UFMGFernando Pereirafernando@dcc.ufmg.br

fernando@dcc.ufmg.brComo tornar seu sistemade informática maiseficiente e mais seguro?

fernando@dcc.ufmg.brSem comprar novohardware?Como tornar seu sistemade informática maiseficiente e mais seguro?Sem re-escreverseu código?

fernando@dcc.ufmg.brMelhore seu compilador!umsoftwarequetraduzLinguagens deProgramaçãoemCódigoBinário

fernando@dcc.ufmg.brE porque fazer pesquisaem compiladores?

fernando@dcc.ufmg.brHistóriaUm punhado de gente esperta já trabalhou com compiladores.1) Conhece alguém aqui?2) Conhece alguém famosoda área de compiladores?

fernando@dcc.ufmg.brEntrevistaRobert Hundt é engenheiro sênio na Google "At the scale of datacenters, every single performance percent matters! Just take alook at Google's (and other's) publicly available numbers on expenditures ondatacenters. We are talking about billions of dollars. A single percent improvementcan mean millions of dollars from more program features or improved utilization." "In order to deploy software at Google scale, engineers will touch a good dozen ofprogramming and configuration languages, all with their own interestingoptimization problems (from a compiler writer's point of view). Fundamentalknowledge in language, compiler, and runtime implementation will help makebetter engineering decisions, everywhere." "Did you know that many of our first today's most celebrated engineers havecompiler backgrounds? Jeff Dean, Sanjay Ghemawat, Urs Hoelzle, and manyothers. It's not a coincidence. Compiler optimization trains in big-fiddling as well asalgorithmic thinking, which are essential to success in today's world."

fernando@dcc.ufmg.brImportânciaHardwareLinguagens

fernando@dcc.ufmg.brPorque Aprender Compiladores? Para conhecer melhor a ciência da computação– Princípios– Interdisciplinaridade– Novidade Para encontrar um bom emprego– "We do not need that many compiler guys, but those thatwe need, we need them badly." :François Bodin, professor na universidadede Rennes 1. Engenheiro chefe da CAPS

fernando@dcc.ufmg.brProgramar MelhorO que fazem asotimizações quegcc usa?Dá para usá-las em separado: gcc -fdefer-pop -o test test.cDá para abilitar algumas, e desligar outras: gcc -O1 -fno-defer-pop -o test pftree-slsrftree-sraftree-ptafunit-at-a-time

fernando@dcc.ufmg.brEntendimentoReusar o nome das variáveis economizamemória?int i read();if (i ! EOF)i read();printf("%d", i);Herança é menos eficiente?Macros são mais eficientes?#define MAX(X, Y) (X) (Y) ? (X) : (Y)int max(int i, int j) { return i j ? i : j; }

fernando@dcc.ufmg.brEmpregosIntel iccMozilla JaegerMonkey, IonMonkey, TraceMonkeyApple LLVMNVIDIA nvccGoogle ART, V8Microsoft visual studio, .NET VMSTMicroelectronics open 64

fernando@dcc.ufmg.brStart-ups Coverity: segurançaCyral: segurançaShiftLeft: segurançaACE: embarcadosPathScale: desempenhoPGI: desempenhoGreen Hills: C/C

fernando@dcc.ufmg.brE no final das contas.Hi Prof Pereira,Long time don't see. I trust you are well.Here at Apple, we are investing heavily in our compilertechnologies. I was wondering if you might haverecommendations for students who are interested inpursuing a career in industrial compiler work. I'd beinterested in talking to them about opportunities here.Regards,Evan ChengSr Manager, Compiler Technologies, Apple (Março'13)

fernando@dcc.ufmg.brE mais no final das contas ainda.Dear Fernando,I have read your paper in JIT specialization in JavaScriptand particularly your work in the context of IonMonkeyhas caught my eye. I am working as a Research Scientist atIntel Labs on the River Trail project. We are collaboratingwith Mozilla on a Firefox implementation. Given yourrecent work on IonMonkey, maybe one of your studentswould be interested to join us in Santa Clara to work onthis topic?Regards,Stephan (May'13)

fernando@dcc.ufmg.brEgressos Diogo Sampaio - ARM UK Marcelo Morais - Apple US/BR Victor Sperle - ARM UK Bruno Morais - Google BR Raphael Ernani - Microsoft US Izabela Karenina - Google BR Péricles Alves - Microsoft US Tarsila Bessa - Google BR Rubens Moreira - Microsoft US Henrique Nazaré - Google BR Leandro Terra - ShiftLeft US/BR Carina Capelão - Google BR Caio Lima - JavaScriptCore EU/BR Junio Ribeiro - Cyral US/BR Guilherme Leobas - Cyral US/BR Hugo Souza - Cyral US/BR

fernando@dcc.ufmg.brE porque trabalhar conosco?

fernando@dcc.ufmg.brJá Usou o Firefox? Especialização de código JavaScript.– https://bugzilla.mozilla.org/show bug.cgi?id 536641Para saber mais: Igor Rafael de Assis Costa, Péricles Rafael Oliveira Alves, Henrique Nazaré Santos, Fernando MagnoQuintão Pereira: Just-in-time value specialization. CGO 2013: 29:1-29:11Igor Rafael de Assis Costa, Henrique Nazaré Santos, Péricles Rafael Oliveira Alves, Fernando MagnoQuintão Pereira: Just-in-time value specialization. Computer Languages, Systems & Structures 40(2):37-52 (2014)

fernando@dcc.ufmg.brJoga Video-Games? Análise de Divergência para GPUs:– http://gpuocelot.gatech.edu/ (Nvidia & Mentor Graphics)– http://reviews.llvm.org/D8576 (Apple, ARM, Google &Cray)Para saber mais: Diogo Sampaio, Rafael Martins de Souza, Sylvain Collange, Fernando Magno Quintão Pereira:Divergence analysis. ACM Trans. Program. Lang. Syst. 35(4): 13 (2013)

fernando@dcc.ufmg.brPrograma Em PHP? Análise de fluxo contaminado– Falhas de segurança encontradas em programas reais.Para saber mais: Andrei Rimsa, Marcelo d'Amorim, Fernando Magno Quintão Pereira: Efficient static checkerfor tainted variable attacks. Sci. Comput. Program. 80: 91-105 (2014)Andrei Rimsa, Marcelo d'Amorim, Fernando Magno Quintão Pereira: Tainted Flow Analysis one-SSA-Form Programs. CC 2011: 124-143

fernando@dcc.ufmg.brMexe com Criptografia? FlowTracker é uma ferramentaque valida algoritmos decriptografia. Atualmente ela é desenvolvidapela Prodemge, Companhia deDados de Minas GeraisPara saber mais: Bruno Rodrigues, Fernando Magno Quintão Pereira, Diego F. Aranha: Sparse representationof implicit flows with applications to side-channel detection. CC 2016: 110-120

fernando@dcc.ufmg.brPrêmios (Últimos 5 Anos) Melhor artigo SBLP 2010 “Removing Overflow Tests via Run-Time Partial Evaluation”.Melhor artigo SBAC-PAD 2010 “Performance Debugging of GPGPU Applications with theDivergence Map”.Melhor artigo do SBQS 2011 “Software Evolution Characterization - A Complex NetworkApproach”Melhor artigo SBLP 2012 "Spill Code Placement for SIMD Machines".Melhor trabalho de iniciação científica, SIC UFMG 2012, Ciências Exatas e da Terra: PériclesAlves, "Runtime Value Specialization". 2013Segunda melhor dissertação de mestrado da Sociedade Brasileira de Computação:"Divergence Analysis with Affine Constraints". 2014Melhor artigo do XIX Simpósio Brasileiro de Linguagens de Programação: "Restritificação",Sociedade Brasileira de Computação. 2015Terceiro melhor artigo do XIX Simpósio Brasileiro de Linguagens de Programação: "AutomaticInference of Loop Complexity through Polynomial Interpolation", Sociedade Brasileira deComputação. 2015Melhor Ferramenta do Congresso Brasileiro de Software, Teoria e Prática (CBSoft):"Restrictifier: a tool to disambiguate pointers at function call sites", Sociedade Brasileira deComputação. 2015Segunda Melhor Ferramenta do Congresso Brasileiro de Software, Teoria e Prática (CBSoft):"FlowTracker - Detecção de Código Não Isócrono via Análise Estática de Fluxo", SociedadeBrasileira de Computação. 2015Melhor artigo "Inspector J: uma ferramenta de análise estática para detectar código nãoisócrono em programas Java". CBSoft Tools 2017, Sociedade Brasileira de Computação.

fernando@dcc.ufmg.brInfra-EstruturaProcesso de medição deconsumo energético emhardware embarcadoNovo laboratório inauguradono dia 18 de Dezembro de2015, construído comrecursos da Intel e da LGElectronics

fernando@dcc.ufmg.brEnergia

fernando@dcc.ufmg.brColaborações com a Indústria Intel: compilação segura de programas escritos em C/C para dispositivos embarcados. Maxtrack: teste automático de software implementadoem micro-controladores. LG Electronics: paralelização automática de código parasmartphones. Nvidia: análise de divergências. Prodemge: análise de fluxo de informação Google: redução de consumo energético em dispositivosmóveis ( seis summer of code).

fernando@dcc.ufmg.brMissão"Can Programming Be Liberated From the VonNeumann Style?"1977 Turing Award Lecture - John Backus (1924-2007)Contatos:ICEx/DCC, sala 7315, 55 (31) 3409-5587E-mail: fernando@dcc.ufmg.brWeb: http://www.dcc.ufmg.br/ fernandoLaboratório de Compiladores: http://lac.dcc.ufmg.br/

for tainted variable attacks. Sci. Comput. Program. 80: 91-105 (2014) Andrei Rimsa, Marcelo d'Amorim, Fernando Magno Quintão Pereira: Tainted Flow Analysis on e-SSA-Form Programs. CC 2011: 124-143