Skip to content

Run on a remote machine

verlet runs simulations on any Linux machine you can reach with ssh. It uses the OpenSSH on your computer, so your ~/.ssh/config, keys, agent, jump hosts and Kerberos tickets work as they do in a terminal.

  • Linux on x86_64, glibc 2.17 or newer.
  • About 500 MB free in your home directory.
  • An engine executable, or the ability to build one in your home.

Nothing needs root, and nothing goes outside ~/.verlet. Your computer needs OpenSSH 8.4 or newer, which macOS and current Linux ship.

  1. Open Environments and press Add environment.
  2. Choose Remote and enter the SSH host: an alias from ~/.ssh/config such as perlmutter, or user@host. Add a port only if it is not 22.
  3. Press Test connection. verlet reports the operating system, architecture, glibc, home directory and free space, and whether verletrc is already there.
  4. Save. verlet connects, installs verletrc and scans the machine.

A password, one-time code or new host key prompt appears in verlet and your answer goes straight to ssh. verlet never stores passwords or codes.

verletrc, a small self-contained service, in ~/.verlet/versions/<id>, started as you. Older copies are removed after an update.

~/.verlet/
versions/<id>/ the verletrc service, one directory per version
run/ verletrc's pid, port and token
work/ one directory per run
events/ logs/ verletrc's event log and its own logs
spack/ opt/ builds/ bin/ only if you build the engine here

verletrc listens on loopback only. verlet reaches it through a port forwarded over your SSH connection, and every request carries a token only your verlet knows.

verlet checks verletrc every 30 seconds. After three misses it reconnects, waiting 5 s, 15 s, 60 s and then 5 minutes between attempts. The environment shows connected, connecting, disconnected or failed. Runs start only when verletrc reports itself healthy.

Pick the environment in the Run sheet. The input is uploaded to its own directory under ~/.verlet/work, and more than one rank starts with mpirun -np N.

Runs are detached from the connection. Close your laptop or lose the network and the run keeps going; on reconnect, verletrc replays what happened, so the charts and the final state catch up.

Disconnect closes the SSH connection; verletrc and running simulations keep going. Removing an environment removes it from verlet; delete ~/.verlet on the machine to remove verletrc too.