TOC, 1, 2, 3, 4


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:

		if [ $# -lt 2 ]
		  echo "Usage: $0 command remotehost ..." 1>&2; exit 1
		for i
		  COMMAND="$CMD >& /dev/null < /dev/null &"
		 rsh $i -n $COMMAND

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

Copyright © 2007 Scientific Computing Associates, Inc.