GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

Kevin Hammond, Professor of Computer Science at St Andrews University

Kevin Hammond

Biography: Kevin Hammond

Kevin Hammond is a (full) professor of Computer Science at St Andrews University and an honorary (full) professor at Heriot-Watt University. He obtained his PhD in parallel programming in 1989 from the University of East Anglia, Norwich.
Since then he was worked extensively in the field of parallel programming, with a focus on design and implementation of high-level programming languages, especially functional languages. He was a member of the international Haskell committee, where he worked on the Haskell 98 standard and developed the first parallel Haskell implementations. He has also worked extensively on issues of cost modelling, analysis and real-time systems, including the functional real-time language, Hume. In total, he has published over 100 books, book chapters and research papers.
He is active in the FP7 project Advance (Asynchronous and Dynamic Virtualisation through performance ANalysis to support Concurrency Engineering), where he leads the St Andrews effort, and coordinates the FP7 project ParaPhrase (Parallel Patterns for Heterogeneous Multicore Systems).

Twitter: @khstandrews

Presentation: Thinking Parallel: Exploiting Advanced Software Refactoring to Produce Structured Parallel Programs

Track: Multicore, Concurrency & Parallelism / Time: Wednesday 14:30 - 15:20 / Location: Millennium A

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, which guides the developer through a series of code transformations. The result is a parallel implementation that has been tuned to a specific hardware architecture, but which can easily be transformed for execution on some other platform.

In this talk we will demonstrate how the process of refactoring can lead to a simple and efficient multicore solution, and how high-level offloading code can enable the efficient utilisation of special-purpose hardware such as GPGPUs. Our approach is highly generic - the patterns and transformations that we develop are language-independent, and can be easily retargeted to a variety of languages and parallel implementations, including C, C++ and Java.