Mt-KaHyPar

✅ 方案 1:直接用 Python 接口

安装:

miya@liumin:~$ pip install mtkahypar

Defaulting to user installation because normal site-packages is not writeable Collecting mtkahypar Downloading mtkahypar-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 32.0 kB/s eta 0:00:00 Installing collected packages: mtkahypar Successfully installed mtkahypar-1.5.1 miya@liumin:~$ sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev [sudo] password for miya: Reading package lists... Done Building dependency tree... Done Reading state information... Done libboost-program-options-dev is already the newest version (1.74.0.3ubuntu7). libtbb-dev is already the newest version (2021.5.0-7ubuntu2). libtbb-dev set to manually installed. The following packages were automatically installed and are no longer required: clang-tidy clang-tidy-14 clang-tools-14 gdal-data gir1.2-gudev-1.0 i965-va-driver ibverbs-providers intel-media-va-driver libaacs0 libaec0 libaom3 libarmadillo10 libarpack2 libavcodec-dev libavcodec58 libavformat-dev libavformat58 libavutil-dev libavutil56 libbdplus0 libblas3 libblosc1 libbluray2 libcfitsio9 libcharls2 libchromaprint1 libcodec2-1.0 libdav1d5 libdc1394-25 libdc1394-dev libde265-0 libdeflate-dev libdrm-dev libexif-dev libexif-doc libexif12 libfabric1 libfontenc1 libfreexl1 libfyba0 libgbm-dev libgdal30 libgdcm-dev libgdcm3.0 libgeos-c1v5 libgeos3.10.2 libgeotiff5 libgfortran5 libgif7 libgles1 libgles2 libglvnd-core-dev libgme0 libgphoto2-6 libgphoto2-dev libgphoto2-l10n libgphoto2-port12 libgraphene-1.0-0 libgsm1 libgstreamer-opencv1.0-0 libgstreamer-plugins-bad1.0-0 libgudev-1.0-dev libhdf4-0-alt libhdf5-103-1 libhdf5-hl-100 libheif1 libibverbs1 libigdgmm12 libilmbase-dev libilmbase25 libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libkf5syntaxhighlighting-data libkmlbase1 libkmldom1 libkmlengine1 liblapack3 liblept5 libmfx1 libminizip1 libmp3lame0 libmpg123-0 libmysqlclient21 libnetcdf19 libnorm1 libodbc2 libodbcinst2 libogdi4.1 libopencv-calib3d-dev libopencv-calib3d4.5d libopencv-contrib4.5d libopencv-core-dev libopencv-core4.5d libopencv-dnn-dev libopencv-dnn4.5d libopencv-features2d-dev libopencv-features2d4.5d libopencv-flann-dev libopencv-flann4.5d libopencv-highgui-dev libopencv-highgui4.5d libopencv-imgcodecs-dev libopencv-imgcodecs4.5d libopencv-imgproc-dev libopencv-imgproc4.5d libopencv-ml-dev libopencv-ml4.5d libopencv-objdetect-dev libopencv-objdetect4.5d libopencv-photo-dev libopencv-photo4.5d libopencv-shape-dev libopencv-shape4.5d libopencv-stitching-dev libopencv-stitching4.5d libopencv-superres-dev libopencv-superres4.5d libopencv-video-dev libopencv-video4.5d libopencv-videoio-dev libopencv-videoio4.5d libopencv-videostab-dev libopencv-videostab4.5d libopencv4.5-java libopencv4.5d-jni libopenexr-dev libopenexr25 libopengl-dev libopenjp2-7 libopenmpi3 libopenmpt0 liborc-0.4-dev liborc-0.4-dev-bin libpciaccess-dev libpgm-5.3-0 libpmix2 libpoppler118 libpq5 libproj22 libprotobuf23 libpsm-infinipath1 libpsm2-2 libqt5qmlworkerscript5 libqt5serialport5 libraw1394-11 libraw1394-dev libraw1394-tools librdmacm1 librttopo1 libshine3 libsnappy1v5 libsocket++1 libsoxr0 libspatialite7 libspeex1 libsrt1.4-gnutls libssh-gcrypt-4 libsuperlu5 libswresample-dev libswresample3 libswscale-dev libswscale5 libsz2 libtbb2 libtesseract4 libtiff-dev libtiffxx5 libtwolame0 libucx0 libudfread0 liburiparser1 libva-drm2 libva-x11-2 libva2 libvdpau1 libvorbisfile3 libvpx7 libwayland-bin libwayland-dev libwebpmux3 libx264-163 libx265-199 libxerces-c3.2 libxv1 libxvidcore4 libxxf86dga1 libyaml-cpp0.7 libzmq5 libzvbi-common libzvbi0 mysql-common opencv-data poppler-data proj-bin proj-data qml-module-qtqml qml-module-qtqml-models2 qtcreator-data qtcreator-doc qtxmlpatterns5-dev-tools unixodbc-common Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: libnuma-dev The following NEW packages will be installed: libhwloc-dev libnuma-dev 0 upgraded, 2 newly installed, 0 to remove and 28 not upgraded. Need to get 291 kB of archives. After this operation, 1,318 kB of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/main amd64 libnuma-dev amd64 2.0.14-3ubuntu2 [35.9 kB] Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/universe amd64 libhwloc-dev amd64 2.7.0-2ubuntu1 [256 kB] Fetched 291 kB in 1s (216 kB/s) Selecting previously unselected package libnuma-dev:amd64. (Reading database ... 101603 files and directories currently installed.) Preparing to unpack .../libnuma-dev_2.0.14-3ubuntu2_amd64.deb ... Unpacking libnuma-dev:amd64 (2.0.14-3ubuntu2) ... Selecting previously unselected package libhwloc-dev:amd64. Preparing to unpack .../libhwloc-dev_2.7.0-2ubuntu1_amd64.deb ... Unpacking libhwloc-dev:amd64 (2.7.0-2ubuntu1) ... Setting up libnuma-dev:amd64 (2.0.14-3ubuntu2) ... Setting up libhwloc-dev:amd64 (2.7.0-2ubuntu1) ... Processing triggers for man-db (2.10.2-1) ...

python启动:

import mtkahypar

# 初始化(必须)
mtkahypar.initializeThreadPool(6)  # 使用 6 线程

# 读超图
hypergraph = mtkahypar.Hypergraph(
    num_hypernodes=0,
    num_hyperedges=0,
    index_vector=[],
    edge_vector=[],
    weight_vector=[],
    k=8,
    imbalance=0.03,
    objective=mtkahypar.Objective.KM1
)
hypergraph.readFromFile("/home/miya/new2/3shengeda/build/workspace/output/test___system_level_modeling___20250824124240/iter1/partition/solution4/origin.hgr")

# 设置 preset
context = mtkahypar.Context()
context.loadPreset(mtkahypar.PresetType.DEFAULT)

# 划分
mtkahypar.partition(hypergraph, context)

# 输出每个节点的分区
for v in hypergraph.nodes():
    print(v, hypergraph.blockID(v))
 

✅ 方案 2:编译 C++ 的二进制(如果你想要命令行工具)

如果你还是想用命令行的 MtKaHyPar,需要自己编译源码:


git clone https://github.com/kahypar/mt-kahypar.git cd mt-kahypar mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j6

编译完成后,你会得到:


mt-kahypar/build/application/MtKaHyPar

然后你就能用命令:


~/mt-kahypar/build/application/MtKaHyPar \ -h /home/miya/new2/3shengeda/build/workspace/output/test___system_level_modeling___20250824124240/iter1/partition/solution4/origin.hgr \ --preset-type=default \ -t 6 \ -k 8 \ -e 0.03 \ -o km1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值