Where to Run Things?

Salvus scales from small toy experiments to very large HPC simulations and it is sometimes not exactly clear where to best run things. This document attempts to clarify that by describing the most common scenarios. Other configurations are of course possible for advanced users.

The various modules of the Salvus suite SalvusCompute, SalvusMesh, SalvusOpt and SalvusFlow are color coded in text as well as the illustrations.

This laptop represents either your actual laptop or your desktop workstation. It is where you sit and steer all components of Salvus.

Small-Scale & Prototyping: Run Everything on the Same Computer

For smaller problems (and larger problems in the prototyping stage) we recommend to run everything on the same machine, usually your laptop or workstation. This enables a very fast turn-around time due to quick feedback.

For this setup install all components of Salvus on your local machine and use the local site in SalvusFlow.

An inherent feature of Salvus and the wave equation is its scalability meaning one can in almost every case design a problem using low frequencies and make all necessary decisions. Once ready, just up the frequency and move the expensive computations to a larger computer as described below.

Mid- to Large-Scale & Production: Run on Cluster

At a certain point your laptop will no longer be fast enough and the computations will have to be performed on a remote cluster or HPC. The most common scenario in this case is to still run SalvusFlow, SalvusMesh , and SalvusOpt locally and SalvusCompute on the remote cluster.

The choice of SalvusFlow site in this case depends on the job scheduling software running on the remote machine.

Note that, aside from choosing a different site, the user experience of running simulations is identical to running everything locally.

Alternative: Run Jupyter Remotely

Another option is to run all compontents and the Jupyter notebooks remotely. This could either be in the cloud in which case the Jupyter notebooks can be accessed via HTTPS or on a cluster. In the later case a simple way to access them is via port forwarding over SSH.