Glasgow Parallelism Group (GPG)

Introduction

The advent of manycores means that parallelism is the key to all general purpose software development. The Glasgow Parallelism Group (GPG) is broad-based, and investigates a range of parallelism topics, including how to better exploit multi- and many-core machines, Clouds, High-Performance Computers (HPC), and other platforms.

Specific research interests are as follows.

  • Parallel Language Design and Implementation, e.g. GpH, HdpH, Lino, Vector Pascal
  • Heterogeneous Architectures, e.g. exploiting FPGAs, or GPUs
  • Parallel Hardware
  • Reasoning about Concurrency, e.g. Session Types, Model Checking
  • Parallel and Distributed Functional Programming, e.g. Erlang, GpH, HdpH
  • Parallelising Interesting Applications, e.g. Robot Vision, Computer Algebra, Weather Simulations
Within the School of Computing Science, GPG is a cross-cutting theme, with strong links to the ENDS, FATA, and Computer Vision research groups.

We have a strong collaboration on parallel language engineering with the Heriot-Watt Dependable Systems Group (DSG).

Members and Mailing List

Academic Staff

Researchers

Associates

Mailing List

Announcements are made on the GPG mailing list: . If you would like to subscribe to the list, please email .

Meetings and Seminars

We currently meet on Wednesdays at 1pm, usually in room F121 in the School of Computing Science. You are welcome to bring lunch.

Previous GPG seminars: 2015--2016 Talks, 2014--2015 Talks, 2013--2014 Talks.

Many seminars of interest to GPG appear in the Glasgow Systems Section (GLASS) seminar series.


Upcoming GPG seminars

Date & Location Title Speaker

Past GPG seminars

Date & Location Title Speaker

Projects and Activities

The group is engaged in a wide range of research projects and activities.

Projects

Most of the research projects below are funded by national or international research programmes.

Crucially the GPG leads the *MaRIONet* network of Excellence and three (from a total of five) of the SADEA projects in the EPSRC Many-core Architectures and Concurrency in Distributed and Embedded Systems (MACDES) priority area.

  • SADEA 1 AnyScale Apps is an EPSRC project (EP/L000725) joint with Manchester and Edinburgh. The project aims to develop a "write once, scale anywhere" software development and deployment paradigm. Apps are composed of runtime components which interact. Each component has several API-compatible variants that offer different cost/benefit tradeoffs. At runtime, the dynamic resource availability determines which variants are executed at particular nodes in the distributed heterogeneous infrastructure. October 2013 - September 2017.
  • SADEA 2 Exploiting Parallelism through Type Transformations for Hybrid Manycore Systems (TyTra) is an EPSRC Project (EP/L00058X) joint with Imperial and Heriot-Watt that uses compilation technology to exploit parallelism without changing the program. January 2014 - January 2019.
  • SADEA 3 Adaptive JIT-based Parallelism (AJITPar) is an EPSRC Project (EP/L000687) in partnership with Microsoft Labs in Cambridge. The project investigates the feasibility of providing performance portability using a combination of dynamic scheduling and dynamic trace-based Just-In-Time (JIT) compilation. October 2013 - September 2016.
  • From Data Types to Session Types: A Basis for Concurrency and Distribution (EPSRC EP/K034413/1) June 2013 - May 2018. Simon Gay (Glasgow), Philip Wadler (Edinburgh), and Nobuko Yoshida (Imperial).
  • COST Action IC1201: Behavioural Types for Reliable Large-Scale Software Systems (BETTY) runs from October 2012 - October 2016 and is chaired by Simon Gay.
  • RELEASE: A High-Level Paradigm for Reliable Large-Scale Server Software is an EU FP7 STREP (287510) that aims to scale the radical concurrency-oriented programming paradigm to build reliable general-purpose software, such as server-based systems, on massively parallel machines (100 000 cores). Phil Trinder at Glasgow is the coordinator for the project, and partners include Ericsson, Uppsala Universitet, Kent University, Erlang Solutions Ltd., NTU Athens, and EDF (France). October 2011 - April 2015.
  • CLOPEMA a robot project funded by the EU to develop a clothes folding robot. The Glasgow group is working on the parallel robot vision system. April 2012 - April 2015.
  • HPC-GAP: High Performance Computational Algebra and Discrete Mathematics is an EPSRC project (EP/G05553X) to improve the software development technologies for HPC software. Our part of the project is to extend high-level parallel Haskell technologies to large scale HPC platforms. The project is a collaboration with Aberdeen, St Andrews and Edinburgh Universities.
  • The University of Glasgow Raspberry Pi Cloud project is a teaching and research project centred around the construction of a "scale-model" of a Cloud data centre using energy and cost efficient Raspberry Pi devices.
  • Members of GPG 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. The new GUMSMP runtime system supports GpH on hierarchical architectures like NUMAs or clusters of multicores.
  • Members of GPG 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.
  • Members of the group develop and maintain the Vector Pascal compiler and the ILCG code generation toolkit, described here.

Activities

The group engages in a wide range of parallelism research activities, including the following.

Parallel Architectures

The group has access to a wide range of architectures. We have access to national capability-class HPC resources like ARCHER currently with approximately 5000 nodes (120 000 cores).

We have a range of architectures in our own administrative domain, where we can freely install software and schedule experiments.

  • Non-Uniform Memory Architectures (NUMA) include
    • An Intel Xeon Phi system with 126 cores on two Phi boards.
    • A 64-core AMD 1.8GHz, 512GB, 7+TB Raid Array, Linux
  • We have range of Field Programmable Gate Arrays (FPGAs) and Graphics Processors (GPUs)
  • We have a cluster of Raspberry Pis
  • A 20-node, 320-core Beowulf cluster Specification and Access Protocol

PhD Studentships

PhD positions are available for students with excellent Computer Science qualifications, a high level of motivation, and related research interests. A typical applicant will have a first or upper-second class Honours degree in Computer Science, or equivalent qualification.

Studentships to fund a PhD are available each year. For the primary sources of funding
UK students should contact a member of academic staff before March,
Non-UK students should contact a member of academic staff before January.