Kevin Hammond

ParaFormance: Finding Patterns of Parallelism

Functional Programming, Properties, Parallelism

ParaFormance: Finding Patterns of Parallelism

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.