-
Natural sciences
- Parallel programming
-
Social sciences
- Innovation, research and development, technological change, intellectual property rights
Software-ontwikkelaars gebruiken tegenwoordig meer en meer hoog-niveauprogrammeertalen omdat dit hun productiviteit ten goede komt. Dit gaat vaak ten koste aan de prestaties van de software, maar talen als Julia en Rust proberen het gat te dichten. Ze bieden nieuwe abstracte middelen aan aan de snelheid van C code. Die talen falen vandaag echter in het exploiteren van een populaire klasse accelerators. Hardware zoals GPUs en FPGAs, die voor specifieke taken enorme rekenefficiëntie aanbieden, ondersteunen ze niet. De compilers van die talen zijn daarentegen gericht op traditionele processors, and sommige delen van de talen zijn niet compatibel met de acceleratoren.
In dit project zullen we het toevoegen van extra interfaces aan de hoog-niveaucompiler exploreren om die te configureren of aan te passen, zodat de taal compatibel wordt met de acceleratorhardware. We zullen werken met de Julia programmeertaal, een performantie hoog-niveautaal die gebruik maakt van het LLVM compilerraamwerk. We zullen ons richten op GPUs, een algemeen beschikbaar type accelerator. Die zullen veel toegankelijker en makkelijker programmeerbaar worden als we de mogelijkheden van Julia ter beschikking kunnen stellen. Onze aanpak bestaande uit het toevoegen van extra interfaces ipv ad hoc aanpassingen voor een enkel type processor, zal de integratie met de rest van het ecosysteem van de taal ten goede komen, en zal het makkelijker maken om ondersteuning voor andere types hardware toe te voegen.