cpbenchy run instances/ -s ortools --rules pb26- Version
- cpbenchy 0.1.0.dev0
- Last updated
- 6 Oct 2026 · 1 commit
- Authors
- ThomSerg
- Formats
- opb
- Homepage
- www.cril.univ-artois.fr/PB26/
- Tags
- pseudo-booleancompetition2026
What it does
Runs your experiment the way the Pseudo-Boolean Competition 2026 runs the sequential tracks without proof logging (DEC-LIN, OPT-LIN, …): its limits, how runs are stopped, and its output. Results record that they followed these rules, or that you changed them.
| Wall time | CPU time | Memory | Cores | At the limit | Output |
|---|---|---|---|---|---|
| 1 h | 1 h | 31 GB | 1 | SIGTERM, SIGKILL 1 s later | PBOutput |
Use it
import cpbenchy
cpbenchy.run("instances/", solvers=["ortools", "exact"], rules="pb26")
cpbenchy.run("instances/", solvers=["ortools"], rules="pb26", mem_limit_mib=8192, args=["--scale", "0.05"]) # a quick trycpbenchy run instances/ -s ortools -s exact --rules pb26
cpbenchy run instances/ -s ortools --rules pb26 --scale 0.05 -m 8192 # a quick try: a twentieth of the time, 8 GiBThe memory limit is the competition’s. On a machine with less memory, give a lower one with -m: the runs then record the rules as modified.
To enter the competition, build a submission with these rules: cpbenchy submission.
Notes
The numbers come from the competition’s own documents, cited in the file. Competitions change their rules from year to year: check the file against the competition’s call before you rely on it, and add the next edition as a new file. Rules explains the format.
Implementation
The file src/cpbenchy/rules/pb26.toml, 19 lines, as of this version of the docs.
name = "pb26"
description = "Pseudo-Boolean Competition 2026, sequential tracks (DEC-LIN, OPT-LIN, ...), without proof logging"
url = "https://www.cril.univ-artois.fr/PB26/"
# 1 h CPU time and 31 GB per job (PB26 page). SIGTERM, then SIGKILL one second later, as in the
# requirements of earlier editions (https://www.cril.univ-artois.fr/PB24/competitionRequirements.pdf).
[settings]
cpu-time-limit = 3600 # 1 hour of CPU time
time-limit = 3600 # the rules give no wall clock limit, and cpbenchy needs one
mem-limit = 31744 # 31 GB, read as GiB
cores = 1
terminate = true
grace = 1
plugins = ["cpbenchy.observers:PBOutput"]
# How the competition calls a solver: a command line of your choice, with these placeholders
# (`cpbenchy submission` builds a launcher that takes them, in this order). TIMELIMIT is CPU time.
[interface]
arguments = ["BENCHNAME", "RANDOMSEED", "TIMELIMIT", "MEMLIMIT", "NBCORE", "TMPDIR"]