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
Professor of Computer Science, Haskell designer, parallel programmer, implementor Twitter:
@khstandrews