Skip to main content

GraphBench: Next-generation graph learning benchmarking

This is the package associated with the paper GraphBench: Next generation graph learning benchmarking.

It contains the code and tools needed to load the benchmark's datasets. GraphBench is a collection of benchmarking datasets across domains and tasks obtained from real-world and synthetic applications.

Features

GraphBench comes as a Python package with the following features:

Data Loading Efficiently loads graph datasets for benchmarking and experimentation across all domains and tasks.
Metric Evaluation Supports a wide range of evaluation metrics for graph learning tasks.
Automated Model Tuning Integrates SMAC3 for automatic hyperparameter optimization of user models.

Installation

We recommend using Anaconda/Miniconda during setup. The installation process is done in two steps:

  1. Install swig via Anaconda/Miniconda (if using the optimization module): conda install swig

  2. GraphBench can then be easily installed using the Python package manager pip: pip install graphbench-lib

For using the optimization module graphbench-lib[tuning], it needs to be installed instead.

Please make sure to install GraphBench before running the benchmark for the best results. Alternatively, one can also install from source:

git clone https://github.com/graphbench/package
cd package
pip install -e . 

Dependencies

GraphBench uses several Python packages to load and process datasets. An overview of the required packages can be found in the list below:

  • torch
  • torch_geometric
  • networkx
  • torchmetrics
  • numpy
  • pandas
  • requests
  • tqdm
  • scikit-learn

Optionally, SMAC3 is used for the optimization module.

Usage

The package can be easily used to get selected datasets from the GraphBench tasks:

import graphbench
Loader = graphbench.Loader(root, dataset_name)
datasets = Loader.load()

Furthermore, standardized evaluation metrics can be obtained using the following methods:

Evaluator = graphbench.Evaluator(metric_name)
metric_results = Evaluator.evaluate()

In order to use all datasets of a domain easily, each domain corresponds to one dataset_name variable:

Domain Dataset_name
Social media socialnetwork
Combinatorial optimization co
SAT solving sat
Algorithmic reasoning algorithmic_reasoning_easy, algorithmic_reasoning_medium, algorithmic_reasoning_hard
Electronic circuits electronic_circuits
Chip design chipdesign
Weather forecasting weather

Note that for algorithmic reasoning, the download always includes all datasets for a given task. We plan to change this in the future.

For a complete list of the datasets, see the accompanying website or the datasets.csv file. The corresponding metrics are in the master.csv file.

Citing GraphBench:

If you use GraphBench or GraphBench datasets in your work, please cite our paper:

@article{GraphBench,
title={GraphBench: Next-generation graph learning benchmarking}, 
author={Timo Stoll and Chendi Qian and Ben Finkelshtein and Ali Parviz and Darius Weber and Fabrizio Frasca and Hadar Shavit and Antoine Siraudin and Arman Mielke and Marie Anastacio and Erik Müller and Maya Bechler-Speicher and Michael Bronstein and Mikhail Galkin and Holger Hoos and Mathias Niepert and Bryan Perozzi and Jan Tönshoff and Christopher Morris},
year={2025},
journal={arXiv preprint arXiv:2512.04475}
}

Metadata

Release files for graphbench-lib 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for graphbench-lib 0.2.0
File Size Uploaded
graphbench_lib-0.2.0.tar.gz 76.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for graphbench-lib 0.2.0
File Interpreter ABI Platform
graphbench_lib-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 173.3 kB

Release files / graphbench_lib-0.2.0.tar.gz

Download URL graphbench_lib-0.2.0.tar.gz
Size 76.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4c4eeb44df90bad5ad12c436ef875e34934049763b862be791961233581cf2d9
BLAKE2b-256 checksum
How to use checksums
8b2ee76dcff23ff7d16d130de88bf686d0e6de6b08967f7742aa3df2e8355157
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release files / graphbench_lib-0.2.0-py3-none-any.whl

Download URL graphbench_lib-0.2.0-py3-none-any.whl
Size 96.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b709ac92c74b269fdd31e4b0e26fcd51526a2d0f44067f6581d82804fb48f35
BLAKE2b-256 checksum
How to use checksums
0dd9bc80ebcaeea954dbfa923a67685844e9d710ef296326c3f2c8feb547f04d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page