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.1.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.1-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.1-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.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: kaminpar_networkit-3.4.1.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.1.tar.gz
Algorithm Hash digest
SHA256 fc866fd9a69a95c172bedec48d663ce004bbceeebf6255ac71c2851b7f85dd39
MD5 b5b4daa72c9e593a36739c6ab45bc5dc
BLAKE2b-256 14f67a28870882b2b701fb207ba99ceaee0a919214c066352530fb6fc03a374d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kaminpar_networkit-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e176f392d1dfee7eb0565c4178ce5ef7c6b0598fef6af3f148aaef9fc7111437
MD5 e5516e3580da4ba032baaaac85d2755d
BLAKE2b-256 88c00bbb5114e0a81ab457bc60630c4f3189956cdf06cdda2e78d065bb216b6b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kaminpar_networkit-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 19a23096011c921716ecd24dab0c4faf68c83319a7213b7856b9b6eddc2b90f3
MD5 0eb639868876525c4c8f5fa3ab362d67
BLAKE2b-256 5674628da5d9231147f0aa091267fe74a2043f326a65cbb5fe21fbfaf055f59b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kaminpar_networkit-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4adcd1d88fe76b58aa6958afaf42972440515ac6556ee1a2200ed950f8e4dd7
MD5 8b052aa84659c81131127f8141cdea5d
BLAKE2b-256 be592960abebd6f9fb502532e60d97c084e9b33a644d2a387c11d0dcc8b2f3c4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kaminpar_networkit-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 550b2df369a0bfdb4b282878a4bdc593663f785488a92db081bab9d519d7ec04
MD5 c6f22241a887db2d0d7402a335a905d5
BLAKE2b-256 3867e422200e25eecabcd58d1bb3bfe2a72decc82f8b3cb33abdbadeed29a2b0

See more details on using hashes here.

Provenance

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