Python potenziato: l'intelligenza artificiale accelera la velocità di elaborazione di migliaia di volte
A cura dell'Università del Massachusetts Amherst, 30 agosto 2023
I ricercatori dell’Università del Massachusetts Amherst hanno presentato Scalene, un profiler Python all’avanguardia. A differenza dei profiler tradizionali, Scalene utilizza l'intelligenza artificiale sia per identificare che per suggerire soluzioni alle inefficienze del codice. Questo sviluppo acquista significato poiché il futuro tende verso una migliore programmazione per miglioramenti della velocità.
Il loro sviluppo Scalene, uno strumento open source per accelerare notevolmente il linguaggio di programmazione Python, aggira i problemi hardware che limitano la velocità di elaborazione del computer.
Un team di scienziati informatici dell'Università del Massachusetts Amherst, guidato da Emery Berger, ha recentemente presentato un pluripremiato profiler Python chiamato Scalene. I programmi scritti con Python sono notoriamente lenti, fino a 60.000 volte più lenti del codice scritto in altri linguaggi di programmazione, e Scalene lavora per identificare in modo efficiente esattamente dove Python è in ritardo, consentendo ai programmatori di risolvere i problemi e semplificare il codice per ottenere prestazioni più elevate.
Esistono molti linguaggi di programmazione diversi (C++, Fortran e Java sono alcuni dei più conosciuti) ma, negli ultimi anni, un linguaggio è diventato quasi onnipresente: 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"}]"> machine learning perché è così facile da usare." Il linguaggio viene fornito con librerie di strumenti facili da usare e ha una sintassi intuitiva e leggibile, che consente agli utenti di iniziare rapidamente a scrivere codice Python.
“I computer non stanno più diventando più veloci. I futuri miglioramenti in termini di velocità deriveranno meno da un hardware migliore e più da una programmazione più veloce ed efficiente.
— Emery Berger, professore di informatica al Manning College of Information and Computer Sciences dell'UMass Amherst
"Ma Python è pazzescamente inefficiente", afferma Berger. "Funziona facilmente da 100 a 1.000 volte più lentamente rispetto ad altri linguaggi e alcune attività potrebbero richiedere 60.000 volte più tempo in Python."
Emery Berger, professore di informatica all'UMass Amherst. Credito: UMass Amherst
I programmatori lo sanno da tempo e per aiutare a combattere l'inefficienza di Python possono utilizzare strumenti chiamati "profiler". I profiler eseguono i programmi e poi individuano il motivo e quali parti sono lente.
Sfortunatamente, i profiler esistenti fanno sorprendentemente poco per aiutare i programmatori Python. Nella migliore delle ipotesi, indicano che una regione del codice è lenta e lasciano al programmatore il compito di capire cosa si può fare, se non altro.
Il team di Berger, che comprendeva gli studenti laureati in informatica dell'UMass Sam Stern e Juan Altmayer Pizzorno, ha creato Scalene per essere il primo profiler che non solo identifica con precisione le inefficienze nel codice Python, ma utilizza anche l'intelligenza artificiale per suggerire come il codice può essere migliorato.
"Scalene innanzitutto individua i punti in cui il tuo programma sta perdendo tempo", afferma Berger. Si concentra su tre aree chiave: CPU, GPU e utilizzo della memoria, che sono responsabili della maggior parte della lentezza di Python.
Una volta che Scalene ha identificato dove Python ha difficoltà a tenere il passo, utilizza l’intelligenza artificiale, sfruttando la stessa tecnologia alla base di ChatGPT, per suggerire modi per ottimizzare singole righe o anche raggruppamenti di codice.
"Si tratta di un dashboard utilizzabile", afferma Berger. "Non è solo un tachimetro che ti dice quanto velocemente o lentamente sta andando la tua auto, ti dice se potresti andare più veloce, perché la tua velocità è influenzata e cosa puoi fare per raggiungere la velocità massima."