Speaker: Dr. Patrick Maier from the University of Glasgow Title: Why So Many? A Brief Tour of Haskell DSls for Parallel Programming Abstract: The proliferation of parallel compute devices (multicore CPUs, GPGPUs, manycore coprocessors) has increased the demand for parallel programming languages. More specifically, it has increased the demand for parallel extensions of existing languages, and a popular extension route has been embedding a parallel DSL into a host language. Haskell is known as a playground for programming language development, and also offers good support for embedding DSLs (eg. type class overloading, Template Haskell meta programming), so it is no surprise that there are several parallel Haskell DSLs. How many parallel Haskell DSLs are there? It is hard to say given the sprawling nature of the Haskell community. Counting publications in major Haskell venues, on average there were two new parallel DSLs per year over the last 5 years. This diversity is daunting for novices, particularly for those who were lured to Haskell by the promise that a pure functional language would make parallel programming simpler. In this talk, I will argue that the domain of parallel programming is too diverse for there to exist a single unifying DSL. I will survey several parallel Haskell DSLs to illustrate how programming paradigms (data vs task parallelism) and parallel architectures (multicore vs GPGPU, shared vs distributed memory) shape their designs.