NDP benchmarks
==============
This directory contains several NDP benchmarks:
concomp - connected components in undirected graphs
dotp - dot product of two vectors
primes - sieve of Eratosthenes
smvm - sparse matrix/vector multiplication
Options
-------
The following options are common to all benchmarks:
--runs=N Repeat each benchmark N times
-r N
--threads=N Use N threads
-t N
--seq=N Simulate N threads
-s N
--algo=ALGORITHM Use the specified algorithm (if the benchmark
-a ALGORITHM implements multiple algorithms)
--verbose=N Set the verbosity level
-v N
--help Show a help screen
Running benchmarks
------------------
For parallel benchmarks, you usually want to use
benchmark --threads= --runs= +RTS -N
Here, N is the number of threads to use and R the number of times the
benchmark should be repeated (you probably want something between 3 and 10).
The output will look as follows:
....: wall_best/cpu_best wall_avg/cpu_avg wall_worst/cpu_worst
Here, wall_{best|avg|worst} is the best, average and worst wall-clock time,
respectively; cpu_{best|avg|worst} is the CPU time. Note that for parallel
benchmarks on a multiprocessor, the wall-clock time will typically decrease
with more threads whereas the CPU time will slightly increase.
For sequential benchmarks, the number of threads does not have to be
specified, i.e., --threads and +RTS -N can be omitted.
At higher verbosity levels, more information (in particular, the timings of
the individual runs) will be displayed.