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 a cross-cutting theme, with strong links to the ENDS, FATA, and Computer Vision research groups.
- Parallel Language Design and Implementation, e.g. GpH, HdpH, Lino, Vector Pascal
- Heterogeneous Architectures, e.g. exploiting FPGAs,
- Parallel Hardware
- Reasoning about Concurrency, e.g. Session Types,
- Parallel and Distributed Functional Programming, e.g.
Erlang, GpH, HdpH
- Parallelising Interesting Applications, e.g. Robot Vision, Computer Algebra, Weather Simulations
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
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
Past GPG seminars
|Date & Location
Projects and Activities
The group is engaged in a wide range of research projects
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.
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 - 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.
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
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.
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.