I am a postdoc at the University of Copenhagen, where I work on data-parallel functional programming. My main work is on the language Futhark, which is available under a free software license. My work focuses on issues related to the interplay between high-level abstractions and their efficient realisation on concrete hardware. Specifically, I believe that functional programming provides a useful high-level vocabulary for expressing parallel computation, but that most existing functional languages are hampered in their performance potential by features that inhibit efficient code. I study how a high-level functional language can be designed from the ground up for efficient compilation to parallel code on efficient but "hostile" (in the sense of being hard to program) parallel hardware. Concretely, I have developed a small functional array language, Futhark and an optimising compiler that generates fairly efficient GPU code.
URLs for Troels Henriksen
No URLs found.
Futhark is a data-parallel programming language that has been invented to ease the programming of massively parallel computers, mostly notably GPUs. Futhark is a purely functional language, and so cannot in principle interact with the outside world at all. Since people like being able to write programs that actually do things, this presents a challenge. I will talk about how Futhark is actually usable in practice, and show what the programming experience is actually like with some live hacking.
Further, Futhark is developed by a very small team, which is primarily interested in doing compiler development. Yet for a language to be practically useful, it still needs supporting infrastructure such as package repositories, documentation generators, and robust testing. Established language often have teams for handling such tasks. I will talk about how we have organised development of the Futhark project itself to obtain robust and reliable infrastructure and tools, but requiring a minimum of maintenance.
Scheduled Instances of "Making use of Futhark, a purely functional GPU programming language"
- Tuesday Aug. 13 16:00 - 17:00