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
and many-core machines, Clouds,
High-Performance Computers (HPC), and other platforms.
Specific research interests are as follows.
Within the School of Computing Science, GPG is one of the research groups in the Glasgow Systems Section (GLASS).
- Parallel Language Design and Implementation, e.g. Lift, GpH, HdpH
- Heterogeneous Architectures, e.g. exploiting FPGAs,
- Parallel Hardware
- Reasoning about Concurrency, e.g. Session Types, Model Checking
- Edge Computing
- Resource Management
- Machine Learning on Low Power Devices
- Parallel and Distributed Functional Programming, e.g.
Erlang, Lift, GpH, HdpH
- Parallelising Interesting Applications, e.g. Robot Vision, Computer Algebra, Weather Simulations
- Parallel Combinatorial Search, e.g. YewPar
We have a strong collaboration on parallel language engineering with the Heriot-Watt Dependable Systems Group (DSG).
Members and Mailing List
Announcements are made on the GPG mailing list:
If you would like to subscribe to the list, please email
Meetings and Seminars
Most seminars are Glasgow Systems Section (GLASS) events. Some of the Programming Languages at University of Glasgow (PLUG) Seminars are also of interest.
Projects and Activities
The group is engaged in a wide range of research projects
A major activity for several GPG members is as part of a consortium of Scottish Computing Schools that are organising a major international parallelism conference: Euro-Par'22, to be hosted at the University of Glasgow.
Most of the research projects below are funded by national or international research
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.
- STARDUST: Session
Types for Reliable Distributed Systems is an EPSRC Project
(EP/T014628) that seeks to combine the strengths of session types and
actor languages (Erlang and Scala/Akka) to develop a well-founded
theory of reliable actor programming. Key aims are to deliver tools
that provide lightweight support for developers, e.g. warn of
potential issues, and to allow developers to continue to use
established idioms. In partnership with Imperial College London and
the University of Kent. September 2020 - August 2024.
- BEST: Better Smart Campus Sensor Technologies explores the capabilities of tierless programming languages (Clean iTasks and mTasks) Radboud Computing Science for the University of Glasgow Smart Campus. June 2019 - July 2020.
Bonseyes is an European Union's Horizon 2020 project (grant agreement No 732204) that addresses Artificial Intelligence for Edge Devices. December 2016 - January 2020.
is the Manycore Research, Innovation and
Opportunities Network funded by the EPSRC (EP/P006434).
Our aim is to enhance the capability of the UK manycore research
community through focused engagement of academic and industrial researchers.
Border Patrol is an EPSRC project (EP/N028201) that addresses hardware and software cyber security concerns. Joint with Imperial College and Heriot-Watt Universities and EDF, ABB and Xilinx. February 2017 - January 2022.
The FRUIT project, chaired by Jeremy Singer, is based on this hypothesis: "Massive aggregation of low-cost, low-power, commodity infrastructure can form an efficient and effective compute fabric for key distributed applications." The participating institutions and external collaborators will build a distributed UK-wide federated testbed of lightweight compute nodes capable of exploring the research issues that arise from such a dynamic infrastructure. The aim is to demonstrate how resource-constrained micro-data centres can be harnessed as generic platforms to run virtualised, network-wide services in a resource-efficient and still high-performing manner, and enable the 'as-a-Service' paradigm over low-cost low-power federated infrastructures.
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
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.
Adaptive JIT-based Parallelism (AJITPar)
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
dynamic trace-based Just-In-Time (JIT)
compilation. October 2013 - April 2017.
From Data Types to Session Types: A Basis for Concurrency and Distribution (EPSRC EP/K034413/1) June 2013 - October 2019. Simon Gay (Glasgow), Philip Wadler (Edinburgh), and Nobuko Yoshida (Imperial).
RSE/SE Enterprise Fellowship: Commercialising work in the space of health monitoring and personalsed care while protecting privacy in generated data.
Long Term Research Projects
These are long running research activities funded from a range of sources.
Lift is a project aiming to achieve performance portability across modern parallel architectures. The Lift compiler transforms a program expressed in the high-level Lift programming language into optimised low-level OpenCL code. In this transformation optimisations are automatically explored using a set of rewrite rules. Lift is open source software available on GitHub. Lift has been described in multiple research publications. Lift is actively developed by a research team including multiple PhD students based in Scotland and Germany.
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 built YewPar, software
aimed at providing general-purpose, distributed memory, parallel skeletons for combinatorial search problems, e.g. finding the largest clique in a graph.
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.
The group engages in a wide range of parallelism research
activities, including the following.
The group has access to a wide range of architectures. We
have access to national capability-class HPC resources like
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
- A 64-core AMD 1.8GHz, 512GB, 7+TB Raid Array,
- 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 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.