Gabriele Keller

Software Technology Group at Utrecht University

Gabriele Keller is the chair of the Software Technology Group at Utrecht University. Before moving to the Netherlands, she co-founded the Programming Languages & Systems Group at the University of New South Wales, and was a Principal Researcher at Data6 (formerly NICTA) in the Trustworthy Systems project. She contributed to the design of type families in Haskell, and is one of the co-authors of the paper ”Associated Type Synonyms”, which won the ACM SIGPLAN Most Influential ICFP Paper Award. She co-developed leading Haskel high-performance array frameworks, including Repa and Accelerate. Her research interest are type systems, functional languages, and how these languages can be used to reduce the costs of software development, in particular in the context of high-performance computing and safety critical systems.

With the increasing importance of machine learning, both array-based programming and high-performance computing are receiving a lot of attention. On first thought, both of these concepts might not seem like a good match for functional languages, which emphasise abstraction and offer limited support for destructive updates. Hence it might come as a suprise that it is indeed parallel array programming where functional languages can really shine: the conventional indexed-based interface for arrays is as badly suited for parallel programming as it is for functional programming. Instead, a collection-oriented style, which is natural to functional programming and aided by its powerful abstractions, is a much better match. There are more and more functional array languages and libraries that are based on this premise and demonstrate excellent performance, while offering a portable, powerful programming model.

In this talk, I will give an overview of functional array based high-performance computing, how we can map such programs efficiently to parallel hardware, and discuss challenges and ongoing work. Among other approaches, I will detail the application and implementation of our Haskell-based embedded array language Accelerate.

Video ←Back