[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Swarm-Support] Parallel Swarm
From: |
Matteo Morini |
Subject: |
Re: [Swarm-Support] Parallel Swarm |
Date: |
Mon, 05 Apr 2004 14:23:46 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) |
Dear Dimitri,
I've been dealing with cpu-hungry models for a while, and have
investigated parallel computing as the ultimate strategy in order to cut
down run times.
A 'standard' Swarm simulation is made by a monolitic process,
running on a single CPU. If you want to run on multiple processors
you'll have to put some more effort into it. Keep into account that
Swarm was thought out as a parallelizable framework since the beginning
(see Marcus' quotation below), but getting each "atom of computation to
a physical processor" is up to you.
First, let me point my experience is zero on multiprocessor
machines, I had only dealt with networked pc's with a single processor.
Never used shared memory.
I've abandoned my early attempts at doing 'multithreaded Swarm' by
fork'ing and waitpid'ing, after having worked for a while on a project
on a Mosix cluster, but together with some colleagues (all of them less
informatically challenged than I am, some of them really gifted ), a
prototypical framework has recently been laid out, and it is capable of
running different pieces of work on several nodes. Right now it is only
used on an old work of ours, a production planner sporting a modified
Genetic Algorithm, an inherently parallel problem, but it has a great
potential to be exploited (and improved) otherwise. Maybe we can take
the discussion off list if you're interested in the gory details. Just
let me name a few: Java, RMI, load balancing, batch processing, tcp
sockets to glue together Obj-C code.
---Ciao, Matteo
PS:
You may also find interesting insights in this Darold's original
post to the List, and its subsequent thread:
http://www.swarm.org/pipermail/support/2003-January/012978.html
Or a more recent one (Sunwoo's):
http://www.swarm.org/pipermail/modelling/2004-January/003496.html
On the issue, Marcus said:
"Swarm has a fine-grained knowledge of concurrency during a simulation.
When multiple agents do something at the same timestep, Swarm knows
this. But that's just a little atom of the whole simulation execution
sequence. What this means is that in order for Swarm to exploit this
knowledge on a parallel computer, it is necessary to be able to
efficiently get that atom of computation to a physical processor. A
cluster, like a Beowulf arrangement of PCs, can't do this because the
communication expense of getting the atom to the processor not amortized
by the computation done. A SMP or NUMA system can do this because the
communication/overhead expense of getting the computation to the
processor is small. So if you have a two or four or eight way Opteron
or Sun system or a big NUMA system like a SGI Altix, the interconnect
between processors could reasonably slurp up these atoms and there would
be a scalability win.
I think it would be hard to make a message passing system scale very
well based on an architecture like Swarm. You'd need low-latency
interconnect, maybe Myrinet.
In any case, Swarm doesn't implement either. A multithreaded Swarm
would be feasible, but would assume a shared memory system like I
mentioned."
Ipse dixit.
Dimitri Pissarenko wrote:
> Hello!
>
> I would like to know
>
> a) whether it is possible to create a Swarm simulation, which will
> run on a parallel computer and
>
> b) whether someone has already done this.
>
> I'm thinking about creating an agent-based simulation of the economy
> of a country. I assume that such a simulation will require huge
> computational power due to a large number of agents.
>
> As far as I know, the agent-oriented simulation of the US economy
> (ASPEN, http://www.cs.sandia.gov/tech_reports/rjpryor/) runs on a
> parallel computer.
>
> TIA
>
> dap
>
> _______________________________________________ Support mailing list
> address@hidden http://www.swarm.org/mailman/listinfo/support