Releases: KaHIP/KaHIP
Releases · KaHIP/KaHIP
KaHIP v3.25
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_blocksis not used, KaHIP behavior is completely unchanged (identical cuts and running times).
KaHIP v3.24
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) usekahip_idxin the public C interface - Internal
EdgeIDandEdgeWeightbecome signedint64_tin 64-bit mode UNSAFE_metis_stylemethods returnkahip_idx*- MPI broadcast uses conditional
MPI_INT64_T/MPI_INTtypes - Node-related parameters (
n,vwgt,nparts,part) remainint - 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 ofminValue) - Fixed
edge_evaluator.cppusingEdgeIDinstead ofPartitionIDfor partition vectors - Fixed CMake
target_compile_definitionssyntax (merged PR #135)
KaHIP v3.23
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
- support for PyPi, e.g. pip install kahip, and then use KaHIP in Python
- minor fixes
KaHIP v3.19a
fixed tag
KaHIP v3.18
minor changes
KaHIP v3.17
KaHIP v3.16
Mainly bug fixes and update of node ordering routine.
KaHIP v3.15
Minor update with bugfixes etc...
KaHIP v3.14
Added a version option to all KaHIP programs.