Configuration Reference

This reference will list all configuration settings that are available to you, ordered by section where they should be placed. It will not explain them in context. For that, consult the examples, mostly the Setting up a basic simulation.

Note

Mandatory options are marked with (M).

Main configuration

These are the settings you can make in stosim.conf or in subsimulation configurations (see Using subsimulations).

meta

General Description

name:Name of the exeriment
maintainer:The person who is responsible for this simulation

control

executable:Which script to call for each run (M) This should be just the name of the script and nothing else. StoSim will assume it is accessible relative to the simulation folder (per default in ‘.’). If your code has to be called in a more difficult way (e.g. “java -jar …”), simply make a simple bash script to contain that and name the script as your executable.
runs:How often the same configuration should be run, defaults to 1
scheduler:The job scheduler to use. Either ‘fjd’ (default - uses locally available CPUs, see https://pypi.python.org/pypi/fjd) or ‘pbs’, the most-used cluster environment.
fjd-interval:If you are using the fjd scheduler, you can tell the workers how often to check for new jobs. The default is a fraction of a second, so if you have long jobs, you could increase the interval and thus relieve your CPUs from all the queue checking.
pbs-jobtime:If you are using a PBS scheduler (cluster), you should tell the cluster scheduler the maximal time you expect a job to last, which will enable it to allocate nodes efficiently. The format is HH:MM:SS. The default is 00:05:00, so for long jobs, you probably want to increase this.
delimiter:the delimiter your simulation uses to separate values in its log files, defaults to a comma (,) if you leave this setting away

params

Parameters of your simulation (whichever you need) if you want more than one setting for a parameter, give a comma-separated list

seeds

A list of seeds to use per run, for repeatability. This section is optional.

<i>:The seed for run number <i>

simulations

Use this if you separate simulations into separate sub-configs (see Using subsimulations). This section is optional.

configs:A comma-separated list of config-file names (without the .conf file ending) e.g. sim1,sim2

plots

plot-settings

General settings for all plots. This section is optional.

use-colors:Whether to be black & white (0) or in color (1 - default)
line-width:Line width in pt, default 6
font-size:Font-size, default 22
infobox-pos:Where the infobox should go, e.g. ‘bottom left’, defaults to ‘top left’ when given empty
use-y-errorbars:
 A 1 if errorbars should be shown, 0 otherwise (default)
errorbar-every:Show an errorbar every x steps, defaults to 10
use-tex:whether to use enhanced mode, which interpretes tex-like encoding (e.g. subscript, math, greek symbols), defaults to False
params:You can give a list of parameter settings here (just as you normally do in the plot-options for each figure, see below), which all plots on all figures should adhere to. This can be very convenient if you need to check how several figures change given the difference in one parameter setting.

figure<i>

Settings for Figure <i> (start counting i at 1). All settings from plot-settings can be overwritten here. In addition, you can specify:

name:Name of the Figure (M)
xcol:Index of the x-column in the data (M)
x-label:Label on X-axis
y-label:Label on Y-axis
x-range:Value range of X-axis (in line plots, gnuplot choses this pretty good on its own)
y-range:The range of values for y axis, defaults to ‘[0:10]’
custom-script:Path (relative from simulation folder) to a custom gnuplot script that should be used instead of the automatically generated one.

plot<j>

This is not a section, but an option in a Figure. You need at least one to describe data to plot (start counting j at 1). You pass it a comma-separated list of settings (setting:value). First, these are the system-specific settings you can/need to set:

_name:Name of the plot (M)
_ycol:Index of the y-column in the logfiles you are interested in - start counting with 1 (M)
_type:Type of plot, ‘line’ or ‘scatter’ (M)
_select:Use this to select certain values from the y-column. One out of [‘all’, ‘last’, ‘max_x’, ‘max_y’, ‘min_x’, ‘min_y’], defaults to ‘all’.

In addition, you can narrow down your data set for this plot by giving some settings for your parameters (e.g. param_1:value_a).

StoSim has to parse the plot<j> string, so if you really want to use , or : in a name or value, escape it with \.

tests

test<i>

Settings for T-Test <i> (start counting i at 1)

name:Name of the Test (M)
custom-script:Path (relative from simulation folder) to a custom gnuplot script that should be used instead of the automatically generated one.

set<j>

This is not a section, but an option in a Test. You need at least one to describe data to test (for T-Tests: at least two) - start counting j at 1. You pass it a comma-separated list of settings (setting:value). First, these are the system-specific settings you can/need to set:

_name:Name of the data set (M)
_col:The column in the logfiles which you are interested in - start counting with 1 (M)
_select:Use this to select certain values from the y-column. One out of [‘all’, ‘last’, ‘max_x’, ‘max_y’, ‘min_x’, ‘min_y’] (M)

In addition, you can narrow down your data set for this test by specifying some parameter settings.

StoSim has to parse the set<j> string, so if you really want to use , or : in a name or value, escape it with \.

Remote computer configuration

These settings would be in a file called remote.conf if you are using fjd as scheduler (see above) and want to use other computers than your own.

host<i>

Settings for computer <i> (start counting i at 1)

name:Hostname (M)
workers:Number of cpus to be used on this server (M)
nice:Level of niceness the jobs on this host should have (see Unix nice). Defaults to 9.

There is no password setting as it is not secure to write those down. To ease your life, here are a couple tips. You can set up RSA keys to connect with the hosts, keep connections alive for several hours (only OpenSSH >= 5.6) or simply have one SSH connection open somewhere and let SSH share it.