This repo hold scripts related to measuring memory and run time performance of SANTA, a forward-in-time viral evolution simulator.
#Methodology
Multiple SANTA simulations are configured with a range of population sizes and genome lengths. Memory footprint and elapsed wallclock time are collected for each simulation and the results are plotted below. All simulations are configured to run for 10,000 generations under neutral selection without fitness constriants, and without actually sampling any of the simulated sequences.
The graphs below show that genome length is not correlated with total elapsed run time. Unsurprisingly total run time is almost exclusively determined by population size.
To gather statistics and build plots that explore SANTA memory and runtime performance,
$ scons -j 10
$ bin/parseresults.py -o results.csv $(find output -type f -name santa.out) >results.csv
$ plot_results.r
Warning: No attempt has been made to make this code portable to environments outside the Hutch.
Running the simulations under various combinations of population size
and sequence length will take many hours to complete. Two
optimizations are included to hopefully make this process faster. The
SConstruct
file uses the srun
command from the
[SLURM](http://slurm.schedmd.com/)
cluster management package to launch jobs on the Hutch center cluster resources. Also,
because the heavy lifting is offloaded to the cluster, we use -j N
to launch multiple simulations in parallel.
Plots generated by the commands above will be left in
bypopulation.png
and byseqlen.png
in the current directory.
bin/plot_bokeh.py
is a script that will plot the collected statistics and
produce an HMTL file that can be viewed in your web browser. The
resulting plots can be panned, scaled, and zoomed. See the completed bokeh plots here.
wercker.yml
is a configuration file for the Wercker continuous
integration platform. This configuration file allows Wercker to build
the interactive Bokeh plots and deploy them to the
project github pages
Wercker will automatically rebuild this project whenever
this github repo is updated. The data for the plots is taken from the results.csv
file in this repo.
Click on the build badge above to see the current status of the automated Wercker build.