Skip to main content

NetworKit bindings for KaMinPar

Project description

NetworKit Bindings for KaMinPar

KaMinPar is a shared-memory parallel tool to heuristically solve the graph partitioning problem: divide a graph into k disjoint blocks of roughly equal weight while minimizing the number of edges between blocks. This Python package provides bindings to KaMinPar and integrates with the NetworKit library to offer a fast and scalable graph partitioning algorithm.

Installation

You can install the NetworKit bindings for KaMinPar via pip:

pip install kaminpar-networkit

Alternatively, you can build the bindings from source:

git clone https://github.com/KaHiP/KaMinPar.git
pip install KaMinPar/bindings/networkit

When building the NetworKit bindings from source, the dependencies of KaMinPar must be available on the system. These include CMake, Intel TBB and Sparsehash. Additionally, if you install the package via pip on a target system and Python version where no pre-built wheel is available, the package will fall back to building from the source distribution. In this case, you must also ensure that the required dependencies are installed on your system.

Usage

The following is a basic example of how to use the KaMinPar bindings. For the full API documentation, refer to the documentation file.

import kaminpar_networkit as kaminpar
import networkit

# Use NetworKit to read a graph from disk stored in METIS format and output statistics for the graph.
graph = networkit.readGraph("hyperlink.metis", networkit.Format.METIS)
networkit.overview(graph)

# Create a KaMinPar instance and compute a partition of the graph into four blocks using imbalance factor 3%.
shm = kaminpar.KaMinPar(graph)
partition = shm.computePartitionWithEpsilon(4, 0.03)

edge_cut = networkit.community.EdgeCut().getQuality(partition, graph)
print("Computed a partition with an edge cut of", edge_cut)

License

The NetworKit bindings for KaMinPar and KaMinPar are free software provided under the MIT license. If you use KaMinPar in an academic setting, please cite the appropriate publication(s) listed below.

// KaMinPar
@InProceedings{DeepMultilevelGraphPartitioning,
  author    = {Lars Gottesb{\"{u}}ren and
               Tobias Heuer and
               Peter Sanders and
               Christian Schulz and
               Daniel Seemaier},
  title     = {Deep Multilevel Graph Partitioning},
  booktitle = {29th Annual European Symposium on Algorithms, {ESA} 2021},
  series    = {LIPIcs},
  volume    = {204},
  pages     = {48:1--48:17},
  publisher = {Schloss Dagstuhl - Leibniz-Zentrum f{\"{u}}r Informatik},
  year      = {2021},
  url       = {https://doi.org/10.4230/LIPIcs.ESA.2021.48},
  doi       = {10.4230/LIPIcs.ESA.2021.48}
}

// dKaMinPar (distributed KaMinPar)
@InProceedings{DistributedDeepMultilevelGraphPartitioning,
  author    = {Sanders, Peter and Seemaier, Daniel},
  title     = {Distributed Deep Multilevel Graph Partitioning},
  booktitle = {Euro-Par 2023: Parallel Processing},
  year      = {2023},
  publisher = {Springer Nature Switzerland},
  pages     = {443--457},
  isbn      = {978-3-031-39698-4}
}

// [x]TeraPart (memory-efficient [d]KaMinPar)
@misc{TeraPart,
      title={Tera-Scale Multilevel Graph Partitioning}, 
      author={Daniel Salwasser and Daniel Seemaier and Lars Gottesbüren and Peter Sanders},
      year={2024},
      eprint={2410.19119},
      archivePrefix={arXiv},
      primaryClass={cs.DS},
      url={https://arxiv.org/abs/2410.19119}, 
}

// Worst-Case Linear-Time Multilevel Graph Partitioning
@misc{LinearTimeMGP,
      title={Linear-Time Multilevel Graph Partitioning via Edge Sparsification},
      author={Lars Gottesbüren and Nikolai Maas and Dominik Rosch and Peter Sanders and Daniel Seemaier},
      year={2025},
      eprint={2504.17615},
      archivePrefix={arXiv},
      primaryClass={cs.DS},
      url={https://arxiv.org/abs/2504.17615},
}

Project details


Download files

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

Source Distribution

kaminpar_networkit-3.7.2.tar.gz (6.6 kB view details)

Uploaded Source

Built Distributions

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

kaminpar_networkit-3.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

kaminpar_networkit-3.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

kaminpar_networkit-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

kaminpar_networkit-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

File details

Details for the file kaminpar_networkit-3.7.2.tar.gz.

File metadata

  • Download URL: kaminpar_networkit-3.7.2.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for kaminpar_networkit-3.7.2.tar.gz
Algorithm Hash digest
SHA256 c758c6e233f5e8757570dfa21c02575d2af0d6fb6aeab1453c19446b5cf94fff
MD5 8c3105bbfac802b86b2fc9af243d9513
BLAKE2b-256 d0816ec062c3906fd154864faabc4eb4f994800a28723680f98bb7f50dc015b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.2.tar.gz:

Publisher: networkit_wheels.yml on KaHIP/KaMinPar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kaminpar_networkit-3.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b8fb4f363333f7aa17b9eca26341b288b3d025b6b8f410f2f94fb2b21290aef
MD5 4567ade45930aae4519c189c3cec20ec
BLAKE2b-256 bd48775ab35181edc6a6f6af6e0822d74e066e09484a1400ebed78ff4745be18

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: networkit_wheels.yml on KaHIP/KaMinPar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kaminpar_networkit-3.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7b9cf862d23fb964e9c6aa7846e0932ff3085a7e0b3dba5ef9a283dd09b8652
MD5 6021022aaa2bbd5ec9d22f9c1963ccca
BLAKE2b-256 355ba89171f17bfca408e599287cc4565340362796705aeed165069caecbd29a

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: networkit_wheels.yml on KaHIP/KaMinPar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kaminpar_networkit-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 30bec0121442983025f94a99d82ea950d10f9871cf5486f1db305e582350cec8
MD5 9b815d7bd4ff60eec027815e62cd2698
BLAKE2b-256 cc05590f149e55f7e9ffcc7abb195f3ea69a1bd1af9d44cb2744e49a24aa842e

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: networkit_wheels.yml on KaHIP/KaMinPar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kaminpar_networkit-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e83f1b2e226c8633b9002c7e4e22448c4f04210d91df2340caa1dedaf2fd640a
MD5 c97c46a4401972ed1e8c942cd400562e
BLAKE2b-256 f87ee4ab68f774dcde0509d76eb479da1080d60138344b22b8683dd16010957d

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: networkit_wheels.yml on KaHIP/KaMinPar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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