Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/KarypisLab/ParMETIS/llms.txt

Use this file to discover all available pages before exploring further.

ParMETIS uses CMake as its underlying build system, exposed through a make config wrapper that accepts key-value options directly on the command line. Running make config generates the CMake build tree in a build/ subdirectory, and subsequent make and make install commands operate on that tree. You do not need to invoke CMake directly unless you have specific needs that the wrapper does not cover.

Common configuration options

cc
string
The C compiler to use. Defaults to whatever CMake detects on your system, typically mpicc when an MPI installation is present. Set this explicitly to ensure the correct MPI-aware compiler wrapper is used.
shared
flag
default:"off"
Build a shared library (.so / .dylib) instead of the default static archive (.a). Pass shared=1 to enable. Shared builds require that GKlib and METIS were also built as shared libraries.
prefix
path
default:"~/local"
Installation root. Headers are placed in <prefix>/include, the library in <prefix>/lib, and any programs in <prefix>/bin.
gklib_path
path
Prefix path of your GKlib installation. CMake will look for GKlib headers in <gklib_path>/include and the library in <gklib_path>/lib. You can omit this option if GKlib was installed under the same prefix as ParMETIS.
metis_path
path
Prefix path of your METIS installation. CMake will look for METIS headers in <metis_path>/include and the library in <metis_path>/lib. You can omit this option if METIS was installed under the same prefix as ParMETIS.

Debug options

These flags are intended for development and troubleshooting. They introduce runtime overhead and should not be used in production builds.
gdb
flag
default:"off"
Compile with GDB debug symbols (-g). Pass gdb=1 to enable. Allows source-level debugging with GDB or compatible debuggers.
debug
flag
default:"off"
Enable general debugging support. Pass debug=1 to enable.
assert
flag
default:"off"
Enable standard assertions throughout the library. Pass assert=1 to enable. Assertions will abort execution on internal inconsistencies.
assert2
flag
default:"off"
Enable expensive assertions that perform deeper internal consistency checks. Pass assert2=1 to enable. These can significantly slow down execution and are only intended for diagnosing subtle bugs.

Make targets

TargetDescription
configConfigure the build tree. Pass options here (e.g. cc=mpicc).
installBuild and install to the configured prefix.
uninstallRemove all files that were placed by make install.
cleanRemove compiled object files while keeping the configuration intact.
distcleanRemove all build artifacts including the configuration.

Examples

Install to the default ~/local prefix using mpicc:
make config cc=mpicc prefix=~/local
make install
Build a shared library and install to /usr/local, with GKlib and METIS at custom paths:
make config shared=1 prefix=/usr/local gklib_path=/opt/gklib metis_path=/opt/metis
make install
Build with debug symbols and assertions for development:
make config cc=mpicc prefix=~/local gdb=1 assert=1
make install
If GKlib and METIS were both installed to the same prefix you intend to use for ParMETIS, you can omit gklib_path and metis_path entirely and rely on the prefix setting alone.

Build docs developers (and LLMs) love