Philip Trinder - Academia.edu (original) (raw)
Papers by Philip Trinder
Abstract: Computational Grids offer the potential to cheaply construct very large high-performanc... more Abstract: Computational Grids offer the potential to cheaply construct very large high-performance systems. This paper describes the motivation for, and initial implementation stages of, an adaption of the Glasgow parallel Haskell (GpH) functional language to the Grid. The adaption entails replacing the PVM communication libraries in the GUM implementation of GpH, first with MPI, and then with the Globus-enabled MPICH-G libraries. We compare the performance of 5 GpH programs of varying sizes and parallel paradigms ...
Tracing JIT compilation generates units of compilation that are easy to analyse and are known to ... more Tracing JIT compilation generates units of compilation that are easy to analyse and are known to execute frequently. The AJITPar project aims to investigate whether the information in JIT traces can be used to make better scheduling decisions or perform code transformations to adapt the code for a specific parallel architecture. To achieve this goal, a cost model must be developed to estimate the execution time of an individual trace. This paper presents the design and implementation of a system for extracting JIT trace information from the Pycket JIT compiler. We define three increasingly parametric cost models for Pycket traces. We perform a search of the cost model parameter space using genetic algorithms to identify the best weightings for those parameters. We test the accuracy of these cost models for predicting the cost of individual traces on a set of loop-based micro-benchmarks. We also compare the accuracy of the cost models for predicting whole program execution time over ...
Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences, 1992
Trends in Functional Programming (TFP 2009), Jun 9, 2009
Chapter 4 Low pain vs no pain multi-core Haskells Mustafa Aswad, Phil Trinder, Abyd Al Zain, Greg... more Chapter 4 Low pain vs no pain multi-core Haskells Mustafa Aswad, Phil Trinder, Abyd Al Zain, Greg Michaelson 1, Jost Berthold2 Abstract: Multi-cores are becoming the dominant processor technology and functional languages are theoretically well suited to exploit them. In practice, however, implementing effective high-level parallel functional languages is extremely challenging. This paper is the first programming and performance comparison of functional multi-core technologies and reports some of the first ever multi-core results for two ...
ABSTRACT Polymorphic types in programming languages facilitate code reuse, increase reliability a... more ABSTRACT Polymorphic types in programming languages facilitate code reuse, increase reliability and reduce semantic errors in programs. Hindley-Milner type inference forms a strong basis for checking polymorphic types but is less well suited to explaining them, as it introduces intermediate constructs that relate poorly to a programmer’s understanding of the program. We report an experiment into expert human type explanation and uncover a simple set of rules for human-like explanations. We present a type explanation system based on these rules rather than Hindley-Milner inference. The system uses a new ℋ inference algorithm to annotate types with explanations and is designed to produce succinct, non-repetitive explanations with minimal reference to artefacts of mechanized type inference.
Page 1. Towards a Theory of Bulk Types David A. Watt Phil Trinder Abstract A database programming... more Page 1. Towards a Theory of Bulk Types David A. Watt Phil Trinder Abstract A database programming language can model application domains most natu-rally if it supports several bulk types, eg, lists, sets, and relations. Indeed ...
ABSTRACT In principle, functional languages promise straightforward architecture-independent para... more ABSTRACT In principle, functional languages promise straightforward architecture-independent parallelism, because of their high level description of parallelism, dynamic management of parallelism and deterministic semantics. However, these language features come at the expense of a sophisticated compiler and/or runtime-system. The problem we address is whether such an elaborate system can deliver acceptable performance on a variety of parallel architectures. In particular we report performance measurements for the GUM runtime-system on eight parallel architectures, including massively parallel, distributed-memory, shared-memory and workstation networks.
Sfp, 2000
Distributed Fault Tolerance entails detecting errors, con fining the damage caused, recovery from... more Distributed Fault Tolerance entails detecting errors, con fining the damage caused, recovery from the errors, and providing continued service on a network of co-operating machines. Functional languages potentially offer bene- fits for distributed fault tolerance: many computations are pure, and hence have no side-effects to be reversed during error recovery. Moreo ver functional lan- guages have a high-level runtime system
Proceedings of the 13th International Euro Par Conference on Parallel Processing, 2007
Abstract. The error reports produced by compilers for languages with polymorphic type inference a... more Abstract. The error reports produced by compilers for languages with polymorphic type inference are often uninformative. Several attempts have been made to produce improved error reports. We dene a manifesto for good error reports and use it to evaluate both the traditional algorithms, and several improved algorithms, including two of our own devising. 1 Introduction Debugging type errors in programs written in polymorphic languages with type inference is hard [13, 7]. One reason is that much type information is implicit| inferred by ...
The behaviour of a" human-like" polymorphic type explanation system is analysed using t... more The behaviour of a" human-like" polymorphic type explanation system is analysed using the samecategories as those used to characterise human expert type explanation behaviour. The results suggestthat the computer system has a similar behaviour profile to that of a composite human expert.
The error reports produced by compilers for languages withpolymorphic type inference are often un... more The error reports produced by compilers for languages withpolymorphic type inference are often uninformative. Several attemptshave been made to produce improved error reports. We define a manifestofor good error reports and use it to evaluate both the traditionalalgorithms, and several improved algorithms, including two of our owndevising.
Abstract: Computational Grids offer the potential to cheaply construct very large high-performanc... more Abstract: Computational Grids offer the potential to cheaply construct very large high-performance systems. This paper describes the motivation for, and initial implementation stages of, an adaption of the Glasgow parallel Haskell (GpH) functional language to the Grid. The adaption entails replacing the PVM communication libraries in the GUM implementation of GpH, first with MPI, and then with the Globus-enabled MPICH-G libraries. We compare the performance of 5 GpH programs of varying sizes and parallel paradigms ...
Tracing JIT compilation generates units of compilation that are easy to analyse and are known to ... more Tracing JIT compilation generates units of compilation that are easy to analyse and are known to execute frequently. The AJITPar project aims to investigate whether the information in JIT traces can be used to make better scheduling decisions or perform code transformations to adapt the code for a specific parallel architecture. To achieve this goal, a cost model must be developed to estimate the execution time of an individual trace. This paper presents the design and implementation of a system for extracting JIT trace information from the Pycket JIT compiler. We define three increasingly parametric cost models for Pycket traces. We perform a search of the cost model parameter space using genetic algorithms to identify the best weightings for those parameters. We test the accuracy of these cost models for predicting the cost of individual traces on a set of loop-based micro-benchmarks. We also compare the accuracy of the cost models for predicting whole program execution time over ...
Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences, 1992
Trends in Functional Programming (TFP 2009), Jun 9, 2009
Chapter 4 Low pain vs no pain multi-core Haskells Mustafa Aswad, Phil Trinder, Abyd Al Zain, Greg... more Chapter 4 Low pain vs no pain multi-core Haskells Mustafa Aswad, Phil Trinder, Abyd Al Zain, Greg Michaelson 1, Jost Berthold2 Abstract: Multi-cores are becoming the dominant processor technology and functional languages are theoretically well suited to exploit them. In practice, however, implementing effective high-level parallel functional languages is extremely challenging. This paper is the first programming and performance comparison of functional multi-core technologies and reports some of the first ever multi-core results for two ...
ABSTRACT Polymorphic types in programming languages facilitate code reuse, increase reliability a... more ABSTRACT Polymorphic types in programming languages facilitate code reuse, increase reliability and reduce semantic errors in programs. Hindley-Milner type inference forms a strong basis for checking polymorphic types but is less well suited to explaining them, as it introduces intermediate constructs that relate poorly to a programmer’s understanding of the program. We report an experiment into expert human type explanation and uncover a simple set of rules for human-like explanations. We present a type explanation system based on these rules rather than Hindley-Milner inference. The system uses a new ℋ inference algorithm to annotate types with explanations and is designed to produce succinct, non-repetitive explanations with minimal reference to artefacts of mechanized type inference.
Page 1. Towards a Theory of Bulk Types David A. Watt Phil Trinder Abstract A database programming... more Page 1. Towards a Theory of Bulk Types David A. Watt Phil Trinder Abstract A database programming language can model application domains most natu-rally if it supports several bulk types, eg, lists, sets, and relations. Indeed ...
ABSTRACT In principle, functional languages promise straightforward architecture-independent para... more ABSTRACT In principle, functional languages promise straightforward architecture-independent parallelism, because of their high level description of parallelism, dynamic management of parallelism and deterministic semantics. However, these language features come at the expense of a sophisticated compiler and/or runtime-system. The problem we address is whether such an elaborate system can deliver acceptable performance on a variety of parallel architectures. In particular we report performance measurements for the GUM runtime-system on eight parallel architectures, including massively parallel, distributed-memory, shared-memory and workstation networks.
Sfp, 2000
Distributed Fault Tolerance entails detecting errors, con fining the damage caused, recovery from... more Distributed Fault Tolerance entails detecting errors, con fining the damage caused, recovery from the errors, and providing continued service on a network of co-operating machines. Functional languages potentially offer bene- fits for distributed fault tolerance: many computations are pure, and hence have no side-effects to be reversed during error recovery. Moreo ver functional lan- guages have a high-level runtime system
Proceedings of the 13th International Euro Par Conference on Parallel Processing, 2007
Abstract. The error reports produced by compilers for languages with polymorphic type inference a... more Abstract. The error reports produced by compilers for languages with polymorphic type inference are often uninformative. Several attempts have been made to produce improved error reports. We dene a manifesto for good error reports and use it to evaluate both the traditional algorithms, and several improved algorithms, including two of our own devising. 1 Introduction Debugging type errors in programs written in polymorphic languages with type inference is hard [13, 7]. One reason is that much type information is implicit| inferred by ...
The behaviour of a" human-like" polymorphic type explanation system is analysed using t... more The behaviour of a" human-like" polymorphic type explanation system is analysed using the samecategories as those used to characterise human expert type explanation behaviour. The results suggestthat the computer system has a similar behaviour profile to that of a composite human expert.
The error reports produced by compilers for languages withpolymorphic type inference are often un... more The error reports produced by compilers for languages withpolymorphic type inference are often uninformative. Several attemptshave been made to produce improved error reports. We define a manifestofor good error reports and use it to evaluate both the traditionalalgorithms, and several improved algorithms, including two of our owndevising.