Skip to main content

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

Project description

Global Benchmark Database (GBD)

DOI

GBD is a comprehensive suite of tools for provisioning and sustainably maintaining benchmark instances and their metadata for empirical research on hard algorithmic problem classes. For an introduction to the GBD concept, the underlying data model, and specific use cases, please refer to our 2024 SAT Tool Paper.

GBD contributes data to your algorithmic evaluations

GBD provides benchmark instance identifiers, feature extractors, and instance transformers for hard algorithmic problem domains, now including propositional satisfiability (SAT) and optimization (MaxSAT), and pseudo-Boolean optimization (PBO).

GBD solves several problems

  • benchmark instance identification
  • identification of equivalence classes of benchmark instances
  • distribution of benchmark instances and benchmark metadata
  • initialization and maintenance of instance feature databases
  • transformation algorithms for benchmark instances

GBD provides an extensible set of problem domains, feature extractors, and instance transformers. For a description of those currently supported, see the GBDC documentation. GBDC is a Python extension module for GBD's performance-critical code (written in C++), maintained in a separate repository.

Installation and Configuration

  • Run pip install gbd-tools
  • Run pip install gbdc (optional, installation of extension module gbdc)
  • Obtain a GBD database, e.g. download https://benchmark-database.de/getdatabase/meta.db.
  • Configure your environment by registering paths to databases like this export GBD_DB=path/to/database1:path/to/database2.
  • Test the command line interface with the gbd info and gbd --help commands.

GBD Interfaces

GBD provides the command-line tool gbd, the web interface gbd serve, and the Python interface gbd_core.api.GBD.

GBD Command-Line Interface

Central commands in gbd are those for data access gbd get and database initialization gbd init. See gbd --help for more commands. Once a database is registered in the environment variable GBD_DB, the gbd get command can be used to access data. See gbd get --help for more information. gbd init provides access to registered feature extractors, such as those provided by the gdbc extension module. All initialization routines can be run in parallel, and resource limits can be set per process. See gbd init --help for more information.

GBD Server

The GBD server can be started locally with gbd serve. Our instance of the GBD server is hosted at https://benchmark-database.de/. You can download benchmark instances and prebuilt feature databases from there.

GBD Python Interface

The GBD Python interface is used by all programs in the GBD ecosystem. Important here is the query command, which returns GBD data in the form of a Pandas dataframe for further analysis, as shown in the following example.

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'])

Scripts and use cases of GBD's Python interface are available on https://udopia.github.io/gbdeval/. The evaluation demo demonstrates portfolio analysis and subsequent category-wise performance evaluation using the 2023 SAT competition data. The prediction demo demonstrates category prediction from instance features and subsequent feature importance evaluation.

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.9.7.tar.gz (999.3 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: gbd_tools-4.9.7.tar.gz
  • Upload date:
  • Size: 999.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for gbd_tools-4.9.7.tar.gz
Algorithm Hash digest
SHA256 d938468e16dc0dcd5ae8c967f404da66422107da6c37a447ee54cf83f5d913e9
MD5 d539a88a04b98b1dfc7e9184ad0c7227
BLAKE2b-256 f8efd36e6b7d5e8afe6d249e33dca5b41da9081a82082d6ddbed4871b81fd612

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gbd_tools-4.9.7-py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for gbd_tools-4.9.7-py3-none-any.whl
Algorithm Hash digest
SHA256 536f6da1197b65c57163858f950b971a3a4b91bc2d1e4ab57caa7a5759fc6b9f
MD5 bf72d1aa90b05b25d5989c3c4c0d4c1d
BLAKE2b-256 c22860df1ee3d26ac8f61c7b0d9bc322a3471a8889bbc2f86c7ff44f871a2fe3

See more details on using hashes here.

Supported by

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