Lapedo: A Hybrid Skeletal Framework for Programming Heterogeneous Multicores in Erlang
Tutorial: Putting the Skeletons Back in the Closet: Effective Parallel Programming

Christopher Brown
PostDoc, Refactorer, Paralleliser, Tool-Maker

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.


Multicore architectures are here today, offering major advantages in terms of performance and low energy use. New chips like Intel's 60-core Xeon Phi co-processor point the way towards dramatically increased performance. 

Do you need to take advantage of the ever-increasing number of cores in modern processors? Are you unsure how to tackle the exciting programming challenges that parallel computing introduces? This tutorial introduces new pattern-based techniques and tools for Erlang that allow the programmer to quickly and easily write effective parallel code. The tutorial introduces the free Erlang parallel programming library, Skel*, shows how to quickly and automatically introduce parallelism using dedicated refactorings in a standard text editor, and gives hands-on experience with a large multicore machine, leading the programmer step-by-step through the process of writing effective parallel code. 

The tutorial is given by Kevin Hammond and Chris Brown, pioneers in the use of refactoring technology for parallel programming. Kevin Hammond has almost 30 years of parallel programming expertise, and deep knowledge of functional programming techniques; Chris Brown is a world leader in refactoring tools for functional languages.
*Skel can be downloaded from GitHub:

Notes from the trainers:

In order to help us prepare for the skeleton tutorial at the EUC on Wednesday, we would like to ask participants to download and install virtual box:

And please download and install the following virtual box image:

Chris Brown is a Post-Doctoral Research Fellow at the University of St Andrews working in the area of Refactoring and Parallelism. Chris has a Ph.D. from the University of Kent under the supervision of Simon Thompson, where he worked on the implementation of the HaRe refactoring tool for Haskell. Chris now works at St Andrews 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.

Twitter: @chrismarkbrown

Back to conference page