Philip Trinder - Academia.edu (original) (raw)

Papers by Philip Trinder

Research paper thumbnail of Grid-GUM: Haskell on Grids

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 ...

Research paper thumbnail of Costing JIT Traces

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 ...

Research paper thumbnail of Modelling Parallel Oracle for Performance Prediction

Research paper thumbnail of Design of an integrated query and manipulation notation for database languages

Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences, 1992

Research paper thumbnail of Low pain vs no pain multi-core Haskells

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 ...

Research paper thumbnail of Explaining Polymorphic Types

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.

Research paper thumbnail of Towards a Theory of Bulk Types

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 ...

Research paper thumbnail of An Object-Oriented Data Model Supporting Multi-Methods, Multiple Inheritance, and Static Type Checking: A Specification in Z

Research paper thumbnail of How do people check polymorphic types?

Research paper thumbnail of The Multi-Architecture Performance of the

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.

Research paper thumbnail of Towards Runtime System Level Fault Tolerance for a Distributed Functional Language

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

Research paper thumbnail of SymGrid: A Framework for Symbolic Computation on the Grid

Proceedings of the 13th International Euro Par Conference on Parallel Processing, 2007

Research paper thumbnail of Parallel Cost Centre Profiling

Research paper thumbnail of A query notation for dbpls

Research paper thumbnail of How Human-Like Are "Human-Like" Type Error Explanations?

Research paper thumbnail of Improved Type Error Reporting

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 ...

Research paper thumbnail of The HasPar Performance Evaluation Suite for GpH: a Parallel Non-Strict Functional Language

Research paper thumbnail of In G. Kadoda (Ed). Proc. PPIG 13 Pages 163-172 13

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.

Research paper thumbnail of Improving Polymorphic Type Error Reporting

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.

Research paper thumbnail of Architecture-aware cost modelling for parallel performance portability

Research paper thumbnail of Grid-GUM: Haskell on Grids

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 ...

Research paper thumbnail of Costing JIT Traces

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 ...

Research paper thumbnail of Modelling Parallel Oracle for Performance Prediction

Research paper thumbnail of Design of an integrated query and manipulation notation for database languages

Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences, 1992

Research paper thumbnail of Low pain vs no pain multi-core Haskells

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 ...

Research paper thumbnail of Explaining Polymorphic Types

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.

Research paper thumbnail of Towards a Theory of Bulk Types

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 ...

Research paper thumbnail of An Object-Oriented Data Model Supporting Multi-Methods, Multiple Inheritance, and Static Type Checking: A Specification in Z

Research paper thumbnail of How do people check polymorphic types?

Research paper thumbnail of The Multi-Architecture Performance of the

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.

Research paper thumbnail of Towards Runtime System Level Fault Tolerance for a Distributed Functional Language

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

Research paper thumbnail of SymGrid: A Framework for Symbolic Computation on the Grid

Proceedings of the 13th International Euro Par Conference on Parallel Processing, 2007

Research paper thumbnail of Parallel Cost Centre Profiling

Research paper thumbnail of A query notation for dbpls

Research paper thumbnail of How Human-Like Are "Human-Like" Type Error Explanations?

Research paper thumbnail of Improved Type Error Reporting

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 ...

Research paper thumbnail of The HasPar Performance Evaluation Suite for GpH: a Parallel Non-Strict Functional Language

Research paper thumbnail of In G. Kadoda (Ed). Proc. PPIG 13 Pages 163-172 13

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.

Research paper thumbnail of Improving Polymorphic Type Error Reporting

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.

Research paper thumbnail of Architecture-aware cost modelling for parallel performance portability