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. Set up the environment
Section titled “1. Set up the environment”- Open Environments and select the machine, your own computer or a connected remote.
- In LAMMPS setup, press Set up. On a cluster, first list the modules to load, such as
gcc/12.3 openmpi/4.1. - verlet checks the machine, installs Spack and records what it found. About a minute after the download.
Before changing anything, verlet checks what a build needs; a failed check stops the setup and says how to fix it.
| Check | Needed because |
|---|---|
| Home writable | Everything goes in ~/.verlet. |
| Free space | A few GB for Spack, sources and builds; 10 GB recommended. |
| Python 3.6+ | Spack is written in Python. |
| tar, gzip, patch, make | To unpack and build packages. |
| bzip2, xz, git | Some sources need them (warnings only). |
| A C++ compiler | On the PATH or from the modules you listed. |
| github.com, Spack release | To 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.
2. Create a build
Section titled “2. Create a build”-
Under Builds, press New build.
-
Pick a template:
Template For Packages minimalfirst runs MOLECULE, KSPACE, RIGID, EXTRA-PAIR, with OpenMP molecularforce-field systems adds CLASS2, DPD-BASIC, EXTRA-*, REAXFF, QEQ, REPLICA, MISC materialsmany-body and ML potentials MANYBODY, MEAM, ML-SNAP, ML-PACE, ML-IAP, PHONON, REAXFF everything-cpuwhen in doubt every package that builds without extra libraries gpu-kokkosNVIDIA GPUs Kokkos with CUDA; needs the CUDA toolkit on the machine -
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.
-
Press Start build.
Every key is in the build spec reference.
name: lmp-minimal # the executable becomes ~/.verlet/bin/lmp-minimallammps: stable # a release date like 20250722, stable, or latestpackages: [MOLECULE, KSPACE, RIGID, EXTRA-PAIR]compiler: gcc # gcc, clang, oneapi or nvhpc, optionally with a version: gcc@12optimization: native # none, O2, O3 or native (O3 with -march=native)mpi: system # system, spack (build OpenMPI) or noneaccelerators: [openmp] # openmp, kokkos-openmp, kokkos-cuda, gpu-cuda, gpu-opencl, intellapack: autofft: automodules: [gcc/12.3, openmpi/4.1] # loaded before building and before every run3. Watch it build
Section titled “3. Watch it build”| State | What happens |
|---|---|
| Queued | Waiting; one build at a time per machine. |
| Concretizing | Spack works out every dependency and version. |
| Concretized | verlet shows how many packages it will build and how many it reuses. |
| Installing | Packages compile; the bar shows done / total and the current package. |
| Verifying | The new executable must list every package you asked for. |
| Done | The 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.
4. Run with it
Section titled “4. Run with it”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.
Deleting a build
Section titled “Deleting a build”Delete removes the executable, the build directory and the packages no other build uses.
When something goes wrong
Section titled “When something goes wrong”- 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.