Difference between revisions of "Benchmarks Game"
Jump to navigation
Jump to search
(Added link to the Performance/GHC page of the wiki - this was a useful page for me.) |
(Note of new GHC 6.8 version availability.) |
||
Line 3: | Line 3: | ||
== Submitting guide == |
== Submitting guide == |
||
− | Now that GHC 6. |
+ | Now that GHC 6.8 is installed on the Shootout servers, please make full use of it!<!-- Update when 6.10 is installed. --> There is an immediate need for a complete revamp of all the entries to fix and optimise them for this version of GHC. Please pick a program and contribute! |
+ | |||
+ | GHC 6.6 gave the option of using: |
||
* [http://haskell.org/ghc/docs/latest/html/libraries/base/Data-ByteString.html Data.ByteString] |
* [http://haskell.org/ghc/docs/latest/html/libraries/base/Data-ByteString.html Data.ByteString] |
||
* [http://haskell.org/ghc/docs/latest/html/libraries/regex-posix/Text-Regex-Posix-ByteString.html Text.Regex.*] |
* [http://haskell.org/ghc/docs/latest/html/libraries/regex-posix/Text-Regex-Posix-ByteString.html Text.Regex.*] |
Revision as of 20:19, 19 January 2008
This is for entries to The Great Language Shootout.
Submitting guide
Now that GHC 6.8 is installed on the Shootout servers, please make full use of it! There is an immediate need for a complete revamp of all the entries to fix and optimise them for this version of GHC. Please pick a program and contribute!
GHC 6.6 gave the option of using:
which should greatly improve clarity and brevity. Line count is not significant now (code is gzipped to determine size), so aim for maximum clarity.
Suggested best practices for submitting an entry to the shootout include:
- Posting the proposed code to the community to allow for a best of breed entry. Proposed code is here on the wiki and often in the Haskell-cafe mailing list. This has already helped improve the submitted code.
- Provide complete performance measurements against the current best entry.
- Creating clean, functional-style code or fast, imperative-style code. There are multiple versions ("GHC", "GHC#2", "GHC#3", "GHC#4") of GHC codes on many of the benchmarks with no clear rational for the different versions. It'd be better to have entries for "GHC" be clean, short, functional code and entries for "GHC-#2" be fastest, probably-ugliest code.
- When you submit via the trac system, record in the wiki section for that entry a link to the submission.
- Check for gzip file size before you submit -- lots of points to be had there.
- Try different compile options and the other ideas on the Performance/GHC page.
--
-- The Great Computer Language Shootout, http://shootout.alioth.debian.org/
-- Haskell Shootout entries, http://haskell.org/haskellwiki/Great_language_shootout
--
-- Simon Marlow
-- Shortened by Don Stewart
--
Results
Haskell results for all benchmarks: Gentoo/P4 and Debian/AMD Sempron
Current benchmarks
- /Fannkuch - for Gentoo/P4, Debian/AMD Sempron
- /Fasta - for Gentoo/P4, Debian/AMD Sempron
- /Mandelbrot - for Gentoo/P4 , Debian/AMD Sempron
- /Nbody - for Gentoo/P4 , Debian/AMD Sempron
- /Nsieve - for Gentoo/P4, Debian/AMD Sempron
- /Pidigits - for Gentoo/P4 , Debian/AMD Sempron
- /Random - for Gentoo/P4, Debian/AMD Sempron
- /Spectral - for Gentoo/P4, Debian/AMD Sempron
- /SumFile - for Gentoo/P4, Debian/AMD Sempron
Todo
The current benchmarks can highlight weak spots in libraries and compilers that need improving. Some things noticed included:
- hashtable performance is poor. A simple binding to a basic C hashtable would be very useful
- it would be nice to have tre regexes in the core libs (instead of POSIX ones)
Obsolete benchmarks
- /Takfp - for Gentoo/P4, Debian/AMD Sempron
- /Ack - for Gentoo/P4, Debian/AMD Sempron
- /Harmonic - for Gentoo/P4 , Debian/AMD Sempron