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}, 
}

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.4.0.tar.gz (6.5 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.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

kaminpar_networkit-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

kaminpar_networkit-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

kaminpar_networkit-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: kaminpar_networkit-3.4.0.tar.gz
  • Upload date:
  • Size: 6.5 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.4.0.tar.gz
Algorithm Hash digest
SHA256 e614ceeaa5d50dffcf489ea794b106ef23a95d70b88834d6896b3c9f103a646b
MD5 056f141ca604b02266731f86e0f25497
BLAKE2b-256 02e62533eeb42dc9151b16641ad76c8d418faf3a795be6109481d494b3e068ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.4.0.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.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ba5b46bb1702c5646ca4152236923a956c2d680f7202e7084da3a9765d2b738
MD5 4e1bb44b3d5659dc0d84c834b0ab5076
BLAKE2b-256 1e00a3a25adc1845823acf78ec8a32234ff5b141adda72797b8774b7250dc531

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.4.0-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.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c0a95a47ac579332c76b1695068dfb165ce5e3281e8c933bc07b1819c9be582
MD5 9923e38de7639fc3e03d14a4e2da6ec8
BLAKE2b-256 3fce51667e89bd2d1cbfba8fa4cb5769a09973e648db9f3ed4d0d8ee4680f829

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.4.0-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.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f0108d3ec061facb9355fd805c8e7e47e11bc2a76fe5a40d778258770bd49dd
MD5 1f04cc5e3fd7e14f4ab642625e39a4be
BLAKE2b-256 50d8ff9e4bc951cc31cbc6cda34b718a130a5188908abd6e813f05fb5de1f985

See more details on using hashes here.

Provenance

The following attestation bundles were made for kaminpar_networkit-3.4.0-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.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaminpar_networkit-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82226e2b09e3672aa8c12db3afedf82294eba11d0df117b0533a6f1d55e5f3b1
MD5 fc8e5452c97f33b0aab5906788889f75
BLAKE2b-256 de8156e3ca10856811aa3cb0c7afcc8e236ec415c4e63f409110f7bc04150859

See more details on using hashes here.

Provenance

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