Des informaticiens développent un outil open source pour accélérer considérablement le langage de programmation Python
Une équipe d’informaticiens de l’Université du Massachusetts à Amherst, dirigée par Emery Berger, a récemment dévoilé un profileur Python primé appelé Scalene. Les programmes écrits avec Python sont notoirement lents (jusqu’à 60 000 fois plus lents que le code écrit dans d’autres langages de programmation) et Scalene s’efforce d’identifier efficacement où Python est en retard, permettant ainsi aux programmeurs de dépanner et de rationaliser leur code pour de meilleures performances.
Il existe de nombreux langages de programmation différents (C++, Fortran et Java sont parmi les plus connus), mais ces dernières années, un langage est devenu presque omniprésent : Python.
« Python est un langage « avec piles » », explique Berger, professeur d’informatique au Manning College of Information and Computer Sciences de l’UMass Amherst, « et il est devenu très populaire à l’ère de la science des données et des machines. apprendre parce qu’il est très convivial. Le langage est livré avec des bibliothèques d’outils faciles à utiliser et possède une syntaxe intuitive et lisible, permettant aux utilisateurs de commencer rapidement à écrire du code Python.
« Mais Python est incroyablement inefficace », déclare Berger. « Il s’exécute facilement entre 100 et 1 000 fois plus lentement que d’autres langages, et certaines tâches peuvent prendre 60 000 fois plus de temps en Python. »
Les programmeurs le savent depuis longtemps et pour lutter contre l’inefficacité de Python, ils peuvent utiliser des outils appelés « profileurs ». Les profileurs exécutent des programmes, puis identifient les parties lentes et pourquoi.
Malheureusement, les profileurs existants font étonnamment peu pour aider les programmeurs Python. Au mieux, ils indiquent qu’une région de code est lente et laissent au programmeur le soin de déterminer ce qui peut être fait, le cas échéant.
L’équipe de Berger, qui comprenait Sam Stern et Juan Altmayer Pizzorno, étudiants diplômés en informatique de l’UMass, a construit Scalene pour être le premier profileur qui non seulement identifie avec précision les inefficacités du code Python, mais utilise également l’IA pour suggérer comment le code peut être amélioré.
« Scalene commence par déterminer où votre programme perd du temps », explique Berger. Il se concentre sur trois domaines clés : l’utilisation du CPU, du GPU et de la mémoire, qui sont responsables de la majorité de la lenteur de Python.
Une fois que Scalene a identifié où Python a du mal à suivre, il utilise ensuite l’IA (en exploitant la même technologie que celle qui sous-tend ChatGPT) pour suggérer des moyens d’optimiser des lignes individuelles, voire des groupes de code. « Il s’agit d’un tableau de bord exploitable », explique Berger. « Ce n’est pas seulement un indicateur de vitesse qui vous indique à quelle vitesse votre voiture roule, il vous indique si vous pourriez aller plus vite, pourquoi votre vitesse est affectée et ce que vous pouvez faire pour atteindre la vitesse maximale. »
« Les ordinateurs ne sont plus plus rapides », déclare Berger. « Les améliorations futures en matière de vitesse proviendront moins d’un meilleur matériel que d’une programmation plus rapide et plus efficace. »
Scalene est déjà largement utilisé et a été téléchargé plus de 750 000 fois depuis son dévoilement public sur GitHub. Un article décrivant ce travail a été publié cette année lors de la conférence USENIX sur la conception et la mise en œuvre de systèmes d’exploitation, où il a remporté le prix du meilleur article.