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
Slides
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