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.3.8.tar.gz (997.0 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.3.8-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gbd_tools-4.3.8.tar.gz
  • Upload date:
  • Size: 997.0 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.3.8.tar.gz
Algorithm Hash digest
SHA256 5ab5ffbed5ad7f92b93f2c6707e2f34b02cf1807aff39055ac527cf8b5c037ba
MD5 6e60cfb22bec03f70a24db1bf83f6b56
BLAKE2b-256 22c761eb88550f4d8a4f4c9b2d76c4e89466e9f5106758eba232b997794c7b12

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gbd_tools-4.3.8-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.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 01c8cd3031cf403451ef57bd928eef108cb4a04c5c0620d498e68ea95fb083aa
MD5 068135a42c6f412d7d3c68403628741d
BLAKE2b-256 6b68dc1c7aa42063f76847a3c7813ad605a704e29b12f35689e13aeade109a8c

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