Research Activities
My primary research interest is in the design, implementation and
evaluation of high level parallel and distributed functional
languages. I supervise
a team of
researchers in the area as part of
the
Glasgow Parallelism Group (GPG).
Long Term Research Activities
Some longer term
research activities, and collaborations are as follows.
I helped design and
build Glasgow Parallel
Haskell (GpH). It's one of the early robust parallel functional
languages, and remains one of the most widely used parallel Haskell
models, e.g. the most popular Haskell
compiler, GHC supports it on
multicores. The sophisticated GUM runtime system supports GpH on
distributed-memory machines like clusters.
I helped design and
build Haskell distributed parallel
Haskell (HdpH). It's a parallel Haskell for large scale distributed-memory machines like
clusters or HPC platforms. Crucially, HdpH is implemented in vanilla (GHC) Haskell.
I'm active in national and
international networks of excellence. For example co-leading the
MaRIONet UK Manycore Research Network,
being a stakeholder and member of the
European High Performance and Embedded Architecture and Compilation (HiPEAC),
and a member of the UK Memory Management Network.
Programme Committees and Journals
I serve on programme committees, including
- Trends in Functional
Programming Workshops: 2000, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Co-Chair 1999 and 2001.
- ACM SIGPLAN Erlang Workshop: 2005, 2009, Programme Chair 2006.
- ACM SIGPLAN DAMP: Declarative Aspects of Multicore Programming: 2009, 2010
- The International
Workshop on Implementing Functional Languages: 2000, 2001, 2002, 2005, 2010 Co-Editor 2003 and 2004
- Int. Workshop on Foundational and Practical Aspects of Resource Analysis (FOPARA): 2009
- ACM SIGPLAN Workshop on Functional High Performance Computing: 2012 Co-Chair 2017
- Brazilian Symposium on Programming Languages: Co-Chair 2013
I occasionally guest edit Journal issues, e.g.
Special Issue on Functional High-Performance Parallel
Programming. Journal of Functional Programming 15(3).
I also help organise various conferences and meetings including