TOC, 1, 2, 3, 4
1) GENERAL PARADISE QUESTIONS
1.1) What is Paradise? How
is Paradise different from Linda?
Paradise is an implementation of
the Linda model, specifically for distributed computing. Network Linda is an
implementation of the Linda model, specifically for parallel
computing.
Paradise is not designed specifically or exclusively to speed
up your application; it is designed to provide connectivity between different
applications. Adding Paradise to your application is normally simple. You don't
need to restructure your program in order to parallelize it, as in parallel
computing. Most uses of Paradise require minimal changes, but the benefits can
be as dramatic as adding a telephone to a house that doesn't have
one.
Paradise is designed to fit neatly into your application at whatever
level you wish. You don't have to rename your main program; you don't need a
special command for linking your program. The C-Paradise compiler generates
standard .o files that are linked into your program along with a single library,
paradise.a, which can be done with your standard compiler
driver/linker.
Paradise is designed to be nonobtrusive to your
application. There are no signal handlers added to your application; no memory
is dynamically allocated in your process. This is because the process running
your application isn't responsible for handling part of tuple space. Tuple
spaces are maintained exclusively by the Paradise server, which runs as a
separate process, probably on a different workstation.
1.2) What can I do with Paradise that I can't do with
Linda?
- Paradise allows communication between completely different applications
running at potentially different times
- Paradise tuple spaces can be persistent
- One Paradise program can access more than one tuple space
1.3) What can I do with Linda that I can't do
with Paradise?
Linda uses eval
as simple means of starting parallel threads
of control on multiple workstations. Paradise doesn't define eval
.
Since ntsnet
is primarily provided to support eval
in
Network Linda, it is not provided in Paradise. To summarize, it is easier to do
parallel computing in Linda.
1.4) Can I use Paradise and Linda together to
get the benefits of both?
Yes, Paradise and Linda were designed to be used together. The new v3.1
C-Linda compiler understands Paradise operations and automatically links into
the Paradise support library. Mixing
Paradise and Linda is an excellent way
to write applications that are both parallel and distributed. An example of this
is a parallel server, or "live library", which is described later in this
document.
1.5) What happened to ntsnet?
Ntsnet
is part of Network Linda, not Paradise. It
provides a framework for supporting evals
, which also don't
currently exist in Paradise (see the next question for a disccussion of evals),
and for shutting the program down.
Paradise programs are "normal"
programs, in the sense that they don't start up in a special way, as in Linda.
Ntsnet
could be useful if the Paradise program is intended to run
as a parallel program, and in that case it is possible to use tools such as LSF
to start it running on many workstations simultaneously.
Ntsnet is
necessary for running Network Linda programs, providing many functions that are
specific to Network Linda. An ntsnet utility for Paradise would probably look
quite different, and in fact might need to look very much like LSF.
1.6) Why is there no eval operation in
Paradise?
How evals
should be designed and implemented
is still very unclear. It's not even clear that they are useful in distributed
computing. To us, they are a parallel programming construct, and as such, don't
need to be available in Paradise. Mixing Paradise and Linda gives you
evals
, and that may be enough.
If Paradise is being used as
a fault tolerant Linda, then we should have evals
, but we probably
also need to use real_main
and a default tuple space that is
created, opened, and closed automatically. That environment hasn't been designed
yet, either.
1.7) How can I start many instances of a
Paradise program running on my network?
There are many ways. If the program is also a Network Linda program, then
there is no problem, since ntsnet
starts the program running on the
network. But for a pure Paradise program, the simplest way is to manually log
into the machines and run the program. This is also quite tedious. Another way
is to use "rsh
", "on
", or some other remote execution
facility. Some commercial tools, such as LSF provide a means to do this easily.
The following shell script uses "rsh
" to start a command running in
the background on a set of machines that are specified on the command line:
#!/bin/sh
if [ $# -lt 2 ]
then
echo "Usage: $0 command remotehost ..." 1>&2; exit 1
fi
CMD=$1
shift
for i
do
COMMAND="$CMD >& /dev/null < /dev/null &"
rsh $i -n $COMMAND
done
Note that this shell script assumes that csh is the default shell on each
of the remote shells.
This shell script could be used to start pstatd running with a 10 second
update on nodes frank and joe, as follows:
% mrsh "/usr/licensed/sca/sun4-4.1/bin/pstatd 10" frank joe
Note that the command is quoted to allow the argument "10
"
to be passed to pstatd
.
1.8) Can Paradise be used as a database?
Theoretically, perhaps. But, it doesn't have a standard user interface
and it can only be programmed from C or Fortran, not a high level query
language, like SQL.
TOC, 1, 2, 3, 4