Skip to content

Prepare a machine

Any Linux account can become a simulation machine. verlet installs Spack in your home, finds the compilers, MPI and libraries already there, and builds engine executables from short YAML specs. Keep as many as you like side by side; they share every dependency they can. LAMMPS builds are what is implemented today.

  1. Open Environments and select the machine, your own computer or a connected remote.
  2. In LAMMPS setup, press Set up. On a cluster, first list the modules to load, such as gcc/12.3 openmpi/4.1.
  3. verlet checks the machine, installs Spack and records what it found. About a minute after the download.
Engine setup and builds on an environmentEngine setup and builds on an environment

Before changing anything, verlet checks what a build needs; a failed check stops the setup and says how to fix it.

CheckNeeded because
Home writableEverything goes in ~/.verlet.
Free spaceA few GB for Spack, sources and builds; 10 GB recommended.
Python 3.6+Spack is written in Python.
tar, gzip, patch, makeTo unpack and build packages.
bzip2, xz, gitSome sources need them (warnings only).
A C++ compilerOn the PATH or from the modules you listed.
github.com, Spack releaseTo download Spack and sources.

After setup the card lists the compilers found, what was found on the machine and will be reused instead of built (MPI, CMake, CUDA), the GPUs, and the free space. Re-check repeats discovery after you load modules or install something.

  1. Under Builds, press New build.

  2. Pick a template:

    TemplateForPackages
    minimalfirst runsMOLECULE, KSPACE, RIGID, EXTRA-PAIR, with OpenMP
    molecularforce-field systemsadds CLASS2, DPD-BASIC, EXTRA-*, REAXFF, QEQ, REPLICA, MISC
    materialsmany-body and ML potentialsMANYBODY, MEAM, ML-SNAP, ML-PACE, ML-IAP, PHONON, REAXFF
    everything-cpuwhen in doubtevery package that builds without extra libraries
    gpu-kokkosNVIDIA GPUsKokkos with CUDA; needs the CUDA toolkit on the machine
  3. Edit the YAML, or use the selects and the package list, which rewrite it for you. Problems appear with the key they belong to, and the Spack spec it will build is shown underneath.

  4. Press Start build.

The New build sheet with a template, the YAML spec and live validationThe New build sheet with a template, the YAML spec and live validation

Every key is in the build spec reference.

name: lmp-minimal # the executable becomes ~/.verlet/bin/lmp-minimal
lammps: stable # a release date like 20250722, stable, or latest
packages: [MOLECULE, KSPACE, RIGID, EXTRA-PAIR]
compiler: gcc # gcc, clang, oneapi or nvhpc, optionally with a version: gcc@12
optimization: native # none, O2, O3 or native (O3 with -march=native)
mpi: system # system, spack (build OpenMPI) or none
accelerators: [openmp] # openmp, kokkos-openmp, kokkos-cuda, gpu-cuda, gpu-opencl, intel
lapack: auto
fft: auto
modules: [gcc/12.3, openmpi/4.1] # loaded before building and before every run
StateWhat happens
QueuedWaiting; one build at a time per machine.
ConcretizingSpack works out every dependency and version.
Concretizedverlet shows how many packages it will build and how many it reuses.
InstallingPackages compile; the bar shows done / total and the current package.
VerifyingThe new executable must list every package you asked for.
DoneThe executable is registered and verified.

View log shows everything Spack printed. Cancel keeps what was compiled for the next attempt. Builds continue if verlet closes.

On a two-core workstation the minimal template took about 20 minutes, most of it FFTW and the engine; a second build with materials reused FFTW and the toolchain and compiled only the engine and the ML-PACE libraries.

A done build appears under Executables marked built from spec, and in the Run sheet for that environment. It is a small wrapper, ~/.verlet/bin/<name>, that loads the build’s modules and starts the real binary, so it also works from your own shell.

Delete removes the executable, the build directory and the packages no other build uses.

  • A setup check fails: the card shows the fix. Install the missing tool as your user or load a module that provides it, then Re-check.
  • The build fails: the last lines of the Spack log are on the build; View log has the rest. A common cause is a package that needs a library the machine lacks; the spec check warns about these.
  • “built without X”: the build finished without package X, usually because a dependency was missing; check the log for that package’s CMake output.