[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.
==================================