Fork me on GitHub


Iceberg was decommissioned on 30th November 2020. Users of Iceberg need to switch to using ShARC and/or Bessemer instead.


The FLAME framework is an enabling tool to create agent-based models that can be run on high performance computers (HPCs). Models are created based upon a model of computation called (extended finite) state machines. By defining agent-based models in this way the FLAME framework can automatically generate simulation programs that can run models efficiently on HPCs. The behaviour model is based upon state machines which are composed of a number of states with transition functions between those states. There is a single start state and by traversing states using the transition functions the machine executes the functions until it reaches an end state. This happens to each agent/machine as one time step or iteration is completed


Flame can be activated using the module file:

module load apps/gcc/4.8.2/flame/0.17.1-openmpi-1.8.8

Note: The module file also loads libtool, libmboard, and the compilers gcc/4.8.3 & openmpi/1.8.8. Libmboard is the communication library used by Flame simulation programs.

Running Flame in parallel on multiple cores requires the batch script to be placed within the model folder. The batch script must contain the following instructions

#$ -pe openmpi-ib no_cores
#$ -cwd
#$ -j y
#$ -m bea
#$ -M email_address
module load apps/gcc/4.8.2/flame/0.17.1-openmpi-1.8.8
make clean
cp /usr/local/packages6/apps/gcc/4.8.2/flame/0.17.1-openmpi-1.8.8/xparser/0.17.1/*.tmpl .
xparser model.xml -p
mpirun -np no_cores ./main no_its its/0.xml


no_cores = the number of computer cores required no_its = the number of time steps for the simulation 0.xml = the initial state of the system/agents. This file is placed within the its folder within the model folder


  1. Download and unpack the following example models using:

    cd some_directory
    cd tutorial_models/model_0x
  2. create the its folder within the model_0* folder, and move the 0.xml file to the its folder

  3. Create a batch job submission script called test.sge containing the 12 lines of code above. Replace model.xml (line 10) with the actual xml model name. The script should be in the model folder.

  4. Submit the job using qsub test.sge

Installation notes

Flame was compiled using the script, the module file is 0.17.1-openmpi-1.8.8.