banner
Centro de Noticias
Ofrecemos un servicio en línea 24 horas al día, 7 días a la semana para ayudarle.

Python turboalimentado: la IA acelera la velocidad de computación miles de veces

Aug 09, 2023

Por Universidad de Massachusetts Amherst 30 de agosto de 2023

Investigadores de la Universidad de Massachusetts Amherst presentaron Scalene, un perfilador de Python de vanguardia. A diferencia de los perfiladores tradicionales, Scalene utiliza IA para identificar y sugerir soluciones a las ineficiencias del código. Este desarrollo gana importancia a medida que el futuro se inclina hacia una mejor programación para mejorar la velocidad.

Su desarrollo Scalene, una herramienta de código abierto para acelerar drásticamente el lenguaje de programación Python, evita los problemas de hardware que limitan las velocidades de procesamiento de las computadoras.

Un equipo de científicos informáticos de la Universidad de Massachusetts Amherst, dirigido por Emery Berger, presentó recientemente un perfilador de Python galardonado llamado Scalene. Los programas escritos con Python son notoriamente lentos (hasta 60.000 veces más lentos que el código escrito en otros lenguajes de programación) y Scalene trabaja para identificar de manera eficiente exactamente dónde se está retrasando Python, lo que permite a los programadores solucionar problemas y optimizar su código para un mayor rendimiento.

Hay muchos lenguajes de programación diferentes (C++, Fortran y Java son algunos de los más conocidos) pero, en los últimos años, un lenguaje se ha vuelto casi omnipresente: Python.

“Python is a ‘batteries-included’ language,” says Berger, who is a professor of computer science in the Manning College of Information and Computer Sciences at UMass Amherst, “and it has become very popular in the age of data science and machine learningMachine learning is a subset of artificial intelligence (AI) that deals with the development of algorithms and statistical models that enable computers to learn from data and make predictions or decisions without being explicitly programmed to do so. Machine learning is used to identify patterns in data, classify data into different categories, or make predictions about future events. It can be categorized into three main types of learning: supervised, unsupervised and reinforcement learning." data-gt-translate-attributes="[{"attribute":"data-cmtooltip", "format":"html"}]"> aprendizaje automático porque es muy fácil de usar”. El lenguaje viene con bibliotecas de herramientas fáciles de usar y tiene una sintaxis intuitiva y legible, lo que permite a los usuarios comenzar a escribir código Python rápidamente.

“Las computadoras ya no son cada vez más rápidas. Las mejoras futuras en la velocidad provendrán menos de un mejor hardware y más de una programación más rápida y eficiente”.

— Emery Berger, profesor de informática en la Facultad de Información y Ciencias de la Computación Manning de la UMass Amherst

"Pero Python es tremendamente ineficiente", dice Berger. "Se ejecuta fácilmente entre 100 y 1000 veces más lento que otros lenguajes, y algunas tareas pueden tardar 60.000 veces más en Python".

Emery Berger, profesor de informática de la UMass Amherst. Crédito: Universidad de Massachusetts Amherst

Los programadores lo saben desde hace mucho tiempo y, para ayudar a combatir la ineficiencia de Python, pueden utilizar herramientas llamadas "perfiladores". Los perfiladores ejecutan programas y luego identifican por qué y qué partes son lentas.

Desafortunadamente, los perfiladores existentes hacen sorprendentemente poco para ayudar a los programadores de Python. En el mejor de los casos, indican que una región de código es lenta y dejan en manos del programador descubrir qué se puede hacer, si es que se puede hacer algo.

El equipo de Berger, que incluía a los estudiantes graduados en ciencias de la computación de la UMass, Sam Stern y Juan Altmayer Pizzorno, creó Scalene para que sea el primer generador de perfiles que no solo identifica con precisión las ineficiencias en el código Python, sino que también utiliza IA para sugerir cómo se puede mejorar el código.

"Scalene primero descubre en qué está perdiendo el tiempo su programa", dice Berger. Se centra en tres áreas clave (CPU, GPU y uso de memoria) que son responsables de la mayor parte de la lentitud de Python.

Una vez que Scalene ha identificado dónde Python tiene problemas para mantenerse al día, utiliza IA, aprovechando la misma tecnología que sustenta ChatGPT, para sugerir formas de optimizar líneas individuales o incluso agrupaciones de código.

"Este es un panel procesable", dice Berger. "No es sólo un velocímetro que te dice qué tan rápido o lento va tu auto, te dice si podrías ir más rápido, por qué tu velocidad se ve afectada y qué puedes hacer para alcanzar la velocidad máxima".

"Los ordenadores ya no son cada vez más rápidos", afirma Berger. "Las futuras mejoras en la velocidad provendrán menos de un mejor hardware y más de una programación más rápida y eficiente".

Scalene ya se utiliza ampliamente y se ha descargado más de 750.000 veces desde su presentación pública en GitHub. La investigación que condujo al desarrollo del escaleno fue apoyada por la Fundación Nacional de Ciencias. Un artículo que describe este trabajo apareció en la Conferencia USENIX de este año sobre diseño e implementación de sistemas operativos, donde ganó el premio al Mejor

Su desarrollo Scalene, una herramienta de código abierto para acelerar drásticamente el lenguaje de programación Python, evita los problemas de hardware que limitan las velocidades de procesamiento de las computadoras.