NetLogo is a multi-agent programmable modeling environment. It is used by many hundreds of thousands of students, teachers, and researchers worldwide. It also powers HubNet participatory simulations. It is authored by Uri Wilensky and developed at the CCL. You can also try it online through NetLogo Web.
The latest version of NetLogo (currently version 6.2.0) is made available with the commands below:
$ # First load the Java Module $ module load Java/11.0.2 $ # Now load the Netlogo $ module load NetLogo/6.2.0-64
After this any of the NetLogo commands can be run from the terminal prompt. The available commands are below:
$ # Run the GUI command to open the program interactively, $ # ensure X11 forwarding is enabled in your SSH client. $ netlogo-gui.sh $ # Run the headless (no GUI command) for batch jobs with appropriate arguments substituting for $ARGS. $ netlogo-headless.sh $ARGS
NetLogo will use only a single core by default but can be parallelised using the included BehaviorSpace tool for performing parameter sweeps (loading one model run per core and queueing jobs for each core.)
Command line options for the headless executable include:
--model <path>: pathname of model to open (required)
--setup-file <path>: read experiment setups from this file instead of the model file
--experiment <name>: name of experiment to run
--table <path>: pathname to send table output to (or - for standard output)
--spreadsheet <path>: pathname to send table output to (or - for standard output)
--threads <number>: use this many threads to do model runs in parallel, or 1 to disable parallel runs. defaults to one thread per processor.
--min-pxcor <number>: override world size setting in model file
--max-pxcor <number>: override world size setting in model file
--min-pycor <number>: override world size setting in model file
--max-pycor <number>: override world size setting in model file
NetLogo makes use of a hardcoded path for the models directory which will be incorrect by default. To
correct this you can make a symlink to the models directory in your current working directory with the
[ ! -d "./models" ] && ln -s $EBROOTNETLOGO/app/models models
Without this, the models library menu item will not load correctly.
After connecting to Bessemer (see Establishing a SSH connection), start an interactive session with the
srun --pty bash -i command.
To use NetLogo interactively you must use the netlogo-gui.sh start script. To do so, run the following commands and the GUI will open:
$ module load Java/11.0.2 $ module load NetLogo/6.2.0-64 $ # Optional symlink if use of the models library is required. $ # [ ! -d "./models" ] && ln -s $EBROOTNETLOGO/app/models models $ netlogo-gui.sh
batch_smp_4_core.sh example is derived from the BehaviorSpace command line instructions
provided in the NetLogo documentation:
This uses the BehaviorSpace tool from NetLogo to perform a parameter sweep using 4 cores and 8GB of memory with the Wolf Sheep Simple 5 example model. Use of the BehaviorSpace tool is highly recommended to ensure good parallelism in multicore NetLogo jobs.
#!/bin/bash #SBATCH --nodes=1 #SBATCH --ntasks-per-node=4 #SBATCH --mem=8000 #SBATCH --job-name=NetLogo_BehaviorSpace_smp_4 #SBATCH --output=NetLogo_BehaviorSpace_smp_4 #SBATCH --time=00:10:00 #SBATCH --firstname.lastname@example.org #SBATCH --mail-type=ALL module load Java/11.0.2 module load NetLogo/6.2.0-64 [ ! -d "./models" ] && ln -s $EBROOTNETLOGO/app/models models netlogo-headless.sh \ --model "./models/IABM Textbook/chapter 4/Wolf Sheep Simple 5.nlogo" \ --experiment "Wolf Sheep Simple model analysis" \ --table table_output.csv \ --spreadsheet spreadsheet_output.csv \ --threads $SLURM_NTASKS
The job is submitted to the queue by typing:
$ sbatch batch_smp_4_core.sh
And will generate the normal log output file in addition to
spreadsheet_output.csv in the current working directory.
NetLogo version 6.2.0 was installed using Easybuild 4.4.0, build details can be found
The NetLogo configuration files (.cfg) at
/usr/local/packages/live/eb/NetLogo/6.2.0-64/app/ have been amended
to permit a larger default JVM “maximum Java heapsize” of 192GB RAM. For further details see:
Testing has been conducted by running an interactive session testing the
./models/IABM Textbook/chapter 4/Wolf Sheep Simple 5.nlogo example in
addition to running the batch job using the BehaviorSpace methodology as
The module file is on the system at