Thinking Parallel: Exploiting Advanced Software Refactoring to Produce Structured Parallel Erlang Programs
Kevin Hammond is a (full) Professor in Computer Science, in the School of Computer Science, at the University of St. Andrews, St. Andrews, Scotland, where he leads the Functional Programming research group.In this talk he will demonstrate how the process of refactoring can lead to a simple and efficient multicore solution, and how offloading code in Erlang can enable the efficient utilisation of special-purpose hardware such as GPGPUs.
Despite Moore's "law", uniprocessor clock speeds have now stalled. Dual-, quad- or even hexa-core processors are now common, even in consumer laptops and desktops. While it is possible to use conventional techniques to write parallel programs for such systems, future hardware will not just be slightly parallel, however, but will be massively parallel, with manycore and even "megacore" systems becoming mainstream. It will also be heterogeneous, involving GPUs, FPGAs, and even dedicated specialist processors as part of a single complex system.
The ParaPhrase project aims to help programmers "think parallel" by providing new development tools and methodology. Our approach is based around the use of high-level patterns of parallelism that allow programmers to think in terms of highly parallel abstractions. We combine this with tool-directed software refactoring. Refactoring is the process of guiding the developer through a series of code transformations. Ultimately, these transformations will yield a parallel implementation that has been tunedto a specific hardware architecture, but which can easily be transformed for execution on some other platform.