An Introduction to SLI
Introduction
NEST can be started by typing
<prefix>/bin/nest
at the command prompt. You should then see something like this:
gewaltig@jasmin-vm:~$ nest
-- N E S T 2 beta --
Copyright 1995-2009 The NEST Initiative
Version 1.9-svn Feb 6 2010 00:33:50
This program is provided AS IS and comes with
NO WARRANTY. See the file LICENSE for details.
Problems or suggestions?
Website : http://www.nest-initiative.org
Mailing list: nest_user@nest-initiative.org
Type 'help' to get more information.
Type 'quit' or CTRL-D to quit NEST.
Command line switches
Type
nest --help
to find out about NEST's command-line parameters.
gewaltig@jasmin-vm:~$ nest --help
usage: nest [options] [file ..]
-h --help print usage and exit
-v --version print version information and exit.
- --batch read input from a stdin/pipe
--userargs=arg1:... put user defined arguments in statusdict::userargs
-d --debug start in debug mode (implies --verbosity=ALL)
--verbosity=ALL turn on all messages.
--verbosity=DEBUG|STATUS|INFO|WARNING|ERROR|FATAL
show messages of this priority and above.
--verbosity=QUIET turn off all messages.
Supplying SLI scripts with parameters
Using the --userargs=arg1:...
command line switch, it is possible to supply a SLI script with parameters from the outside of NEST. A common use case for this are parameter sweeps, where the parameters are defined in a bash script and multiple instances of NEST are used to test one parameter each. A bash script for this could look like this:
for lambda in `seq 1 20`; do
for gamma in `seq 1 5`; do
nest --userargs=lambda=$lambda:$gamma=$gamma simulation.sli
done
done
The corresponding SLI script simulation.sli
could use the supplied parameters like this:
/args mark statusdict/userargs :: {(=) breakup} Map { arrayload pop int exch cvlit exch } forall >> def
args /lambda get ==
The first line first gets the array of user supplied arguments (userargs
) from the statusdict
and breaks each element at the "="-symbol. It then converts the first element (lambda, gamma) to a literal and the second argument (the number) to an integer. Using mark
and >>
, the content of the userargs array is added to a dictionary, which is stored under the name args
. The second line just prints the content of the la variable.
SLI user manual
This manual gives a brief overview of the SLI programming language.