swarm-modeling
[Top][All Lists]
Advanced

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

Re: parallelism


From: glen e. p. ropella
Subject: Re: parallelism
Date: Tue, 28 Mar 2000 08:11:37 -0800

At 11:19 PM 3/27/00 -0800, you wrote:
In my voting model, I've implemented a virtual parallelism (let me know if
this is actually concurrency, since I'm unclear of the difference) though I
don't yet know enough to make it actual.

Concurrency is touted as a superset of parallelism.... i.e. a
concurrent system can be run in parallel or in series, without
impacting the functionality of the system.

In practice, this is just a bunch of silly wording.  In practice,
what it boils down to is specification and description vs. implementation.
Concurrency is all about the specification or description of a system.  You
can *describe* or *specify* a process as having concurrent elements or
sequential elements, thereby, effectively, making statements about
which elements depend on which other elements, either for explanation
(science) or design (engineering).

Parallelism is all about synthesis (as distinct from specification
or description) or *reification* of a plan.  It's about how things
get accomplished.

In Aristotelian terms, we would use the word "concurrency" when
talking about formal, final, and efficient cause.... i.e.
the plan, the purpose, and "the person, demi-urge, actor who started the
whole thing".  We would use the word "parallelism" when talking about
material cause... i.e. the mechanism by which the other stuff
happens.

Since Swarm is a "modeling tool", parellelism is almost irrelevant,
since models are mostly about specification and description.  The
whole project is about logical abstraction away from the mechanism.

Of course, that's a severely idealistic stance.  So, parallelism
creeps in when users begin having problems mechanizing their
models.

Agents do the following:
  1. I look for my closest neighboring agent in the issue space
  2. Report my identity to my closest agent
  3. Form a coalition if I am my closest agent's closest agent

Since each agent can implement each action in each time step with only the
knowledge of the other agent's actions in the previous time step, the code
is virtually parallel.

I know it is simple, but it might be illustrative to others who haven't
seen ways to conceptually parallelism their models.  Also, since there is
plenty of reason to be concerned about who does what when and potential
artifacts that arise from such scheduling issues, I thought it worthwhile
to describe one solution.

Excellent!  But, we have to make sure we distinguish between
data-based-concurrency (like double buffering) and process-
based-concurrency (like explicit synchronization).  From reading
your description, it's not clear to me why you say that the agent's
only know the other agent's actions from the last time period, when
in the bullets above that, you describe them as getting their
data from the space (neighborhood & closest).

Without explicitly mentioning whether they are time synchronized
or data structure synchronized, you leave an ambiguity about
where the dependencies (concurrencies) really lie.

I also wonder if the command structure [agentList doSomething] doesn't lure
the beginning Swarm programmer into thinking that the code is somehow
executing in parallel?  For a beginner, it is far from obvious that these
instructions are implemented sequentially.

Absolutely.  Part of the reason Objective C is a superior language
to Java or C++ is precisely this lure.  From the modeling perspective
(i.e. the specification/description perspective), you don't want
to use syntax that forces you to think about mechanism.  You want
to use syntax that allows you to think only about modeling, not
about implementation.

glen


--
glen e. p. ropella =><= The front line is everywhere. Hail Eris!
Home: http://forager.swarm.com/~gepr              (505) 424-0448
Work: http://www.swarm.com                        (505) 995-0818


                 ==================================
  Swarm-Modelling is for discussion of Simulation and Modelling techniques
  esp. using Swarm.  For list administration needs (esp. [un]subscribing),
  please send a message to <address@hidden> with "help" in the
  body of the message.
                 ==================================


reply via email to

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