[Haskell-cafe] Re: Haskell performance in heavy numerical
computations
Simon Marlow
simonmarhaskell at gmail.com
Mon Jul 10 05:12:13 EDT 2006
Bulat Ziganshin wrote:
> numerical speed is poor in ghc 6.4, according to my tests. it's 10-20
> times worse than of gcc. afair, the mandelbrot benchmark of Great
> Language Shootout proves this - despite all optimization attempts,
> GHC entry is still 5-10 times slower than gcc/ocaml/clean ones
We average 1.3x slower than C in the shootout. Thanks to Don Stewart for
the following stats...
The numerical floating-point-intensive benchmarks:
mandelbrot 2.7x C (Clean 1.7x, OCaml 2.4x, C++ 2.6x)
n-body 2.1x C (Clean 0.9x, OCaml 1.3x, C++ 1.4x)
http://shootout.alioth.debian.org/gp4/benchmark.php?test=mandelbrot&lang=all
http://shootout.alioth.debian.org/gp4/benchmark.php?test=nbody&lang=all
So we're still only 2-3 times slower than C on these benchmarks, and we
know how to improve them.
In other cases, for example some integer/floating math, we beat GCC:
partial-sums:
http://shootout.alioth.debian.org/gp4/benchmark.php?test=partialsums&lang=all
The full list, Haskell vs. C:
0.1x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=chameneos&lang=all
0.1x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=message&lang=all
0.1x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=regexdna&lang=all
0.5x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=binarytrees&lang=all
0.7x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=nsieve&lang=all
0.9x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=nsievebits&lang=all
0.9x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=partialsums&lang=all
1.3x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=recursive&lang=all
1.6x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=pidigits&lang=all
1.8x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=fasta&lang=all
1.8x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=nbody&lang=all
2.3x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=spectralnorm&lang=all
* 2.5x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=sumcol&lang=all
2.7x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=mandelbrot&lang=all
* 3.2x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=fannkuch&lang=all
* 11.0x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=revcomp&lang=all
* 22.0x C
http://shootout.alioth.debian.org/gp4/benchmark.php?test=knucleotide&lang=all
* Known, or expected, to improve under Data.ByteString
Cheers,
Simon
More information about the Haskell-Cafe
mailing list