Research Perspectives - Tools for Visualisation of Portfolios
EPSRC logo

EPSRC Database

Source RCUK EPSRC Data

EP/L000687/1 - Adaptive Just-In-Time Parallelisation (AJITPar)

Research Perspectives grant details from EPSRC portfolio

Professor P Trinder EP/L000687/1 - Adaptive Just-In-Time Parallelisation (AJITPar)

Principal Investigator - School of Computing Science, University of Glasgow


Standard Research

Research Areas

Architecture and Operating Systems Architecture and Operating Systems

Programming Languages and Compilers Programming Languages and Compilers

Start Date


End Date




Similar Grants

Automatic generation of similar EPSRC grants

Similar Topics

Topic similar to the description of this grant

Grant Description

Summary and Description of the grant

A key element of the multicore software crisis is a lack of abstraction: most parallel code mixes coordination and computation, and assumptions about the architecture are often hard-coded, tying the code to a specific architecture. For problems with regular parallelism, i.e. where the number and size of subproblems can be statically predicted, good parallel performance on an architecture can be obtained using static techniques including static compilation. However, many problems are irregular and require dynamic techniques such as we propose.

This project aims to address the challenges of programs with irregular parallelism by sharing the burden of parallel coordination between the programmer and an adaptive runtime system. The approach can be summarised in the slogan "The programmer knows the problem, the runtime knows the hardware." That is, the programmer merely exposes the parallelism in the problem domain by means of architecture-independent declarative constructs, and the runtime system decides how to map the parallelism to a specific architecture. The project aims for a framework combining portable parallel performance across a range of architectures with "compile once, run anywhere" portable binaries. The project will test whether portable performance has been achieved by comparing the parallel performance of a suite benchmarks on several parallel architectures, from standard desktop workstations to high-end compute clusters.

The proposed research will advance the state-of-the-art in two areas.
(1) The development of runtime systems that tightly integrate dynamic scheduling of parallelism with dynamic trace-based just-in-time (JIT) compilation.
(2) The systematic investigation into how to specialise architecture-independent declarative parallelism to a specific architecture at runtime by means of declarative and modular code transformations.
Crucially, both novelties need to be combined; neither can deliver portable parallel performance on its own. The parallelising JIT runtime system may not find the "right" amount of parallelism without dynamically applying code transformations, and the transformations cannot in general be applied statically because they require knowledge of runtime timing data.

The research is timely in exploiting emergent trace-based JIT technology. Moreover, the project has enormous transformative potential. It investigates JIT parallelisation using Haskell because its pure functional context enables safe code transformation. If successful, however, the techniques established can be used to transform the parallel portability of software in many programming languages with JIT compilers, not least "functional second" languages like JavaScript, Python, Scala and C#. Moreover, a JIT compiler's innate ability to optimise traces spanning several layers of the software stack enables a parallelising JIT runtime to exploit potential parallelism uniformly across all software layers and components.

JIT compilers for languages like Java or JavaScript have spread widely in recent years, being deployed on a wide variety of architectures, from smart phones to desktop computers to web servers. Because of its transformative potential, the design and implementation of a parallelising JIT compiler for Haskell will be followed with interest by implementers of parallel languages in the UK and abroad, both academic and in industry, e.g. at Microsoft, Google, Mozilla.

This speculative project will be undertaken by an experienced and energetic team in a vibrant environment. The team will be led by Professor Phil Trinder, who has 20 year's experience in the field, delivering 13 successful research projects, and with over 100 publications. Dr. Maier contributes deep knowledge of parallel language implementation and program analysis.

Structured Data / Microdata

Grant Event Details:
Name: Adaptive Just-In-Time Parallelisation (AJITPar) - EP/L000687/1
Start Date: 2013-10-01T00:00:00+00:00
End Date: 2016-09-30T00:00:00+00:00

Organization: University of Glasgow

Description: A key element of the multicore software crisis is a lack of abstraction: most parallel code mixes coordination and computation, and assumptions about the architecture are often hard-coded, tying the code to a specific architecture. For problems with regula ...