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.3.tar.gz (7.0 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.3-cp313-cp313-manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

kaminpar_networkit-3.7.3-cp312-cp312-manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

kaminpar_networkit-3.7.3-cp311-cp311-manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

kaminpar_networkit-3.7.3-cp310-cp310-manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

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

File metadata

  • Download URL: kaminpar_networkit-3.7.3.tar.gz
  • Upload date:
  • Size: 7.0 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.3.tar.gz
Algorithm Hash digest
SHA256 6173d3e46360549eac2febfa6e8c8f1f1c321e858245469b681322bfd8e83172
MD5 b4ce18c791183512c106072cd3b0fbab
BLAKE2b-256 f362ecac1729722a6052599b8a14c7af65f8114d9c352553493eccaaa94b8327

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.3.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.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.7.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 06fe64d330940a2c107235396cd65c8b117da6e4fcfdbea961a4a6fff3c6e119
MD5 9d1a5998726ac218fb56ca20bfd5c927
BLAKE2b-256 cd9ccf79d2cfb43026265a0caf18da4d2e6c4311c828b69ed98fd44eab118749

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.3-cp313-cp313-manylinux_2_28_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.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.7.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8e05d0aa9b97eb25554362acd3a548b10704d8a1ca5a2f1a1606f7c29dca112
MD5 6eb0f976fa7f8c552dd8f3defea61b76
BLAKE2b-256 a458be54ac4cd71bf43066b48c04df01635274954fe6e6a92df5e49345f6bf4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.3-cp312-cp312-manylinux_2_28_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.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.7.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6426876cedca6c9f3fc8afd4c68f16383a890b7dc006174ad7a4268117016dcd
MD5 2a4b7dda8ab771e50632b5228ba479ed
BLAKE2b-256 bf04365333f546e5c80e7cf8f861b473f9b0acb8fa539ec4c1fab12222e914c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.3-cp311-cp311-manylinux_2_28_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.3-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.7.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49d740398b8896c0869236c276a8621c36262e20e1294d7d4ca27d5f22aa1a28
MD5 437642727cdfe1fab817e81407b2b2da
BLAKE2b-256 debcd27fba284df02bdb36e2d5ffd81b2749aec6d5fd7549f7dc06e1cb1a2efe

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.7.3-cp310-cp310-manylinux_2_28_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