Build/test Status:
See hsbencher.cabal for a general overview. Here are a few useful facts:
hsbencher
package is for describing benchmark configuration spaces, launching jobs, and collecting data for themBuildMethod
.hsbencher-fusion
and hsbencher-codespeed
provide additional backends for uploading benchmark data to network destinations.Below we describe some of the rules benchmarks must follow. But you will find much more general documentation on the project's Wiki.
Benchmarks using any BuildMethod, including BuildMethods added by the end user obey the following conventions:
Timing -- complete process runtime is used by default, this can be
overridden by having the benchmark print out a line such as
SELFTIMED 3.3
on stdout , which would indicate a 3.3 second runtime.
Coming soon -- compile time timing and multi-phase timing (e.g. for Accelerate)
"shortrun" -- all benchmarks should run and do SOMETHING even if
given no runtime arguments. The convention is for quick tests
(correctness, not performance) to run in this way. HSBencher
supports a --shortrun
mode that enables this. Note that it still
passes in environment variables and "parameters", it elides only
the cmdargs
field of the Benchmark
record.
make
should build the benchmark.make run
should run the benchmarkmake COMPILE_ARGS='...'
make run RUN_ARGS='...'
cabal install
or
cabal-dev install
is invoked.+RTS -RTS
yourself)ghc --make
on the target file; any
include directories beyond the one containing the target file must
be added explicitly (as CompileParam's)+RTS -RTS
yourself)