Emerging multicore and manycore architectures offer major advantages in terms of performance and low energy usage. We are already seeing designs for 100+ cores CPUs and 1000+ cores GPUs, offering significant potential for parallelism. However, programming models are lagging behind. Exploiting the potential of new parallel systems, even using higher-level programming models, is highly challenging.
Fundamentally:
"Parallelism is too hard for programmers today"
Bjarne Stroustrup, Inventor of C++
The solution? Functional programming, of course!
What we need are tools and techniques that will guide programmers in adapting their application to new and emerging architectures, ensuring performance portability while minimising development effort. The EU RePhrase project tackles this problem head-on, investigating new and advanced software engineering techniques for parallel programs. This talk introduces new pattern-based techniques and tools, based on high-level functional programming techniques, that allow programmers to quickly and easily write effective parallel code. It shows how parallelism can be introduced quickly, automatically and effectively using dedicated refactorings.
Kevin Hammond is a full professor of Computer Science at the University of St Andrews, where he leads the functional programming research group. His research interests lie in programming language design and implementation, with a focus on parallelism and real=time properties of functional languages, including modelling and reasoning about extra-functional properties. In total, he has published around 100 research papers, books and articles, and held over 20 national and international research grants, totalling around £11M of research funding. He was a member of the Haskell design committee, co-designed the Hume real-time functional language, and is co-editor of the main reference text on parallel functional programming. He currently coordinates the RePhrase project, a 3-year EU research project that aims to develop new refactoring technology targeting heterogeneous parallel architectures. Kevin is a keen hill-walker, whisky connoisseur and enjoys early music.
Github: kevinhammond
Twitter: @khstandrews