swarm-support
[Top][All Lists]
Advanced

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

parallelism!


From: cgl
Subject: parallelism!
Date: Sun, 13 Apr 1997 13:36:32 -0600

  We are bringing a parallel version of Swarm back to the status
of an active task for the SFI Swarm Hive. As many of you may 
know, a parallel version of Swarm was among our top priorities
when we started the Swarm effort, but our primary funder (DARPA) 
specifically (and inexplicabally) disallowed using any of their
resources on parallelism.

  Now that we are largely free of such constraints (read between
the lines ;-) ) we will be devoting some of our own resources
to start things moving again on the parallelism front.

  At the SwarmFest, we described two "kinds" of parallelism
that we will be pursuing: parallelism-1 and parallelism-2.

  Parallelism-1 is what most people do these days when they 
start up multiple invocations of a model on different machines
in order to take advantage of the linear speed-up afforded
by doing many batch runs in parallel instead of serially, one
after the other. The distributed threads of a parallelism-1
process usually do *not* talk to one another, only to their
originator process.

  Parallelism-2 is more advanced, involving a single model
running in a distributed fashion over a network, or on a
parallel super-computer. The distributed threads of a parallelism-2
process spend a *lot* of time talking to one another, as they 
are essentially all parts of 1 model.

  Of course, there may be processes that would have to be
thought of as parallelism-1.2, where the distributed threads
spend most of their time isolated from one another, but 
occassionally need to talk to each other.... Ultimately, 
parallelism-1 and -2 are just special cases that we will 
accomodate within the same overall scheme for truly parallel 
concurrency.

  Both of these kinds of parallelism are supported in principle
in our logical model of concurrency, as implemented in Roger's
Activity library - in other words, the way in which a user
would specify a parallel model is exactly the same as the
way in which a user specifies a number of actions to 
be executed "concurrently" in the current serial-kernel
verison of Swarm. 

  This means that we have already done maybe 85-90% of the work
to achieve true parallel implementation of concurrency. What
remains to be done is mostly on the Swarm-kernel side, to
implement the actions that will be called behind the scenes
within Swarm to cause concurrent actions to actually happen
in parallel, rather than one after the other.

  Our operating plan is to start adding in the support for
parallelsim-1 (e.g., to make an "experiment" swarm distribute
the many invocations of a model in parallel on a network rather
that build and run them sequentially). Then we will move on
to adding support for parallelism-2. These tasks are not unrelated,
of course, and, from the users perspective, most of these
additions should be transparent codewise, perhaps only 
requiring a command line flag or two to invoke a parallel 
rather than a sequential execution of their Swarm-app.

  At the moment, we are looking at something like building 
an MPI-Objc library, where we wrap up MPI calls in swarm library 
objects. We are also leaning strongly to working within some
existing distributed object standard, such as that used
by NeXT-Step. We don't want to reinvent the wheel, and we'd
like to stay within reasonable distance of existing
standards....

  We have also had several tentative offers from a number of
organizations that there could be funding available to 
assure that a truly parallel version of Swarm hits the
streets ASAP. 

  With enough resources, I think it would be reasonable to expect
that we could provide support for at least parallelism-1 by
the end of the summer.

  Anyway - I'd like to start-up a discussion among the user-community
on issues relating to a parallel version of Swarm...how people
think it should be approached, what advantages/disadvantages
there are in using MPI, existing distributed-object standards,
and etc....

  So - please fire away and share your thoughts, ideas, and 
gripes about parallel Swarm(s)....

  Chris Langton
  SFI Hive



                  ==================================
   Swarm-Support is for discussion of the technical details of the day
   to day usage of 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]