Choose an installation route

An installed SDK provides public headers, libraries and CMake package metadata. An installation with the native CLI also provides openpfc, which compiles and runs your own C++ model against that SDK. Creating a starter does not install the SDK or its dependencies.

Your environment Where to begin
A site-provided installation Load its OpenPFC and matching compiler/MPI modules; see Tohtori or LUMI
A workstation with dependencies Build a source checkout through the portable build-script mode below
A downstream CMake project Use the installed-library integration guide

The canonical installation guide owns the full dependency setup. Check it against your OpenPFC version. The CLI commands on these pages describe the development branch; an older release module may not contain them.

Why the environment matters

A C++ compiler builds both your program and the libraries it links to. MPI coordinates the processes that share the calculation. Spectral applications use HeFFTe for distributed transforms and a matching FFT backend. These components exchange binary data and call one another; an MPI launcher from another installation is not an interchangeable shortcut.

Load the site’s supported stack, or install dependencies consistently on a workstation. The native CLI also needs OpenSSL Crypto at build time. Keep separate CPU and GPU build trees. Exact versions and backend requirements belong in the installation guide, rather than a second dependency list here.

Build from a checkout

On an ordinary workstation, after installing the dependencies:

git clone https://github.com/ahojukka5/OpenPFC.git
cd OpenPFC
./scripts/build.sh --machine=portable --cpu

Portable mode preserves your compiler/MPI environment and CMake package discovery. The script configures, builds and tests under builds/release. On Tohtori use --machine=tohtori --cpu; for LUMI, follow its scheduled build workflow and keep build trees on flash outside the clone. Run ./scripts/build.sh --help for options. The installation guide also explains installing into a prefix for downstream use.

The build script loads modules inside its own process. Load the matching compiler and MPI in your launch shell too; on Tohtori’s CPU stack this includes module load openmpi/5.0.10.

Verify the SDK before compiling a model

With the native CLI on PATH, run this once outside an MPI launch:

openpfc --help
openpfc doctor

doctor compiles, links and runs a small host probe. A successful result checks the host build contract. It does not qualify GPU execution or multi-node networking. On a cluster, use a permitted compiler environment or allocation.

If the SDK is not discovered automatically:

openpfc doctor --sdk /path/to/openpfc-sdk

Replace the path with your installation prefix. Pass the same --sdk selection to run, compile and bundle. A site module may already set CMAKE_PREFIX_PATH; discovery also supports OpenPFC_DIR and an SDK beside the installed CLI. Keep compiler-selection options consistent between the probe and the model build.

When the probe fails

Read the recovery message and the printed diagnostics directory. Check the selected SDK, compiler and MPI before changing model code. A missing dependency needs provisioning; doctor does not download or rebuild it. Use the troubleshooting guide for concrete compiler, linking and runtime failures.