Skip to main content

GBD Benchmark Database Tools: Maintenance of Benchmark Instances and their Attributes

Project description

GBD Benchmark Database

GBD Benchmark Database (GBD) is about bridging the gap between research on SAT algorithms and data science.

GBD has three interfaces:

  • command-line interface gbd
  • micro-services and website gbd-server
  • python interface gbd_core.api.GBD

GBD solves several problems

  • benchmark instance identification and identification of equivalence classes of benchmark instances (gbdhash, isohash, instance family, ...)
  • distribution of benchmark instances and benchmark meta-data
  • a simple query language to provide access to filtered sets of benchmark instances and instance features
  • initialization and maintenance of instance feature databases (meta.db, base.db, gate.db, ...)
  • transformation algorithms for benchmark instances such as instance sanitization or transformation of cnf to k-isp instances
  • keeping track of contexts (cnf, sanitized-cnf, k-isp, ...) and relations of instances between contexts

Programming Language

  • Python 3
  • SQLite

Installation

  • pip install gbd-tools

Configuration

  • fetch a database, e.g., https://benchmark-database.de/getdatabase/meta.db
  • export GBD_DB=[path/to/database1]:[path/to/database2:..] (and put it in your .bashrc)
  • test command-line interface with commands gbd info and gbd --help
  • test server with command gbd-server

GBD Python Interface

from gbd_core.api import GBD
with GBD(['path/to/database1', 'path/to/database2', ..] as gbd:
    df = gbd.query("family = hardware-bmc", resolve=['verified-result', 'runtime-kissat'])

GBD Server

This runs under https://benchmark-database.de/. The command is available in gbd-tools: gbd-server --help

GBD Command-Line Interface

gbd get

We assume https://benchmark-database.de/getdatabase/meta.db is in your gbd path GBD_DB.

Get list of benchmark instances in database:

gbd get

Get list of benchmark instances including some meta-data

gbd get -r result family

Filter for specific benchmark instances with gbd-query

gbd get "family = hardware-bmc" -r filename

gbd init

We assume you installed the python extension module gdbc which is part of https://github.com/sat-clique/cnftools.

All initialization routines can run in parallel and per-process ressource limits can be set. See gbd init --help for more info.

gbd init local

To initialize a database with local paths to your own benchmarks:

gbd -d my.db init local [path/to/benchmarks]

After that in my.db, the features local and filename exist and are associated with their corresponding gbd-hash:

gbd -d my.db get -r local filename

gbd init isohash

To identify isomorphic instances (approximately by the hash of the sorted degree-sequence of their graph representation):

gbd -d my.db init isohash

After that in my.db, instances can be grouped by their isohash:

gbd -d my.db get -r local filename -g isohash

gbd init base, gbd init gate

gbd -d my.db:base.db init --target_db base_db base

gbd -d my.db:gate.db init --target_db gate_db gate

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gbd_tools-4.4.0.tar.gz (997.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gbd_tools-4.4.0-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

Details for the file gbd_tools-4.4.0.tar.gz.

File metadata

  • Download URL: gbd_tools-4.4.0.tar.gz
  • Upload date:
  • Size: 997.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for gbd_tools-4.4.0.tar.gz
Algorithm Hash digest
SHA256 e695ad6c2d901bcf0c30f60210b03c2fcd84e7d28049c871a81b20970d2f5eef
MD5 fff774139dddb423ee582ccf6c039e03
BLAKE2b-256 d7db078d56875daefa7096eb33d017034020d2dd162f1ae88094f7709b569c2c

See more details on using hashes here.

File details

Details for the file gbd_tools-4.4.0-py3-none-any.whl.

File metadata

  • Download URL: gbd_tools-4.4.0-py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for gbd_tools-4.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dce41d2a4724213602fa5ac3ecbd6ea128b416791d56609f6e9c976d7126d1d2
MD5 87eb47a7b18e8adadc80eb16a922f1bd
BLAKE2b-256 f5c0e70bd474167e0bd44f30025730c89e9d82b886e55b40fc95e48794d64b43

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page