Usage
Yadmark mimics the same inputs needed to run yadism, namely a theory card, an observable card and also the name of a pdf set.
Both the theory and observable card can be gnerated authomatically from a default:
the former with banana, the latter with something similar to generate_observable() provided sandbox.py.
In addition to run yadmark you need to specify the external program you would benchmark against.
To do so, you will have to initialise a class of type yadmark.benchmark.runner.
In the following section we describe some available runners which are the most useful example.
The minimal setup of the input cards must contain:
Name |
Type |
default |
description |
|---|---|---|---|
|
[required] |
order of perturbation theory: |
Name |
Type |
default |
description |
|---|---|---|---|
|
[required] |
lsit of SF to be evaluated a the corresponding (x, Q2) ex.: |
|
|
|
[required] |
the interpolation grid |
|
[required] |
polynomial degree of the interpolating function |
|
|
[required] |
use logarithmic interpolation? |
|
|
[required] |
DIS current: |
|
|
[required] |
DIS projectile |
The output of yadmark will be stored in data/benchmark.db inside a Pandas.DataFrame table.
You can then use the navigator app to inspect your database.
Available Runners
In benchmarks/runners we provide a list of established benchmarks
sandbox.py:it is used to provide the boilerplate needed for a basic run, in order to make a quick run for debugging purpose, but still fully managed and registered by the yadmark machinery and then available in the navigator
apfel_bench.py:qcdnum_bench.py:xspace_bench_bench.py:it is used by the corresponding workflow to run the established benchmarks against xspace-bench. The complete run of this script will benchmark yadism against all the compatible xspace-bench features.
the necessary python bindings are provided by us externally
apfelpy_bench.py:
All of them are examples useful to understand how to use the yadmark package for benchmarking.