banner
Centre d'Information
Nous proposons un service en ligne 24h/24 et 7j/7 pour vous aider.

Python turbocompressé : l'IA accélère la vitesse de calcul des milliers de fois

Aug 09, 2023

Par Université du Massachusetts Amherst30 août 2023

Des chercheurs de l'Université du Massachusetts à Amherst ont présenté Scalene, un profileur Python de pointe. Contrairement aux profileurs traditionnels, Scalene utilise l’IA pour identifier et suggérer des correctifs aux inefficacités du code. Ce développement prend de l’importance à mesure que l’avenir s’oriente vers une meilleure programmation pour l’amélioration de la vitesse.

Leur développement Scalene, un outil open source permettant d'accélérer considérablement le langage de programmation Python, contourne les problèmes matériels limitant les vitesses de traitement informatique.

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 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"}]"> l’apprentissage automatique 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.

« Les ordinateurs ne sont plus plus rapides. Les futures améliorations en matière de vitesse proviendront moins d’un meilleur matériel que d’une programmation plus rapide et plus efficace.

— Emery Berger, professeur d'informatique au Manning College of Information and Computer Sciences de l'UMass Amherst

"Mais Python est complètement inefficace", déclare Berger. "Il s'exécute facilement entre 100 et 1 000 fois plus lentement que les autres langages, et certaines tâches peuvent prendre 60 000 fois plus de temps en Python."

Emery Berger, professeur d'informatique à l'UMass Amherst. Crédit : UMass Amherst

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 pourquoi et quelles parties sont lentes.

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. "Il ne s'agit pas seulement d'un indicateur de vitesse qui vous indique à quelle vitesse votre voiture roule, il vous indique si vous pouvez aller plus vite, pourquoi votre vitesse est affectée et ce que vous pouvez faire pour atteindre la vitesse maximale."