NoSlow-0.2: NoSlow.cabal
Name: NoSlow
Version: 0.2
License: BSD3
License-File: LICENSE
Author: Roman Leshchinskiy <rl@cse.unsw.edu.au>
Maintainer: Roman Leshchinskiy <rl@cse.unsw.edu.au>
Copyright: Roman Leshchinskiy 2009-10
Homepage: http://code.haskell.org/NoSlow
Category: Development, Profiling
Synopsis: Microbenchmarks for various array libraries
Description:
.
NoSlow is a benchmark suite for several Haskell array libraries:
standard lists, primitive sequential arrays from the DPH project,
uvector, vector (primitive, storable and boxed arrays) and
storablevector. At the moment, it implements a bunch of fairly random
loop micro-kernels and a couple of small array algorithms. It will
include many more benchmarks in the future.
.
In its present state, NoSlow /cannot/ be used to reliably compare the
performance of the benchmarked libraries. It can be quite helpful for
identifying cases where a closer inspection of the generated code
might be warranted, however.
.
The package builds two binaries: @noslow@ and @noslow-table@.
.
[@noslow -o log@] runs the benchmarks and writes the results to 'log'
.
[@noslow-table log -o table.html --html@] outputs the results from
@log@ as a HTML table.
.
[@noslow-table log -o table.html --raw --csv@] outputs the results
from @log@ as a CSV file suitable for importing into spreadsheets.
.
[@noslow-table --diff log1 log2@ -o table.html@] produces a table
comparing the results from 'log1' and 'log2' (2 means the first run was
2x slower than the second; 0.5 means 2x faster).
.
[@noslow-table --help@] lists additional options.
.
NoSlow is described in more detail here:
<http://unlines.wordpress.com/2009/11/27/noslow/>.
.
Changes since version 0.1
.
* Renamed and reorganised loop kernels
.
* Several small array algorithms organised in the new
benchmark category @mini@
.
* More reliable benchmark execution
.
* Support for producing CSV files
.
Build-Type: Simple
Cabal-Version: >= 1.2
Flag dph-prim-seq
Flag vector
Flag uvector
Flag storablevector
Executable noslow
Main-Is: NoSlow/Main.hs
Build-Depends:
base >= 3 && < 5,
array,
template-haskell,
criterion >= 0.4 && < 0.5
Extensions:
MultiParamTypeClasses,
FlexibleInstances
if flag(dph-prim-seq)
build-depends: dph-prim-seq, dph-base
cpp-options: -DUSE_DPH_PRIM_SEQ
if flag(vector)
build-depends: vector >= 0.5
cpp-options: -DUSE_VECTOR
if flag(uvector)
build-depends: uvector >= 0.1
cpp-options: -DUSE_UVECTOR
if flag(storablevector)
build-depends: storablevector >= 0.2
cpp-options: -DUSE_STORABLEVECTOR
Ghc-Options:
-O2
Other-Modules:
NoSlow.Backend.DPH.Prim.Seq
NoSlow.Backend.Interface
NoSlow.Backend.List
NoSlow.Backend.StorableVector
NoSlow.Backend.TH
NoSlow.Backend.Uvector
NoSlow.Backend.Vector.Primitive
NoSlow.Backend.Vector.Storable
NoSlow.Backend.Vector.Unboxed
NoSlow.Backend.Vector
NoSlow.Main.TH
NoSlow.Main.Tree
NoSlow.Main.Util
NoSlow.Micro.Kernels
NoSlow.Micro.DPH.Prim.Seq.Double
NoSlow.Micro.DPH.Prim.Seq
NoSlow.Micro.List.Double
NoSlow.Micro.List
NoSlow.Micro.StorableVector.Double
NoSlow.Micro.StorableVector
NoSlow.Micro.Uvector.Double
NoSlow.Micro.Uvector
NoSlow.Micro.Vector.Boxed.Double
NoSlow.Micro.Vector.Boxed
NoSlow.Micro.Vector.Primitive.Double
NoSlow.Micro.Vector.Primitive
NoSlow.Micro.Vector.Storable.Double
NoSlow.Micro.Vector.Storable
NoSlow.Micro.Vector.Unboxed
NoSlow.Micro.Vector.Unboxed.Double
NoSlow.Micro.Vector.Unsafe.Unboxed
NoSlow.Micro.Vector.Unsafe.Unboxed.Double
NoSlow.Micro.Vector.Unsafe.Primitive
NoSlow.Micro.Vector.Unsafe.Primitive.Double
NoSlow.Micro.Vector.Unsafe.Storable
NoSlow.Micro.Vector.Unsafe.Storable.Double
NoSlow.Micro.Vector.Unsafe.Boxed
NoSlow.Micro.Vector.Unsafe.Boxed.Double
NoSlow.Mini.Kernels
NoSlow.Mini.DPH.Prim.Seq
NoSlow.Mini.List
NoSlow.Mini.StorableVector
NoSlow.Mini.Uvector
NoSlow.Mini.Vector.Boxed
NoSlow.Mini.Vector.Primitive
NoSlow.Mini.Vector.Storable
NoSlow.Mini.Vector.Unboxed
NoSlow.Mini.Vector.Unsafe.Unboxed
NoSlow.Mini.Vector.Unsafe.Primitive
NoSlow.Mini.Vector.Unsafe.Storable
NoSlow.Mini.Vector.Unsafe.Boxed
NoSlow.Util.Base
NoSlow.Util.Computation
NoSlow.Util.Tag
NoSlow.Util.Opts
Executable noslow-table
Main-Is: NoSlow/Analyse/Main.hs
Build-Depends:
base >= 3 && < 5,
containers,
criterion >=0.2,
statistics >= 0.3.5 && < 4
Other-Modules:
NoSlow.Analyse.Table