Biowulf High Performance Computing at the NIH
SMOLDYN on Biowulf

Smoldyn is a computer program for cell-scale biochemical simulations. It simulates each molecule of interest individually to capture natural stochasticity and to yield nanometer-scale spatial resolution. It treats other molecules implicitly, enabling it to simulate hundreds of thousands of molecules over several minutes of real time. Simulated molecules diffuse, react, are confined by surfaces, and bind to membranes much as they would in a real biological system.

References:

Documentation
Important Notes

Using the graphics directive in the smoldyn configuration will cause a graphical window to be displayed. This will cause smoldyn to fail unless the job has an X11 connection. For more information on running graphical sessions, see https://hpc.nih.gov/docs/connect.html.

Interactive job
Interactive jobs should be used for debugging, graphics, or applications that cannot be run as batch jobs.

Allocate an interactive session and run the program.
Sample session (user input in bold):

[user@biowulf]$ sinteractive
salloc.exe: Pending job allocation 46116226
salloc.exe: job 46116226 queued and waiting for resources
salloc.exe: job 46116226 has been allocated resources
salloc.exe: Granted job allocation 46116226
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn3144 are ready for job

[user@cn3144 ~]$ module load smoldyn

[user@cn3144 ~]$ cp $SMOLDYN_EXAMPLES/Lotka-Voltera .
[user@cn3144 ~]$ mkdir movie
[user@cn3144 ~]$ smoldyn Lotka-Voltera.cnf

[user@cn3144 ~]$ exit
salloc.exe: Relinquishing job allocation 46116226
[user@biowulf ~]$

Batch job
Most jobs should be run as batch jobs.

Create a batch input file (e.g. smoldyn.sh). For example:

#!/bin/bash
set -e
module load smoldyn
smoldyn trial.cnf

Submit this job using the Slurm sbatch command.

sbatch smoldyn.sh
Swarm of Jobs
A swarm of jobs is an easy way to submit a set of independent commands requiring identical resources.

Create a swarmfile (e.g. smoldyn.swarm). For example:

cd trial1; smoldyn trial1.cnf; cd -
cd trial2; smoldyn trial2.cnf; cd -
cd trial3; smoldyn trial3.cnf; cd -
cd trial4; smoldyn trial4.cnf; cd -

Submit this job using the swarm command.

swarm -f smoldyn.swarm [-g #] --module smoldyn
where
-g # Number of Gigabytes of memory required for each process (1 line in the swarm command file)
--module smoldynE Loads the smoldyn module for each subjob in the swarm