Haskell UM Rankings

About

The goal here is to write a fast Universal Machine in Haskell. This is an interesting problem for a pure, functional language, as the obvious implementations strongly encourage mutable state, and mutable arrays. Here we present a table of comparative Haskell UM speed, using the sandmark benchmark. The full spec for this problem is available here.


UM SandmarkRatio
edwardk (C)    53.89s   1.0
Malfunctional Programmer 2 (C)    58.48s   1.1
SamB (C)    61.15s   1.1
LemonLime (C)*    72.24s   1.3
Malfunctional Programmer (C)*    74.65s   1.4
UUST 1 (C)*    75.45s   1.4
Duncomloolump (C++)*    82.50s   1.5
Team Roflcopter (C)*    85.71s   1.6
Lazy Bottoms (C++)*    92.24s   1.7
DFT++ Hackers (C++)*   118.76s   2.2
dons   216.52s   4.0
sjanssen   240.58s   4.5
int-e 3   311.63s   5.8
int-e 2   345.59s   6.4
int-e   405.73s   7.5
um.um (a um running on top of edwardk) 1421.75s 26.4
deaus-ex-machina* 1440.32s 26.7
SamB 1857.59s 34.5
UUST 2* 3436.39s 63.8
Team Roflcopter 3757.70s 69.7

All benchmarks run with ghc 6.5, gcc 4.0.3, on a 3.20GHz Pentium 4.

*Actual UM used in the icfp06 contest