Double lecture in the course Topics in Programming Languages: Parallel Functional Programming. – University of Copenhagen

Double lecture in the course Topics in Programming Languages: Parallel Functional Programming.

Geoffrey Mainland from Microsoft Research in Cambridge will give a double lecture in the course Topics in Programming Languages: Parallel Functional Programming.

These lectures are hereby also announced as open talks.

Title (starts at 13:15): Nikola: Embedding Compiled GPU Functions in Haskell

Abstract:

I will describe Nikola, a first-order language of array computations embedded in Haskell that compiles to GPUs via CUDA using a new set of type-directed techniques to support re-usable computations. Nikola automatically handles a range of low-level details for Haskell programmers, such as marshaling data to/from the GPU, size inference for buffers, memory management, and automatic loop parallelization.

Additionally, Nikola supports both compile-time and run-time code generation, making it possible for programmers to choose when and where to specialize embedded programs.

Title: Nested Data Parallelism in Haskell

Abstract:

Flat data parallelism provides a fast, scalable execution model for parallel computation, but its programming model is limiting. In contrast, nested data parallelism provides a flexible programming model, but efficient execution is a challenge. NESL showed that, in principle, once can combine the nested data parallel programming model with the efficient execution model of flat data parellelism. In this talk I will describe Data Parallel Haskell, a modern realization of the ideas behind NESL as implemented in the GHC compiler. I will also discuss an alternative approach to executing nested data parallel programs that we have recently begun implementing in GHC.