EPSRC Reference: |
GR/H78801/01 |
Title: |
DECLARATIVE SYSTEMS ARCHITECTURE:A QUANTITATIVE APPROACH |
Principal Investigator: |
Peyton Jones, Professor L |
Other Investigators: |
|
Researcher Co-Investigators: |
|
Project Partners: |
|
Department: |
School of Computing Science |
Organisation: |
University of Glasgow |
Scheme: |
Standard Research (Pre-FEC) |
Starts: |
01 February 1993 |
Ends: |
31 October 1996 |
Value (£): |
247,310
|
EPSRC Research Topic Classifications: |
|
EPSRC Industrial Sector Classifications: |
|
Related Grants: |
|
Panel History: |
|
Summary on Grant Application Form |
Here is a simple idea that has changed the world of computer architecture: to obtain high performance, one must measure the behaviour of real programs, and make sure that the most common operations are performed at blinding speed - even if less common operations go a bit slower as a result. This common-sense insight is the breakthrough which launched the RISC revolution in computer architecture.Our objective is to apply this same quantitative approach to the implementation of lazy functional programming languages, such as Haskell, implemented on both sequential and parallel platforms. The runtime behaviour of such languages is particularly hard to predict, so detailed, quantitative measurements are particularly important.Progress: The Glasgow Haskell Compiler (GHC) is now stable, widely distributed, and generates code as good or better than any other compiler across a spectrum of programs. We have completed a time and space profiler for GHC, a critical tool for allowing programmers to improve their programs performance. The ability to profile time is unique. We published a paper about the profiler at POPL, 95. We have also developed lower-level profiling tools, which monitor in detail the frequency of a variety of events, and collect machine-instruction profiles. We have added concurrent threads to GHC, and integrated them with a simulation harness. The resulting system, GranSim, is a fast and faithful simulator for a distributed-memory parallel implementation of Haskell, and measure the effects of varying assumptions about bandwidth and latency on communication, granularity, and degree of parallelism. We are now in the throes of producing a second-generation multiprocessor version of GHC, which will initially run on top of PVM. This is being done in close collaboration with the PARADE project, also at Glasgow. We have published a detailed analysis of the behaviour of a strictness analyser. Surprisingly, given the literature on strictness analysis, this work seems almost unique. The compiler does compilation by transformation ; that is, as much as possible of the compilation process is expressed as automatic, correctness-preserving program transformations. We have made detailed measurements of the occurrence and effectiveness of these transformations, to be published as a PhD thesis. We have applied the quantitative approach to ourselves. For example, as a result of investigations guided by our measurements we have sped up the compiler itself (a very large Haskell program) by 40%. Similar investigations have led us directly to add new optimisations to the compiler or run-time system. We have developed, and are continuously expanding, a collection of benchmark programs in Haskell - the nofib suite, so called because it excludes the infamous 1line nf ib function. Many of the programs are real applications, rather than synthetic benchmarks.
|
Key Findings |
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
|
Potential use in non-academic contexts |
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
|
Impacts |
Description |
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk |
Summary |
|
Date Materialised |
|
|
Sectors submitted by the Researcher |
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
|
Project URL: |
|
Further Information: |
|
Organisation Website: |
http://www.gla.ac.uk |