Chapter 3
Designing X-Agents Using FLAME
3.1
FLAME and Its X-Machine Methodology . . . . . . . . . . . . . . . . . . . . . . .
44
3.1.1
Transition Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
3.1.2
Memory and States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
3.2
Using Agile Methods to Design Agents . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.2.1
Extension to Extreme Programming . . . . . . . . . . . . . . . . . . . .
51
3.3
Overview: FLAME Version 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.4
Libmboard (FLAME message board library) . . . . . . . . . . . . . . . . . . . .
54
3.4.1
Compiling and Installing Libmboard . . . . . . . . . . . . . . . . . . . .
55
3.4.2
FLAME’s Synchronization Points . . . . . . . . . . . . . . . . . . . . . . .
57
3.5
FLAME’s Missing Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
The Flexible Large-scale Agent Modeling Environment (FLAME) was developed through collaboration of the Computer Science Department at University
of Sheffield (UK) and the Software Engineering Group (STFC) at Rutherford
Appleton Laboratory, Didcot (UK).
The framework is a program generator that enables creation of agentbased model simulations that can easily be ported onto high performance
computing grids (HPCs). The modeler defines models using XML notations
and associated code for agent functions is given in C language. FLAME is
able to use its own templates, to generate serial or parallel code automatically,
allowing complex parallel simulations to execute on available grid machines.
FLAME agent models are based upon extended finite state machines (or
X-machines) that allow complex state machines to be designed and validated.
The tool is being used by modelers from nearly all disciplines - economics,
biology or social sciences to easily write their own agent-based models, run
on parallel computers, without any hindrance to the modelers to learn how
parallel computing works. The toolkit was released as an open source project,
in 2010, via its web page (www.flame.ac.uk).
Agent structure, their messages and functions are defined in the model
description file. The model description file, written in an XML format, is fed
into the FLAME framework to generate a simulation program. The simulation program generator for FLAME is called the Xparser (Figure 3.1), which
is a series of compilation files, compiled with GCC (Gnu Compilers) and accompanying files, to produce a simulation package for running simulations.
Various parallel platforms like SCARF, HAPU or IceBerg have been used
43
Designing X-Agents Using FLAME
3.1
FLAME and Its X-Machine Methodology . . . . . . . . . . . . . . . . . . . . . . .
44
3.1.1
Transition Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
3.1.2
Memory and States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
3.2
Using Agile Methods to Design Agents . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.2.1
Extension to Extreme Programming . . . . . . . . . . . . . . . . . . . .
51
3.3
Overview: FLAME Version 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.4
Libmboard (FLAME message board library) . . . . . . . . . . . . . . . . . . . .
54
3.4.1
Compiling and Installing Libmboard . . . . . . . . . . . . . . . . . . . .
55
3.4.2
FLAME’s Synchronization Points . . . . . . . . . . . . . . . . . . . . . . .
57
3.5
FLAME’s Missing Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
The Flexible Large-scale Agent Modeling Environment (FLAME) was developed through collaboration of the Computer Science Department at University
of Sheffield (UK) and the Software Engineering Group (STFC) at Rutherford
Appleton Laboratory, Didcot (UK).
The framework is a program generator that enables creation of agentbased model simulations that can easily be ported onto high performance
computing grids (HPCs). The modeler defines models using XML notations
and associated code for agent functions is given in C language. FLAME is
able to use its own templates, to generate serial or parallel code automatically,
allowing complex parallel simulations to execute on available grid machines.
FLAME agent models are based upon extended finite state machines (or
X-machines) that allow complex state machines to be designed and validated.
The tool is being used by modelers from nearly all disciplines - economics,
biology or social sciences to easily write their own agent-based models, run
on parallel computers, without any hindrance to the modelers to learn how
parallel computing works. The toolkit was released as an open source project,
in 2010, via its web page (www.flame.ac.uk).
Agent structure, their messages and functions are defined in the model
description file. The model description file, written in an XML format, is fed
into the FLAME framework to generate a simulation program. The simulation program generator for FLAME is called the Xparser (Figure 3.1), which
is a series of compilation files, compiled with GCC (Gnu Compilers) and accompanying files, to produce a simulation package for running simulations.
Various parallel platforms like SCARF, HAPU or IceBerg have been used
43
