Bridging the Divide: A New Tool-Supported Methodology for Programming Heterogeneous Multicore Machines

Kevin Hammond
Professor @ the University of St Andrews

In this talk, we present a new programming methodology for introducing and tuning parallelism in Erlang for heterogeneous shared-memory systems (comprising a mixture of CPUs and GPUs), that combines algorithmic skeletons and refactoring tool support. Using our approach, we demonstrate easily obtainable, significant and scalable speedups on a number of case studies on a 24-core heterogeneous multiprocessor, and comparable to the best possible speedups that could be obtained.

Talk objectives:


- To demonstrate a new programming methodology, tool-support and high-level patterns that support efficient programmability of parallel heterogeneous systems.

- To show the skeleton library, skel, extended with heterogeneity support

- To demonstrate how introducing and tuning these skeletons for heterogeneous architectures is easy and achievable using state-of-the-art refactoring tools and mapping techniques


Target audience:

- People interested in multi-core and heterogeneous systems

- People interested in looking towards the future, and wanting to program large scale multi-cores

- People interested in performance


Professor of Computer Science, Haskell designer, parallel programmer, implementor

Twitter: @khstandrews

Back to conference page