Execution Methods

Introduction

By default, SimFlow performs all the computationally intensive operations, like meshing and simulations, using the computer it is currently running on. There are however multiple other execution models, which give you great flexibility in running your simulations, e.g. running on a remote computer or submitting jobs to a cluster. This additional configuration can be enabled in the Advanced Configuration window of the SimFlow launcher.

Remote Execution

SimFlow gives you the ability to perform simulations on a remote machine using SSH ( Secure Shell ) protocol. In this execution model, SimFlow is running on your local machine, but it generates files and executes computational processes on the remote machine. This functionality can be used to do simulations in the cloud, for example using an Amazon AWS instance as the remote machine.

Enabling Remote System

To enable the remote execution system you need to select the Remote (SSH) option in the System input.

advancedremote system

Configuring Remote System

When you enable the remote execution system, you will be required to input certain additional values that are required to establish a remote connection:

  • Host - name or IP address of the remote machine you want to connect to

  • User - name of the user account to log in as

  • Port - port of the SSH server on the remote machine (typically 22)

  • Identity File (optional) - path to the private key used to login to the remote machine, useful option when you want to avoid constantly typing in the password

  • Script File (optional) - path to the OpenFOAM configuration file on the remote machine. This should typically be file etc/bashrc in the OpenFOAM installation directory.

Currently, SimFlow will not allow you to close the Advanced Window if it cannot establish a connection using the provided credentials.

ssh configuration 1

Execution Models

In the Execution input, you can select the method used for executing processes during the simulation. You can use one of three available options:

  • Standard - all processes are executed synchronously on the local computer

  • Distributed - all processes are executed synchronously on specified computers

  • Docker - all processes are executed synchronously on the local computer inside Docker container

  • WSL - (Windows only) all processes are synchronously on the local computer inside Windows Subsystem for Linux environment

  • PBS Cluster - all processes are submitted in a job to a PBS cluster

execution-model.png

Distributed Execution Configuration

When you select the Distributed execution model you need to specify an additional Machinefile input, which should be the path to a file containing names of the computers, that should be used for the computation. The file should contain either names or IPs of the computers and should be located on the remote system if you are using the remote system.

If you are using the Distributed model, the workspace you use for the simulations should be accessible from all the machines (e.g. it should be a Network File System location), or it should be possible to create a directory with an identical path on all the machines.

advanceddistributed configuration

PBS Cluster Execution Configuration

When you select the PBS Cluster execution model you just need to specify commands that setup environment on the cluster. These commands will typically be very similar to the commands required for the Remote execution system.

To use this option, the system you are running on (either Local or Remote) should be able to execute the qsub command.

advancedpbs configuration