Skip to content

Manual Dependency Installation

Manual installation is the fallback path. Use it only when the Superbuild does not work for your system or when a cluster requires explicit site-managed dependencies.

Install in order

The dependencies are ordered. Installing them out of order is a common source of failed builds and wrong CMake package discovery.

Dependency Sequence

flowchart TD
  A["Compilers + CMake + BLAS/LAPACK"] --> B["GKlib"]
  B --> C["METIS"]
  C --> D["ParMETIS (MPI builds)"]
  A --> E["Kokkos serial"]
  A --> F["Kokkos CUDA/HIP (GPU builds)"]
  A --> G["GMP (optional, HPC Text2Code builds)"]
  G --> H["SymEngine"]
  A --> H
  H --> I["Text2Code"]
  B --> I
  C --> I
  D --> I
  E --> J["Exasim"]
  F --> J
  I --> J

Dependency Roles

Component Purpose Can skip when
GKlib Utility layer required by METIS. Never for METIS/ParMETIS workflows.
METIS Serial graph partitioning. Only if using a non-METIS build path.
ParMETIS MPI graph partitioning. Non-MPI-only builds.
Kokkos serial CPU backend portability. Never for CPU builds.
Kokkos CUDA NVIDIA GPU backend. No NVIDIA GPU support needed.
Kokkos HIP AMD GPU backend. No AMD GPU support needed.
GMP Integer backend for some SymEngine builds. Using Boost multiprecision SymEngine path.
SymEngine Symbolic backend for Text2Code. Only if Text2Code is not needed.
Text2Code Generates model kernels/input data from text descriptions. Only if using installed built-ins or hand-written models exclusively.

Manual Build Instructions

The historical shared manual steps are documented in Common dependencies. Platform-specific manual variants are in:

For new users, prefer CPU Installation via Superbuild unless you have a specific reason to manage these dependencies yourself.