.
Uma equipe de cientistas da computação da Universidade de Massachusetts Amherst, liderada por Emery Berger, revelou recentemente um premiado criador de perfis Python chamado Scalene. Os programas escritos com Python são notoriamente lentos – até 60.000 vezes mais lentos do que o código escrito em outras linguagens de programação – e o Scalene trabalha para identificar com eficiência exatamente onde o Python está atrasado, permitindo que os programadores solucionem problemas e simplifiquem seu código para obter maior desempenho.
Existem muitas linguagens de programação diferentes – C++, Fortran e Java são algumas das mais conhecidas – mas, nos últimos anos, uma linguagem tornou-se quase onipresente: Python.
“Python é uma linguagem ‘incluída com baterias’”, diz Berger, que é professor de ciência da computação na Manning College of Information and Computer Sciences da UMass Amherst, “e se tornou muito popular na era da ciência de dados e das máquinas. aprendendo porque é muito fácil de usar.” A linguagem vem com bibliotecas de ferramentas fáceis de usar e possui uma sintaxe intuitiva e legível, permitindo aos usuários começar a escrever código Python rapidamente.
“Mas Python é extremamente ineficiente”, diz Berger. “Ele é facilmente executado de 100 a 1.000 vezes mais lento do que outras linguagens, e algumas tarefas podem levar 60.000 vezes mais tempo em Python.”
Os programadores já sabem disso há muito tempo e, para ajudar a combater a ineficiência do Python, eles podem usar ferramentas chamadas “profilers”. Os criadores de perfil executam programas e identificam por que e quais partes estão lentas.
Infelizmente, os criadores de perfil existentes fazem surpreendentemente pouco para ajudar os programadores Python. Na melhor das hipóteses, eles indicam que uma região do código é lenta e deixam para o programador descobrir o que pode ser feito, se houver.
A equipe de Berger, que incluía os estudantes de graduação em ciência da computação da UMass, Sam Stern e Juan Altmayer Pizzorno, construiu o Scalene para ser o primeiro criador de perfil que não apenas identifica com precisão ineficiências no código Python, mas também usa IA para sugerir como o código pode ser melhorado.
“Scalene primeiro provoca onde seu programa está perdendo tempo”, diz Berger. Ele se concentra em três áreas principais – CPU, GPU e uso de memória – que são responsáveis pela maior parte da velocidade lenta do Python.
Depois que Scalene identifica onde o Python está tendo problemas para acompanhar, ele usa IA – aproveitando a mesma tecnologia que sustenta o ChatGPT – para sugerir maneiras de otimizar linhas individuais ou até mesmo agrupamentos de código. “Este é um painel acionável”, diz Berger. “Não é apenas um velocímetro que informa o quão rápido ou lento seu carro está indo, ele informa se você poderia ir mais rápido, por que sua velocidade é afetada e o que você pode fazer para atingir a velocidade máxima.”
“Os computadores não estão mais rápidos”, diz Berger. “As futuras melhorias na velocidade virão menos de um hardware melhor e mais de uma programação mais rápida e eficiente.”
O Scalene já é amplamente utilizado e foi baixado mais de 750.000 vezes desde seu lançamento público no GitHub. A pesquisa que levou ao desenvolvimento do Escaleno foi apoiada pela National Science Foundation. Um artigo descrevendo este trabalho apareceu na Conferência USENIX sobre Design e Implementação de Sistemas Operacionais deste ano, onde ganhou o prêmio de Melhor Artigo.
Mais informações: https://www.usenix.org/conference/osdi23/presentation/berger
.