Skip to content

Releases: KaHIP/KaHIP

KaHIP v3.25

13 Mar 22:37

Choose a tag to compare

What's New in v3.25

Connected Blocks (Experimental)

KaFFPa and KaFFPaE now support --connected_blocks (strong preconfiguration only) to produce partitions where each block is a connected subgraph.

Usage:

./deploy/kaffpa graph.graph --k 4 --preconfiguration=strong --connected_blocks

Details:

  • The input graph must be connected; a warning is printed for disconnected graphs.
  • Only supported with --preconfiguration=strong. Other preconfigurations will print an error.
  • Connectivity is enforced via checkpoint-based component elimination during uncoarsening, combined with connectivity-aware refinement and greedy rebalancing.
  • When --connected_blocks is not used, KaHIP behavior is completely unchanged (identical cuts and running times).

KaHIP v3.24

13 Mar 19:25

Choose a tag to compare

64-bit Edge Support

The C interface now supports 64-bit edges via a compile-time kahip_idx typedef (int64_t or int32_t). Compile with -D64BITMODE=On to enable.

Changes

  • All edge-related CSR arrays (xadj, adjncy, adjcwgt) and edge-valued outputs (edgecut, infinity_edge_weight) use kahip_idx in the public C interface
  • Internal EdgeID and EdgeWeight become signed int64_t in 64-bit mode
  • UNSAFE_metis_style methods return kahip_idx*
  • MPI broadcast uses conditional MPI_INT64_T/MPI_INT types
  • Node-related parameters (n, vwgt, nparts, part) remain int
  • Added kahip_sizeof_idx() to query index width at runtime (returns 4 or 8)

Windows Support

  • KaHIP now builds on Windows with MSVC (no MPI, library + interface only)
  • Added Windows CI workflow via GitHub Actions
  • Platform guards for POSIX-specific headers (regex.h, sys/mman.h, execinfo.h)
  • Windows pip wheels now available on PyPI (Python 3.9-3.14)

pkg-config Support

  • KaHIP and ParHIP are now discoverable via pkg-config (merged PR #134)

Build & CI

  • Updated cibuildwheel to v3.4.0, GitHub Actions to v5 with Node.js 24
  • Added Python 3.13 and 3.14 wheel builds, dropped EOL Python 3.8

Bug Fixes

  • Fixed type mismatch in tabu_moves_queue.h (declaration vs definition of minValue)
  • Fixed edge_evaluator.cpp using EdgeID instead of PartitionID for partition vectors
  • Fixed CMake target_compile_definitions syntax (merged PR #135)

KaHIP v3.23

09 Mar 18:52

Choose a tag to compare

KaHIP v3.23

What's New

  • Homebrew support: brew install KaHIP/kahip/kahip
  • Updated README with logo, expanded badges (arXiv, platform, CI, university)
  • Updated references to latest journal versions (ACM JEA 2020 for ILP and process mapping, ALENEX 2021 for node ordering)
  • Added missing citations for mt-KaHIP (IEEE TPDS 2020) and hierarchical process mapping (SEA 2020)

Install

Homebrew:

brew install KaHIP/kahip/kahip

Python:

pip install kahip

From source:

git clone https://github.com/KaHIP/KaHIP && cd KaHIP
./compile_withcmake.sh

KaHIP v3.21

03 Nov 19:41
a6f95ec

Choose a tag to compare

  • support for PyPi, e.g. pip install kahip, and then use KaHIP in Python
  • minor fixes

KaHIP v3.19a

23 Apr 13:27
9d4978c

Choose a tag to compare

fixed tag

KaHIP v3.18

14 Jan 20:50
17cb2f5

Choose a tag to compare

minor changes

KaHIP v3.17

19 Dec 16:15

Choose a tag to compare

KaHIP v3.16

23 Nov 13:16
60a8745

Choose a tag to compare

Mainly bug fixes and update of node ordering routine.

KaHIP v3.15

22 May 14:11
fd4273c

Choose a tag to compare

Minor update with bugfixes etc...

KaHIP v3.14

14 Dec 12:24

Choose a tag to compare

Added a version option to all KaHIP programs.