Christopher Brown – Lapedo: A Hybrid Skeletal Framework for Programming Heterogeneous Multicores in Erlang – Erlang User Conference


By Erlang Central | Published: July 28, 2015



Slides and more info: http://www.erlang-factory.com/euc2015/christopher-brown

We present the LAPEDO framework for programming heterogeneous multicore systems (comprising a mixture of processor types) in Erlang. Our framework combines our Skel library of parallel skeletons for Erlang, a new set of hybrid skeletons and novel refactorings for introducing parallelism, combined with the existing Wrangler refactoring tool and a new tool for managing CPU-GPU interactions. We demonstrate the use of our framework on realistic use cases, showing that we are able to quickly and easily significant and scalable speedups over the original sequential Erlang program.

Talk objectives:

To introduce our new framework and tool, Lapedo, which semi-automatically parallelises Erlang code for Heterogeneous multi-core machines (including a mixture of CPUs and GPUs). To demonstrate the use of Refactoring technology to automatically introduce heterogeneous code into Erlang. To demonstrate techniques to automatically distribute tasks to different resources, dynamically, exploiting the full power of CPU and GPU systems.

Target audience:

Anyone (beginner or experts) interested in parallelism, multi-core, GPUs, heterogeneous programming, refactoring, machine learning, soundness.

Chris Brown is a Post-Doctoral Research Fellow at the University of St Andrews working in the area of Refactoring and Parallelism. Chris received his Ph.D. from the University of Kent in 2008 under the supervision of Simon Thompson, where he worked on the implementation of the HaRe refactoring tool for Haskell. Chris now works full time on the ParaPhrase project working towards building radically new refactoring techniques and methodologies to exploit parallel skeleton and pattern applications in both the functional and imperative domains. Chris has published at major conferences in the field of functional programming, refactoring and parallelism.