FUTHARK - nyt programmeringssprog – Københavns Universitet

Videresend til en ven Resize Print Bookmark and Share

Datalogisk Institut, DIKU > Nyheder > DIKU-nyheder 2017 > Interview: Frugtbart forskningssamarbejde om finans-it har gavnet såvel SimCorp som KU > FUTHARK - nyt programm...

FUTHARK - nyt programmeringssprog

Futhark er et (tillempet) akronym for: High-performance purely functional data-parallel array programming on the GPU og blev tirsdag den 20. juni 2017 præsenteret af PhD-studerende Troels Henriksen fra DIKU på den mest betydningsfulde konference for programmeringssprog, .

Læs forskningsartiklen. Fås også som PDF.

Problemet: Der mangler skræddersyede programmeringssprog til parallelle processer

Parallelle computere er blevet mainstream blandt programmører. Det er almindeligt anerkendt, at der stadig mangler gode modeller og programmeringssprog til at programmere disse. Dette problem stikker endnu mere i øjnene, når man bevæger sig fra fler-kerne-CPU'er og over til grafikkort, GPU'er, som har udviklet sig til at blive massive parallelt-koblede maskiner, der kan bruges til alle typer af opgaver. Her kommer de traditionelle programmeringssprog til kort.

Funktionelle sprog foreslås ofte som løsningen på problemet med at håndtere parallelitet, idet de ikke er så afhængige af sekventielle rækkefølger eller afledte effekter. Men der er også problemer med at få funktionelle sprog til at fungere på et graffikkort. Bl.a. fordi de kun understøtter en begrænset form for parallelitet.

Løsningen: Et helt nyt funktionels programmeringssprog

Løsningen har været at designe et lille funktionelt sprog, som har lige præcis de karakteristika og begrænsninger, der gør det muligt at konstruere en fantastisk effektiv optimerende oversætter, der kan generere GPU-kode. Denne oversætter (eller compiler) kan håndtere alle lavniveau-detaljer, så programmøren kan koncentrere sig om, hvordan man bedst kan udtrykke parallelismen i algoritmen.

Lektor Martin Elsman, adjunkt Cosmin Oancea, lektor Andrzej Filinski og ikke mindst ph.d-studerende Troels Henriksen, har i 4 år forsket i at udvikle det nye programmeringssprog og oversætter, som har fået navnet FUTHARK.

Futhark er et lille data-parallelt funktionel sprog, som minder om en krydsning af Haskell og OCaml. Paralleliteten udtrykkes gennem en indbygget second-order array combinators (SOACs) som ligner de højere-ordens-funktioner der kendes fra funktionsprogrammering.

En uddybbende forklaring af Futharks tilblivelse og anvendelse kan læses på Troels Henriksens BlogPost om Futhark.