Schede Grafiche

Harlan, il linguaggio per la GPU che sfida CUDA e OpenCL

Le schede grafiche, nate per gestire i calcoli grafici nei computer, sono oggi potenti mezzi per macinare calcoli di ogni tipo. Rappresentano una sorta di El Dorado per gli scienziati di tutto il mondo, che le usano per costruire supercomputer sempre più compatti, più potenti e in grado di consumare meno energia rispetto alle vecchie soluzioni basate sulle CPU.

Per sfruttare le capacità di calcolo parallelo delle GPU sono nati diversi linguaggi, da CUDA di Nvidia a OpenCL, uno standard industriale supportato da AMD che sta prendendo sempre più piede. Un dottorando della Indiana University, Eric Holk, ha creato un nuovo linguaggio di programmazione dedicato allo sviluppo di applicazioni che girano sulle GPU (compila comunque in OpenCL). Si chiama Harlan e promette faville. 

Attualmente i programmatori devono occuparsi di molti dettagli di basso livello quando programmano per le GPU. Il vantaggio di Harlan è che si occupa di questi dettagli, permettendo al programmatori di concentrarsi sul loro obiettivo primario, migliorando la produttività e qualità dei programmi. A differenza dei linguaggi di programmazione più diffusi in ambito GPGPU, il nuovo arrivato offre un approccio di più alto livello, simile a quello offerto da Python e Ruby. 

"Harlan vi permette di prendere migliori decisioni per il vostro hardware e le applicazioni", in pratica permetterebbe di sfruttare  maggiormente l'hardware, creando applicazioni più evolute e potenti. Per i curiosi, la sintassi di Harlan è basata su Scheme, un "dialetto" del linguaggio di programmazione Lisp, creato nel 1958 dal ricercatore John McCarthy. "E l'antenato di ogni buon linguaggio", ha dichiarato Yukihiro "Matz" Matsumoto, che ha dato vita a Ruby.

"All'Indiana University abbiamo una grande tradizione nell'uso di Scheme e quindi abbiamo esperienza nella scrittura di compilatori", ha aggiunto Holk. "In origine abbiamo immaginato un linguaggio più simile a C, ma dato che stavamo lavorando così tanto su Scheme, aveva senso far evolvere Harlan per esservi più vicino […] Harlan potrebbe potenzialmente generare codice migliore per la GPU, in grado di spingere ai limiti ciò che è possibile". Non ci sono maggiori dettagli, ma qualche particolare in più lo si trova su Github se avete dimestichezza con i linguaggi di programmazione.