Programmazione · 2 min read · Oct 20, 2025
Questo nuovo linguaggio di programmazione funzionale può generare codice C e Python per app

Utilizzare Futhark rende più facile programmare per GPU che accelerano l’apprendimento automatico e altre app intensive in matematica
I ricercatori del Dipartimento di Informatica dell’Università di Copenaghen hanno recentemente svelato Futhark, un linguaggio di programmazione funzionale open source progettato per creare codice che gira su GPU, per l’uso nell’apprendimento automatico e in altre applicazioni ad alte prestazioni.
I ricercatori hanno affermato che Futhark è destinato a essere più conveniente da usare rispetto ai framework standard C/C++ per la programmazione delle GPU. La caratteristica principale di Futhark è che può generare automaticamente sia codice C che Python da integrare con app esistenti. Futhark è scritto in Haskell.
Ad oggi, la maggior parte della programmazione GPU comporta l’uso di framework come OpenCL o CUDA, entrambi dei quali utilizzano variazioni di C o C++ per generare codice che gira sulla GPU. Invece di utilizzare un framework qualsiasi, Futhark può generare codice C, ma è un linguaggio a sé stante, più simile a Haskell o Standard ML che a C.
I creatori di Futhark affermano che l’espressività del linguaggio rende più facile descrivere operazioni complesse che utilizzano il parallelismo. Questo include la capacità di supportare parallelizzazioni annidate (operazioni parallele all’interno di altre operazioni parallele). Futhark può farlo “nonostante le complessità di mappare in modo efficiente il parallelismo piatto supportato dall’hardware, poiché molti programmi dipendono da questa caratteristica.”
Le affermazioni dei ricercatori non sono infondate. I benchmark preliminari che mettevano a confronto i programmi GPU di Futhark con altre librerie GPU hanno mostrato risultati promettenti. Per un test di somma di segmento massimo, Futhark era quasi due volte più veloce di un progetto open source concorrente. In altri casi, ha eguagliato o era solo leggermente più lento della concorrenza. Gli sviluppatori di Futhark hanno attribuito questo alla novità del linguaggio e al suo approccio non raffinato all’allocazione e al riutilizzo della memoria.
L’attuale toolchain di Futhark può generare codice in grado di girare sia sulla CPU che sulla GPU, con una varietà di obiettivi. Per la prima, genera codice C compilato dal GCC; per la seconda, genera codice C che utilizza la piattaforma OpenCL. Pertanto, lo stesso codice può essere eseguito su qualsiasi hardware disponibile a supportarlo, in modo molto simile alle app accelerate da GPU come il database MapD che possono tornare a utilizzare la CPU se necessario.
Gli utenti Python che desiderano un aumento di velocità possono generare codice con Futhark avvolto automaticamente in un modulo Python. Il codice GPU gira tramite PyOpenCL, che è una libreria per interfacciarsi con le GPU. Ci sono esempi di questo, come un’implementazione GPU di Conway’s Game of Life guidata da Futhark.
Futhark è ancora un lavoro in corso e gli sviluppatori hanno messo il codice su GitHub per altri ricercatori e sviluppatori.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.