La rivoluzione democratica dell'high-performance computing è appena iniziata grazie a un gruppo di ricercatori del MIT. Mentre giganti tecnologici come NVIDIA investono ingenti risorse per sviluppare librerie di calcolo sofisticate che richiedono centinaia di migliaia di righe di codice, un team del Computer Science and Artificial Intelligence Laboratory (CSAIL) ha dimostrato che è possibile ottenere prestazioni comparabili con poche centinaia di righe. La nuova frontiera si chiama Exo 2, un linguaggio di programmazione che potrebbe ridisegnare completamente l'accesso alle tecnologie di calcolo avanzato che alimentano i moderni sistemi di intelligenza artificiale.
Il programmatore al centro del processo creativo
Exo 2 rappresenta l'evoluzione di una categoria di linguaggi che il Professor Jonathan Ragan-Kelley del MIT definisce "user-schedulable languages" (USL). La filosofia alla base di questi strumenti è radicalmente diversa rispetto ai tradizionali linguaggi di programmazione: invece di affidarsi ciecamente a un compilatore che genera automaticamente il codice, gli USL mettono il programmatore in prima linea, permettendogli di controllare esplicitamente come il compilatore trasforma il codice.
Questa nuova generazione di linguaggi permette agli ingegneri di convertire programmi semplici in soluzioni estremamente ottimizzate, mantenendo la funzionalità originale ma con prestazioni drasticamente superiori. L'innovazione principale di Exo 2 rispetto al suo predecessore è la possibilità di definire nuove operazioni di scheduling all'esterno del compilatore, facilitando la creazione di librerie riutilizzabili.
Efficienza sorprendente con meno sforzo
Secondo Yuka Ikarashi, dottoranda in ingegneria elettrica e informatica al MIT e autrice principale dello studio, Exo 2 può ridurre il codice totale di scheduling di un fattore 100, offrendo prestazioni competitive con le implementazioni più avanzate disponibili oggi. Questo lo rende particolarmente interessante per chi lavora nell'high-performance computing (HPC) e deve ottimizzare componenti su diverse operazioni, tipi di dati e architetture.
Il vantaggio più significativo di questo approccio è la possibilità di riutilizzare il codice tra diverse applicazioni e hardware. La modularità diventa così uno strumento di democratizzazione tecnologica, permettendo a team più piccoli di competere con le grandi aziende del settore. I ricercatori hanno implementato una libreria di scheduling con circa 2.000 righe di codice in Exo 2, racchiudendo ottimizzazioni riutilizzabili specifiche per l'algebra lineare e per diversi target hardware.
Il meccanismo innovativo dei "Cursori"
Al cuore di Exo 2 troviamo un meccanismo innovativo chiamato "Cursori", che fornisce quello che gli sviluppatori definiscono un "riferimento stabile" per puntare al codice oggetto durante tutto il processo di scheduling. Questa caratteristica è fondamentale per consentire agli utenti di incapsulare gli schedule all'interno di una funzione di libreria, rendendo il codice indipendente dalle trasformazioni del codice oggetto.
"Crediamo che i linguaggi USL debbano essere progettati per essere estendibili dall'utente, piuttosto che avere un insieme fisso di operazioni", spiega Ikarashi. "In questo modo, un linguaggio può evolversi per supportare progetti di grandi dimensioni attraverso l'implementazione di librerie che si adattano a diversi requisiti di ottimizzazione e domini applicativi".
Il futuro della programmazione ad alte prestazioni
Il design di Exo 2 consente agli ingegneri di concentrarsi su strategie di ottimizzazione di alto livello, garantendo al contempo che il codice oggetto sottostante rimanga funzionalmente equivalente. La sicurezza è garantita dall'uso di primitive progettate specificamente per preservare la correttezza funzionale durante le trasformazioni.
Il team del MIT sta già lavorando per espandere il supporto di Exo 2 a diversi tipi di acceleratori hardware, come le GPU. Inoltre, sono in corso progetti per migliorare l'analisi del compilatore in termini di correttezza, tempo di compilazione ed espressività.
Con questa innovazione, il divario tra i grandi player tecnologici e i ricercatori indipendenti potrebbe ridursi significativamente, democratizzando l'accesso alle tecnologie di calcolo avanzato che alimentano l'intelligenza artificiale moderna. Per il panorama italiano, dove le PMI tecnologiche spesso non possono permettersi grandi team di sviluppo, strumenti come Exo 2 potrebbero rappresentare un'opportunità strategica per rimanere competitivi nel campo dell'innovazione computazionale.