swarm-modeling
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Swarm-Modelling] EcoLab implementation of Stupid Model


From: Russell Standish
Subject: [Swarm-Modelling] EcoLab implementation of Stupid Model
Date: Fri, 29 Sep 2006 13:47:21 +1000
User-agent: Mutt/1.4.2.1i

Just a heads up that I have uploaded an EcoLab version of Railsback et
al.'s Stupid Model to the EcoLab website
(http://ecolab.sourceforge.net). This is a useful exercise in
providing a pedagogical model for learning how to use EcoLab, it provides
insights to me as a developer into what needs to be improved in EcoLab
and also provides a rather limited benchmark comparison between
different ABM platforms.

In the spirit of Railsback's paper, I didn't attempt to fix EcoLab's
shortcomings, but rather programmed to the existing publically
available version of the package (4.D20).

I don't seem to have edit priveleges on Swarm.org any more, otherwise
I'd create some links to the code.

I will be writing a more detailed report later, but I can summarise a
few of my findings.

1) EcoLab is about as easy to implement the StupidModel as reported by
   Railsback et al for Repast and Mason. The first step took a little
   longer, as there were no existing example models for using
   Graphcode to implement spaces. Help for spaces is an area for
   improvement.

2) Performance was about twice as fast as the Repast Java
   implementation when run in batch mode. However, a small amount of
   optimisation was needed to get this - first cut implementations
   could be a lot slower. In GUI mode, EcoLab was substantially
   slower, predominently due to the use of BLT widgets for
   plotting. In summary, with modern Java virtual machines, the
   performance penalty for using Java is not a significant factor.

3) I did a parallel version of the model, but did not get performance
   improvements (I still haven't investigated this)

4) For agent based modeling, some form of smart pointer structure is
   essential (Java's object reference model has this feature built
   into the language). EcoLab has an undocumented "ref" class, which
   wasn't up to the job, so I reimplemented this for StupidProject.

5) Using vectors of smart references seemed to be a natural way of
   implementing scheduling - one can readily sort or randomise the
   ordering of method calls using C++ standard library
   functionality. StupidModel uses periodic scheduling, but aperiodic
   scheduling should also be handled by means using sets of references
   (I'll have a go at implementing some other classic models such as
   the mousetrap).

Cheers

-- 

*PS: A number of people ask me about the attachment to my email, which
is of type "application/pgp-signature". Don't worry, it is not a
virus. It is an electronic signature, that may be used to verify this
email came from me if you have PGP or GPG installed. Otherwise, you
may safely ignore this attachment.

----------------------------------------------------------------------------
A/Prof Russell Standish                  Phone 0425 253119 (mobile)
Mathematics                              
UNSW SYDNEY 2052                         address@hidden             
Australia                                http://parallel.hpc.unsw.edu.au/rks
            International prefix  +612, Interstate prefix 02
----------------------------------------------------------------------------

Attachment: pgpsU3AtpXduS.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]