Skip to main content
Kent Academic Repository

Benchmarking Implementations of Functional Languages with `Pseudoknot', a Float-Intensive Benchmark

Hartel, Pieter H., Feeley, Marc, Jones, Richard E., Thomas, Stephen P. (1996) Benchmarking Implementations of Functional Languages with `Pseudoknot', a Float-Intensive Benchmark. Journal of Functional Programming, 6 (4). pp. 621-655. ISSN 0956--7968. (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided) (KAR id:21356)

The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided.

Abstract

Over 25 implementations of different functional languages are benchmarked using the same program, a floating-point intensive application taken from molecular biology. The principal aspects studied are compile time and execution time for the various implementations that were benchmarked. An important consideration is how the program can be modified and tuned to obtain maximal performance on each language implementation. With few exceptions, the compilers take a significant amount of time to compile this program, though most compilers were faster than the then current GNU C compiler (GCC version 2.5.8). Compilers that generate C or Lisp are often slower than those that generate native code directly: the cost of compiling the intermediate form is normally a large fraction of the total compilation time. There is no clear distinction between the runtime performance of eager and lazy implementations when appropriate annotations are used: lazy implementations have clearly come of age when it comes to implementing largely strict applications, such as the Pseudoknot program. The speed of C can be approached by some implementations, but to achieve this performance, special measures such as strictness annotations are required by non-strict implementations. The benchmark results have to be interpreted with care. Firstly, a benchmark based on a single program cannot cover a wide spectrum of `typical' applications. Secondly, the compilers vary in the kind and level of optimisations offered, so the effort required to obtain an optimal version of the program is similarly varied.

Item Type: Article
Uncontrolled keywords: functional programming
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Richard Jones
Date Deposited: 27 Aug 2009 19:53 UTC
Last Modified: 16 Nov 2021 09:59 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/21356 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.