swarm-support
[Top][All Lists]
Advanced

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

Re: GUISwarm


From: cgl
Subject: Re: GUISwarm
Date: Wed, 23 Oct 1996 21:32:34 -0600

Hi Stuart!

with any spatial computation going on, the updates are going to slow
down as the square of the linear dimension - if you have 4 spatial arrays,
wach with something being computed in each cell at every time step,
the spatial computation is going to swamp the agent updates.

This is a fact of life independent of swarm..one of the things we plan once 
we get the parallel kernel going is to provide library objects for 
breaking up large spaces into smaller units each computed on a separate
processor.....I don't think that swarm is adding much overhead to the
spatial update time. The heatbug style spatial updates are all handled 
within the HeatSpace object with no message-passing overhead....

The key to increasing the speed will be, as it always is, in making
the most-used inner loop as efficient as possible...but the sheer 
volume of spatial updates with large discretized spaces is 
a fundamental simulation problem. One trick is to hash the spatial
cell updates, to save yourself from re-computing states of cells 
where identical states have already been computed. Another trick is
to maintain a list of spatial cells that are likely to have changed,
which works if the updates will generally be sparse. However, if
everycell is likely to need updating every time step, there is not much 
that any pruning tricks like these will be able to do. Again, this
is a general problem when simulating massive parallelism on serial
computers....Swarm should be reasonably efficient.

It is possible that, with 4 spatial "worlds" you are having to 
send messages for every cell update. In this case, you may want
to combine the 4 spatial planes within a single spatial object, 
so that all state reference and modification can be handled 
without message passing. Another possibility is to 
break encapsulation and cache structure pointers to other
spatial plane's data structures....but if you have to do this a
lot, you might as well encapsulate the spatial planes in the
same object....

Hope this helps....

Chris Langton



reply via email to

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