prun [MODE] [PRUN_OPTIONS] [PROG_OPTIONS]
or
prun [-mode MODE] [PRUN_OPTIONS] -args “[PROG_OPTIONS]”
If not specified, the MODE is set to “default”. Other valid modes include the speedup
mode.
Remark The later form with the explicity -args
should be used if you want stability through updates of pbench that may add new options.
The benchmark-run tool is a program that takes a specification of a set of runs of a given program, issues the specified runs to the system, and collects the output of the runs in a textual format. The tool relies on a certain formatting to be followed by the program that is specified to be run. The exact format is described below. The result of every run is recorded in the folder _results/
.
The benchmark-run options selects the behavior of the program that collects data on benchmark runs of a specified program. The PRUN_OPTIONS can be zero or more of the following:
-mode
MODEdefault
or speedup
. Defaults to default
.
--verbose
--virtual
--dummy
-runs
n-timeout
t-output
f-attempts
n-args
PROG_OPTIONS--normal
--append
--complete
-runs
).
--replace
-runs
).
-output-mode [normal|append|complete|replace]
The program options PRUN_OPTIONS defines the behavior of the programs to be run by the tool. A program run is specified by a string of program options, which should be in the form, e.g.:
prog1,prog2 -n 34,35 -m 3.2,4.5
or
-prog prog1,prog2 -n 34,35 -m 3.2,4.5
The cross product of all comma separated values is considered by the prun
tool.
Remark The later form with the explicit -prog
should be used if you want stability through updates of pbench that may add new options.
Limitation If your program expects arguments whose name conflicts with some of the names reserved by prun
, such as -prog
or -timeout
or run
, you will need to either change these names or set up a wrapper script around your program to rename the argument on the fly.
The following commands specify an experiment on the Fibonacci program. In the experiment, the program is run on two inputs, namely 39 and 40. Two algorithms are considered by the experiment, namely recursive
and cached
versions. For each distinct configuration, two runs are performed by the experiment.
make prun
make -C examples/basic fib
prun -prog examples/basic/fib -algo recursive,cached -n 39,40 -runs 2
The following command specifies an experiment where a program is run multiple times varying number of processors. The run where zero is passed as the number of processors by convention indicates a run of the sequential program which is used to get the baseline run time.
prun -prog examples/others/speedup.sh -proc 0,1,2,3,4
The following command adds an extra dimension to the speedup experiment: in this case, the program under consideration is run using two alternative algorithms.
prun -prog examples/others/speedup.sh -proc 0,1,2,3,4 -algo foo,bar
The speedup mode is to be used for preparing data for pplot speedup
.
prun speedup [PRUN_OPTIONS] [-baseline COMMAND] [-parallel COMMAND] -args “[PROG_OPTIONS]”
where COMMAND includes the name of a binary possibly with arguments.
-baseline
“[COMMAND]”-parallel
“[PROG_OPTIONS]”-args
“[PROG_OPTIONS]”-proc
proc1,proc2,…,procN-baseline-runs
n-baseline-timeout n
make prun
prun speedup -baseline "examples/others/speedup.sh -algo foo -proc 0" -baseline-runs 1 -parallel "examples/others/speedup.sh -algo bar -proc 1,2,3,4" -runs 2