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

Uploaded Python 3

File details

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

File metadata

  • Download URL: gbd_tools-4.6.7.tar.gz
  • Upload date:
  • Size: 999.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.12

File hashes

Hashes for gbd_tools-4.6.7.tar.gz
Algorithm Hash digest
SHA256 0bf2b7eabf4c1063bd742a7f4fda9fb0c9fd6787e46c058eb2ee5e0bc83ebdf1
MD5 ca050caea3255bdf6d0d94c54ccfe78b
BLAKE2b-256 7656d1f75c24b1c2a042f28ffabedf7394727297acfbf35252da035727eaab63

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gbd_tools-4.6.7-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.12

File hashes

Hashes for gbd_tools-4.6.7-py3-none-any.whl
Algorithm Hash digest
SHA256 180f10048665d75232f6459fe4228022c6d4b018aa17b23b8c4de875c46e91a3
MD5 96a7026b2c6312e14674dfa43ba40ade
BLAKE2b-256 d75c891f19d1cbc75659b5698352a395ce125e78de936dc501c983c29743c11a

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