Multicore is just the start of an ongoing revolution in computer hardware. Manycore machines with hundreds of cores are already being produced, and future systems may well have thousands or even millions of cores, a true megacore era. Dealing with the scale and complexity of megacore (even manycore) systems is incredibly hard using the typical, concurrency-based, approaches that are used today. It becomes almost impossible if a system mixes e.g. CPU and GPU cores. Fortunately, functional programming languages, like Haskell and Erlang, offer huge potential for easy, scalable, and bug-free parallelism. This talk will explore current hardware trends, highlight some recent research results, and show how easy-to-use functional programming techniques can help achieve long-term portability, with built-in scalability, across both current and emerging computer architectures. It will also consider how to balance energy usage against execution time. There may be occasional references to types.
Talk objectives:
The talk aims to expose the audience to new ideas and research results in an easy to digest way, explaining key trends in multicore/manycore programming and showing how functional programming helps with scalability. The concepts are general and transferrable.
Target audience:
The talk should appeal to anyone who is facing scalability issues or who is interested in recent hardware developments and how functional programming can deal with them.
SlidesMulticore architectures are here today, offering major advantages in terms of performance and low energy use. New chips like Intel's 60-core Xeon Phi co-processor point the way towards dramatically increased performance.
Do you need to take advantage of the ever-increasing number of cores in modern processors? Are you unsure how to tackle the exciting programming challenges that parallel computing introduces? This tutorial introduces new pattern-based techniques and tools for Erlang that allow the programmer to quickly and easily write effective parallel code. The tutorial introduces the free Erlang parallel programming library, Skel*, shows how to quickly and automatically introduce parallelism using dedicated refactorings in a standard text editor, and gives hands-on experience with a large multicore machine, leading the programmer step-by-step through the process of writing effective parallel code.
The tutorial is given by Kevin Hammond and Chris Brown, pioneers in the use of refactoring technology for parallel programming. Kevin Hammond has almost 30 years of parallel programming expertise, and deep knowledge of functional programming techniques; Chris Brown is a world leader in refactoring tools for functional languages.
*Skel can be downloaded from GitHub: https://github.com/
Notes from the trainers:
In order to help us prepare for the skeleton tutorial at the EUC on Wednesday, we would like to ask participants to download and install virtual box:
And please download and install the following virtual box image:
http://www.cs.st-andrews.ac.
Professor of Computer Science, Haskell designer, parallel programmer, implementor Twitter:
@khstandrews